Javascript SpeechSynthesis.speak(在Web语音API中)在Google Chrome中总是在几秒钟后停止 在WEB语音API中使用Tale>代码>函数时,Chrome语言在几秒钟后突然停止,在给它的文本中间,在一个看似随机的地方(没有达到结尾)。 这只发生在Chrome上(在Firefox上运行良好),在两台不同的计算机/系统上进行测试

Javascript SpeechSynthesis.speak(在Web语音API中)在Google Chrome中总是在几秒钟后停止 在WEB语音API中使用Tale>代码>函数时,Chrome语言在几秒钟后突然停止,在给它的文本中间,在一个看似随机的地方(没有达到结尾)。 这只发生在Chrome上(在Firefox上运行良好),在两台不同的计算机/系统上进行测试,javascript,google-chrome,text-to-speech,speech-synthesis,webspeech-api,Javascript,Google Chrome,Text To Speech,Speech Synthesis,Webspeech Api,请查看此JSFIDLE以查看/收听: 您可以看到,SpeechSynthesisobject.speaking标志在停止讲话后保持打开(true) 我还没有看到任何文件限制文本传递到话语。 这是谷歌浏览器的bug吗? 顺便说一句,我从2014年起就知道了这一点——当时我正试图为我制作的浏览器扩展添加语音功能(当时它是可用于chrome扩展的TTS API——同样的事情也发生在那里),但最终没有这样做,因为这个明显的错误。 现在我想克服这一点-如果这是一个错误,我将感谢任何人指导我到最好的地方报

请查看此JSFIDLE以查看/收听:

您可以看到,
SpeechSynthesis
object
.speaking
标志在停止讲话后保持打开(true)

我还没有看到任何文件限制文本传递到话语。 这是谷歌浏览器的bug吗? 顺便说一句,我从2014年起就知道了这一点——当时我正试图为我制作的浏览器扩展添加语音功能(当时它是可用于chrome扩展的TTS API——同样的事情也发生在那里),但最终没有这样做,因为这个明显的错误。 现在我想克服这一点-如果这是一个错误,我将感谢任何人指导我到最好的地方报告它

编辑:它似乎在大约15秒后停止。运行
.resume()
每14秒添加一次间隔似乎可以“修复”此问题。请参阅:
但这是一个黑客

2019年8月更新自2018年12月以来-Chrome不允许在没有用户交互的情况下触发语音,这是一个更新的JSFIDLE,添加了一个按钮,实际的
speak
调用移动到其
onclick


错误仍在发生

您询问在何处报告此问题。对于程序员来说,我认为这个论坛是最好的地方。事实上,会议上已经进行了相当多的讨论。但我相信,大部分内容都错误地关注了演讲合成所允许的字数,而不是持续时间。事实上,在我看来,你的解决方案是最实用的。

谷歌有一个bug报告工具,这个问题被报道为。它目前总共有3个报告,这给了它3颗“星星”。我们可以通过向这个铬Bug添加报告(我添加了一个)来引起人们对这个问题的关注


这个Bug的当前状态是“未经诊断”;同样令人感兴趣的是。

我刚用Chrome 63.0.3239.132访问了我的第一个链接,令人惊讶的是,它一直读到最后。所以他们可能真的解决了这个问题!在最新的Chrome版本上。@YuvalA,你的第一把小提琴是英文的。您的计算机上是否本地安装了该语言?如果是这样,请使用未安装的语言测试小提琴(在Windows下,我认为这意味着除您使用Windows之外的任何语言)。您需要向小提琴添加代码以选择外语,例如,
synth.cancel();u、 lang='fr';合成语音(u)。我发现在你使用的Chrome版本下,你的演讲仍然被删掉了,上面的代码是mods。你说得对。刚刚用法语和法语测试了它——几秒钟后它就停在中间了:(嗨,我在这里找到了一个解决办法,为我工作。MaaRiCo,你的意思是在我的编辑部分中指定的解决办法?):我不敢相信已经超过3年了,他们还没有解决这个问题吗?我有最新版本的Chrome。(2020年6月),它仍然只有15秒。对不起,我没有看到链接编辑,15秒后似乎仍然中断,也在我自己的项目中进行了测试,得到了相同的结果。