在Google Chrome中,SpeechSynthesis.speak(在Web Speech API中)会在几秒钟后停止

时间:2017-03-18 14:40:17

标签: javascript google-chrome text-to-speech speech-synthesis webspeech-api

在网络语音API中使用speak功能时,在几秒钟内,在给定文本的中间,在一个看似随机的地方(没有到达结尾),语音突然停止。 这只发生在Chrome(在Firefox上运行良好),在两个不同的计算机/系统上进行测试。

看看这个jsfiddle来看/听: https://jsfiddle.net/fv9ochpq/

您可以看到SpeechSynthesis对象.speaking标志在停止发言后保持打开状态(真)。

我还没有看到传递给话语的文字的任何记录限制。 这是Google Chrome错误吗? 顺便说一句,我自2014年以来就已经知道了这一点 - 当时我试图为我制作的浏览器扩展添加一个语音功能(那时它是可用于Chrome扩展的TTS API - 同样的事情也发生在那里),但是由于这个明显的错误,最终没有做到这一点。 现在我想克服这一点 - 如果这是一个错误,我会感谢任何人指导我到最好的地方报告它。

编辑:大约15秒后似乎停止了。运行.resume()每14秒添加一个间隔似乎"修复"这个。见:https://jsfiddle.net/fv9ochpq/1/
但这是一个黑客攻击。

1 个答案:

答案 0 :(得分:2)

您问到哪里可以报告此问题。对于程序员来说,我认为这个论坛是最好的地方。实际上在this one进行了大量讨论。但是我相信很多错误地关注于SpeechSynthesis的允许的单词数量而不是持续时间你在这里做了什么。事实上,你的解决方案在我看来是最实用的。

Google有一个错误报告工具,该问题已报告为Chrome Speech Synthesis with longer texts。它目前总共有3个报告,它给它3个“星星”。我们可以通过向此Chromium Bug添加报告来引起注意(我添加了一个)。

此Bug的当前状态为“Untriaged;”同样感兴趣的是speechSynthesis fails for long text without warning and blocks the API