Ворклог по задаче "Добавить браузерную озвучку букв, слогов и отдельных слов"
Прогресс: ограничения и странности браузерного SpeechSynthesis
Проверена встроенная браузерная озвучка на отдельных словах, слогах и буквах. Для целых слов API в ряде случаев работает приемлемо, но на коротких слогах и отдельных буквах проявляются заметные и непредсказуемые ошибки интерпретации текста.
Что звучит нормально
Собака— произносится нормально.Ры— произносится нормально.Свинья— произносится нормально.Пель— неожиданно произносится нормально.
Наблюдаемые сбои
Со— звучит примерно как простоС.Р— звучит скорее какЭ.Ре— тоже звучит примерно какЭ.Свинь— вместо слога начинает читать как названия букв: примерноЭс Вэ Ен Мягкий знак. При этомИиНотдельно не проговариваются ожидаемо, а часть последовательности интерпретируется какЕн.Ковь— тоже разваливается на чтение по буквам.Солн— также читается по буквам/не как слог.Ко— звучит какКа.Ар— звучит какА.Де— звучит какДэ.
Основной вывод
SpeechSynthesisUtterance хорошо подходит для обычных слов и фраз, но не гарантирует корректное произношение искусственно выделенных слогов и отдельных букв.
TTS-движок пытается интерпретировать короткую строку как естественный текст, название буквы, аббревиатуру или неизвестную лексему. Поэтому одинаковая последовательность символов может озвучиваться по-разному в зависимости от длины и контекста.
Особенно проблемны:
- одиночные согласные;
- короткие слоги из 2 букв;
- слоги с
ь; - обрезанные части слова, которые не являются самостоятельными лексемами;
- сочетания, похожие на буквенные сокращения.
Практическое следствие
Нельзя считать браузерный TTS универсальным источником правильного произношения для учебной механики буква → слог → слово.
Для целых слов его можно использовать напрямую, но для букв и слогов потребуется один из вариантов:
- ручные исключения / словарь альтернативных строк для конкретного TTS;
- предварительно записанные аудиофайлы;
- отдельный TTS/SSML-движок с более управляемым произношением;
- гибрид: слова через браузерный TTS, проблемные буквы/слоги — через подготовленное аудио.
Важно
Эти наблюдения относятся к фактическому поведению текущего браузерного/системного голоса. На другой ОС, браузере или другом SpeechSynthesisVoice результат может отличаться, поэтому подобные исключения нельзя считать универсальными для всех устройств.
Использовать Web Speech API для воспроизведения учебных единиц: букв, слогов и отдельных слов.