SpeechSynthesis.speak (в Web Speech API) всегда останавливается через несколько секунд в Google Chrome

При использовании 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/
Но это взломать.

1 ответ

Вы спросили, где сообщить об этой проблеме. Для программистов я считаю этот форум лучшим местом. На самом деле значительная дискуссия произошла в Chrome Speech Synthesis с более длинными текстами. Но я полагаю, что большая часть этого по ошибке фокусируется на количестве слов, разрешенных SpeechSynthesis, а не на длительности, которую вы здесь делаете. На самом деле, ваше решение кажется мне наиболее практичным из всех.

У Google есть функция сообщения об ошибках, и о проблеме сообщают, что speechSynthesis завершается неудачно для длинного текста без предупреждения и блокирует API. В настоящее время он имеет в общей сложности 3 отчета, которые дают ему 3 "звезды". Возможно, мы сможем привлечь внимание к этой проблеме, добавив отчеты об этой ошибке Chrome (я добавил один).

Текущий статус этой ошибки - "Uririaged"; Также интерес представляют некоторые другие сообщенные проблемы, связанные с Chrome SpeechSynthesis.

Другие вопросы по тегам