SpeechSynthesis.speak (in Web Speech API) always stops after a few seconds in Google Chrome

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-21 10:52:10

问题


When using the speak function in the Web Speech API, in Chrome the speaking stops abruptly after a few seconds, in the middle of the text given to it, in a seemingly random place (without reaching the end). This only happens in Chrome (works well on Firefox), tested on two different computers/systems.

Have a look at this jsfiddle to see/listen: https://jsfiddle.net/fv9ochpq/

You can see that the SpeechSynthesis object .speaking flag stays on(true) after it stops speaking.

I haven't seen any documented limit to the text passed to the utterance. Is this a Google Chrome bug? BTW, I've known about this since 2014 - when I was trying to add a speech feature to a browser extension I made (back then it was the TTS API available to chrome extensions - same thing happened there as well), but eventually didn't do it because of this apparent bug. Now I want to overcome this - if this is a bug, I will appreciate anyone directing me to the best place to report it.

EDIT: It seem to stop after about 15 seconds. Adding an interval every 14 seconds running .resume() seem to "fix" this. See: https://jsfiddle.net/fv9ochpq/1/
But this is a hack.

AUGUST 2019 UPDATE Since December 2018 - Chrome does not allow triggering speech without user interaction, this is an updated jsfiddle, with an added button, and the actual speak call moved to its onclick: https://jsfiddle.net/vcmxkwd3/

THE BUG IS STILL HAPPENING! :


回答1:


You asked where to report this problem. For programmers, I think this forum is the best place. In fact considerable discussion has occurred at Chrome Speech Synthesis with longer texts. But I believe much of it mistakenly focuses on the number of words allowed by SpeechSynthesis rather than on duration has you do here. In fact, your solution seems to me the most practical of all.

Google has a bug reporting facility, and the issue has been reported as speechSynthesis fails for long text without warning and blocks the API. It currently has a total of 3 reports, which give it 3 "stars." We may be able to bring attention to the issue by adding reports to this Chromium Bug (I have added one).

Current status of this Bug is "Untriaged;" also of interest are several other reported issues related to Chrome SpeechSynthesis.



来源:https://stackoverflow.com/questions/42875726/speechsynthesis-speak-in-web-speech-api-always-stops-after-a-few-seconds-in-go

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!