При использовании функции speak
в Web Speech API в Chrome разговор резко останавливается через несколько секунд, в середине текста, который ему дан, в, казалось бы, случайном месте (без достижения конца).
Это происходит только в Chrome (хорошо работает в Firefox), протестированном на двух разных компьютерах/системах.
Посмотрите на этот jsfiddle, чтобы увидеть/прослушать: https://jsfiddle.net/fv9ochpq/
Вы можете видеть, что флаг SpeechSynthesis
объекта .speaking
остается (true) после того, как он перестает говорить.
Я не видел никаких задокументированных ограничений на текст, передаваемый высказыванию. Это ошибка Google Chrome? Кстати, я знал об этом с 2014 года - когда я пытался добавить речевую функцию к расширению браузера, которое я сделал (тогда это был API TTS, доступный для расширений Chrome - там тоже самое происходило), но в итоге этого не произошло. не делайте этого из-за этой очевидной ошибки. Теперь я хочу преодолеть это - если это ошибка, я буду признателен всем, кто направит меня в лучшее место, чтобы сообщить об этом.
РЕДАКТИРОВАТЬ: кажется, останавливается примерно через 15 секунд. Добавление интервала каждые 14 секунд работы .resume()
, похоже, "исправляет" это. Смотрите: https://jsfiddle.net/fv9ochpq/1/
Ноэто взлом.
АВГУСТ 2019 ОБНОВЛЕНИЕ С декабря 2018 года - Chrome не позволяет запускать речь без взаимодействия с пользователем, это обновленный jsfiddle с добавленной кнопкой, и фактический вызов speak
перемещен в его onclick
:
https://jsfiddle.net/vcmxkwd3/
Ошибка все еще происходит! :