首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在不创建.wav文件的情况下在浏览器中听到Ibm watson text to speech音频?

如何在不创建.wav文件的情况下在浏览器中听到Ibm watson text to speech音频?
EN

Stack Overflow用户
提问于 2018-01-20 21:43:54
回答 2查看 318关注 0票数 -1

我想构建一个应用程序,在该应用程序中使用nodejs的text to speech IBM watson服务。以下是我的代码

代码语言:javascript
复制
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'
  };

//通过管道将合成文本传送到文件。

代码语言:javascript
复制
  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完成此操作?

EN

回答 2

Stack Overflow用户

发布于 2018-07-24 05:00:09

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

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

另一个选项/示例是this SDK for Watson speech services in the browser。您可以使用此SDK来实现您想要的功能,也可以使用类似的方法。

票数 0
EN

Stack Overflow用户

发布于 2018-02-01 20:21:40

Java解决方案(如果有帮助)

代码语言:javascript
复制
InputStream stream =service.synthesize(input, Voice.EN_ALLISON, AudioFormat.WAV).execute();
        AudioPlayer.player.start(WaveUtils.reWriteWaveHeader(stream));
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48356830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档