如何使用文本到语音服务管理Watson语音到浏览器

时间:2016-08-26 16:19:18

标签: ibm-cloud text-to-speech ibm-watson

我有一个明确的应用程序,我添加了这段代码:

var TextToSpeechV1 = require('watson-developer-cloud/text-to-speech/v1');
var fs = require('fs');

var text_to_speech = new TextToSpeechV1({
  username: '<username>', (added username and password)
  password: '<password>'
});

var params = {
  text: 'Hello from IBM Watson',
  voice: 'en-US_AllisonVoice', // Optional voice
  accept: 'audio/wav'
};

// Pipe the synthesized text to a file
text_to_speech.synthesize(params).pipe(fs.createWriteStream('output.wav'));

运行node app命令后,我的文件中生成了ouput.wav。它按预期工作,并且表示来自IBM Watson的问候。&#34;但我希望将其输出到浏览器,就像有人按下标签一样。我怎么离开这里?

1 个答案:

答案 0 :(得分:0)

文本到语音demo按照GitHub执行您想要的操作。它将音频流回到浏览器,该浏览器使用<audio> HTML标记来重现它。

如果您在客户端和服务器中使用您的应用程序,则需要:

客户端

<audio>元素,src指向合成文本的端点,例如:https://<host>/api/synthesize?text=This+is+a+test

服务器

  

假设您使用Express并基于上面的代码

app.get('/api/synthesize', function(req, res, next) {
  var transcript = text_to_speech.synthesize(req.query);
  transcript.on('error', next);
  transcript.pipe(res);
});

音频将通过管道传输到浏览器,该服务器将播放该音频。