我正在使用IBM Watson Text to Speech API将文本合成为音频。我能够从该api获取数组缓冲区,现在我正尝试使用和音频blob播放所述缓冲区。
我已经阅读了很多与类似主题相关的堆栈文章,但仍然无法弄清问题所在。我尝试使用普通的javascript(html5音频标签)。我是Audio Web Api的新手,我已经阅读过mozilla的api参考,但仍然对此不太满意。
const blob = new Blob(tts.data.response.result.data, {type: 'audio/ogg'});
const url = window.URL.createObjectURL(blob);
window.audio = new Audio();
window.audio.src = url;
window.audio.play()
tts.data.response.result.data是来自IBM TTS api的响应。
这看起来像:
Array(56099)
[0 … 9999]
[10000 … 19999]
[20000 … 29999]
[30000 … 39999]
[40000 … 49999]
[50000 … 56098]
斑点看起来很好,这就是它的样子:
size: 121231
type: "audio/ogg"
对于可能失败的问题,我没有太多的反馈,只有“未捕获(承诺)的DOMException”。我知道audio.play()行是失败的。
谢谢。