首页 > 解决方案 > SpeechSynthesisUtterance onboundary 事件未正确触发

问题描述

我正在使用 SpeechSynthesisUtterance onboundary 事件未正确触发。它有时在句子的中间停止。

有人遇到过这种情况吗?请帮忙。

var utterance = new SpeechSynthesisUtterance();
    	utterance.lang = 'en-UK';
    	utterance.rate = 1;
utterance.onboundary = function(event){
    		console.log(event);
  	};

标签: javascriptspeech-synthesis

解决方案


似乎是垃圾收集的问题(https://bugs.chromium.org/p/chromium/issues/detail?id=509488#c11)如果您将话语存储在具有全局上下文的变量中,它可以工作:

window.utterances = [];
var utterance = new SpeechSynthesisUtterance( 'hello' );
utterances.push( utterance );
speechSynthesis.speak( utterance );

推荐阅读