我正在使用 WebSpeech 的 SpeechSynthesis 模块让 Web 应用程序说话。但是,您似乎只能将话语添加到队列中,然后在整个队列中进行 pause()、resume() 和 cancel()。
我有一种情况,我想要两个话语:
utterance1 = new SpeechSynthesisUtterance(text1);
utterance2 = new SpeechSynthesisUtterance(text2);
我想让 utterance1 播放,然后在中间暂停,让 utterance2 播放,然后恢复 utterance1。在代码中,它看起来像这样:
speechSynthesis.speak(utterance1);
// ... after a while
speechSyntehsis.pause(utterance1);
speechSynthesis.speak(utterance2);
// ... after a long while
speechSynthesis.resume(utterance1);
不幸的是,speechSynthesis 的方法 pause()、resume() 和 cancel() 不接受任何参数并作用于整个语音话语队列。有没有办法实现这种行为?
如果我可以有多个 SpeechSynthesis 对象,那么我可以为每个话语创建一个,但我相信我只能有一个。
如果我可以跟踪话语在字符串中“被说出”的位置,那么我可以取消它,然后用文本的其余部分创建一个新的话语,但我不知道这是否可能。
有什么建议么?