我正在使用Web Speech API,想知道是否有可能同时运行两个SpeechSynthesisUtterance()实例,以使声音彼此叠加。

简而言之,我实际上有两个函数,每个函数定义一个SpeechSynthesisUtterance()的新实例,然后将它们都调用。但是,所得到的听写在两个实例之间交替出现,因此,如果声音1在说“轰”,“哇”,而声音2在说“弓,哇”,我听到的是“轰,弓,鸡,哇”,而不是“轰+”。弓,小鸡+哇”。

function speak(text) {
// Create a new instance of SpeechSynthesisUtterance.
var msg = new SpeechSynthesisUtterance();
//some code here where I define parameters like volume, pitch which I left out

window.speechSynthesis.speak(msg);
}
function speak2(text2) {
// Create another new instance of SpeechSynthesisUtterance.
var msg2 = new SpeechSynthesisUtterance();
//some code here where I define parameters like volume, pitch which I left out

window.speechSynthesis.speak(msg2);
}

speak(text);
speak2(text2);

最佳答案

window.speechSynthesis.speak()上的MDN documentation



所以我想那不是。
(如果您想真正使用它,这里是W3 spec-但它说的是同一件事)

同时,我正在使用基于音频文件的外部TTS服务。这些在并行性方面的限制较少。

10-08 15:47