问题
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