【问题标题】:How can i hear Ibm watson text to speech audio in browser without creating .wav file?如何在不创建 .wav 文件的情况下在浏览器中听到 Ibm watson 文本到语音音频?
【发布时间】:2018-01-20 13:43:53
【问题描述】:

我想构建一个应用程序,我想在其中使用 nodejs 使用文本到语音 IBM watson 服务。这是我的代码

var express=require("express");
var app = express();
var fs=require("fs");
var watson = require('watson-developer-cloud'); 
app.get("/",function(req,res){
var text_to_speech = watson.text_to_speech({
username: '6c1248f9-0de8-450c-8816-44a89c0e1cba',
password: 'NSkOgtjNeE5w',
version: 'v1'
 });
 var params = {
  text: 'Turkish Prime Minister Binali Yildirim today reversed an earlier 
  offer of compensation to Russia for shooting down one of Moscow military 
  jets in November, media reported.',
  voice: 'en-US_AllisonVoice',
  accept: 'audio/wav'
  };

// 将合成的文本通过管道传输到文件中。

  text_to_speech.synthesize(params)
  .pipe(fs.createWriteStream('lorem_ipsum.wav'));
  });

  app.listen(9000,function(err) {
if (err) {
    console.log('Error',err);
}
else{
    console.log('Connected');

}
 });

但在这段代码中,它创建了一个.wav 文件来播放,但我想直接在浏览器中听到声音。我不想创建一个.wav 文件来播放。如何使用 nodejs 做到这一点?

【问题讨论】:

  • 为您的text: 使用反引号! ` 而不是引号 '
  • 这里我的问题是,当我运行此代码时,它会创建一个音频文件。但我不想创建音频文件。我想直接在浏览器中播放那个声音。

标签: node.js text-to-speech watson


【解决方案1】:

这一行:.pipe(fs.createWriteStream('lorem_ipsum.wav')); 将始终将流的内容通过管道传输到文件中。

要收听浏览器播放的音频,您需要使用 Node 模块,该模块可让您访问扬声器 (such as this one) 并将流通​​过管道传输到该模块。

另一个选项/示例是this SDK for Watson speech services in the browser。您可以使用此 SDK 来完成您要查找的内容,也可以使用类似的方法。

【讨论】:

    【解决方案2】:

    Java 解决方案,如果有帮助的话

    InputStream stream =service.synthesize(input, Voice.EN_ALLISON, AudioFormat.WAV).execute();
            AudioPlayer.player.start(WaveUtils.reWriteWaveHeader(stream));
    

    【讨论】:

    • 我想要它在 javscript 或 nodejs 或 angular
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    • 2019-05-29
    • 1970-01-01
    • 1970-01-01
    • 2019-06-23
    • 2020-07-09
    相关资源
    最近更新 更多