我们正在使用SpeechSynthesisUtterance边界事件无法正确触发。有时它在句子的中间。
有人遇到这种情况吗?请帮助。
var utterance = new SpeechSynthesisUtterance();
utterance.lang = 'en-UK';
utterance.rate = 1;
utterance.onboundary = function(event){
console.log(event);
};
最佳答案
似乎是垃圾回收的问题(https://bugs.chromium.org/p/chromium/issues/detail?id=509488#c11)
如果将话语存储在具有全局上下文的变量中,则它可以工作:
window.utterances = [];
var utterance = new SpeechSynthesisUtterance( 'hello' );
utterances.push( utterance );
speechSynthesis.speak( utterance );