Web 语音 API 突然崩溃并停止



我在我的本地主机中使用Chrome 79.x.x中的Web Speech API。

我工作正常...但突然间它崩溃并突然停止。如何阻止这种行为?

我只是使用基本脚本

$(".toread").on("click", function() {
var toRead = $(this).attr("toread");;
var msg = new SpeechSynthesisUtterance(toRead);
msg.lang = 'de-DE';
msg.rate = 0.6;
window.speechSynthesis.speak(msg);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="toread" toread="foo bar">click</div>

语音系统停止后,我需要重新启动笔记本电脑才能使其再次工作......否则它会在沉默中继续...

window.speechSynthesis 对象可以保持不确定状态,除非清除任何挂起的语句,否则它不会重新启动。

您可能会发现在开始时调用 window.speechSynthesis.cancel(( 很有帮助(在 init 例程中(。我在 init 函数的顶部添加了取消调用,语音将在重新加载页面后起作用(而不是退出并重新启动 Chrome(。

观察 speechSynthesis.pending、speechSynthesis.speaking 和 speechSynthesis.paused 属性,看看当它停止说话时,你是否能找到一个模式。这应该指导您进行调试,以防止 speechSynthesis 对象处于该状态。

最新更新