在Web Speech API中使用
请查看此jsfiddle以查看/听取: https://jsfiddle.net/fv9ochpq/ 您可以看到
我没有看到任何关于传递给utterance的文本的文档限制。 这是一个Google Chrome的bug吗? 顺便说一句,我自2014年以来就知道了这个问题-当我试图为我制作的浏览器扩展程序添加语音功能时(当时是可用于Chrome扩展程序的TTS API-同样的问题也发生在那里),但最终由于这个明显的错误而没有这样做。 现在我想克服这个问题-如果这是一个bug,我将感激任何人将我引导到报告它的最佳地方。
编辑:似乎在约15秒后会停止。 每14秒运行
2019年8月更新:自2018年12月以来,Chrome不允许在没有用户交互的情况下触发语音,这是一个更新后的jsfiddle,增加了一个按钮,并将实际的
speak
函数时,在Chrome浏览器中,播放会在几秒钟后突然停止,停在所给文本的中途,看起来是在随机位置停止(未到达结尾)。
这只在Chrome浏览器中发生(在Firefox中工作良好),我已在两台不同的计算机/系统上进行了测试。请查看此jsfiddle以查看/听取: https://jsfiddle.net/fv9ochpq/ 您可以看到
SpeechSynthesis
对象的.speaking
标志在停止讲话后保持开启(true)状态。我没有看到任何关于传递给utterance的文本的文档限制。 这是一个Google Chrome的bug吗? 顺便说一句,我自2014年以来就知道了这个问题-当我试图为我制作的浏览器扩展程序添加语音功能时(当时是可用于Chrome扩展程序的TTS API-同样的问题也发生在那里),但最终由于这个明显的错误而没有这样做。 现在我想克服这个问题-如果这是一个bug,我将感激任何人将我引导到报告它的最佳地方。
编辑:似乎在约15秒后会停止。 每14秒运行
.resume()
的间隔似乎可以“修复”此问题。 请参见:https://jsfiddle.net/fv9ochpq/1/
但这是一个hack。2019年8月更新:自2018年12月以来,Chrome不允许在没有用户交互的情况下触发语音,这是一个更新后的jsfiddle,增加了一个按钮,并将实际的
speak
调用移动到其onclick
中:
https://jsfiddle.net/vcmxkwd3/
BUG仍在发生!