Дополнения и исправления для русских TTS-голосов из навигаторов Garmin
Начиная с 2009 года Garmin поставляет русские TTS-голоса, произносящие названия улиц
в голосовых подсказках навигатора на основе синтеза речи.
В силу сложности русского языка вообще и русских топонимических названий в частности,
все эти голоса озвучивают подсказки с большим количеством неверных ударений
и другими искажениями.
Ошибки произношения могут быть скорректированы словарями, встроенными в TTS-голоса,
но в данных голосах эти словари либо пусты, либо содержат не более десятка названий.
Большинство TTS-голосов уже сняты с официальной поддержки и исправляться не будут.
К сожалению, Garmin практически не реагирует на замечания/пожелания и по последним
версиям голосов, так что единственное, что остается - пытаться помочь себе самостоятельно.
К счастью, все файлы TTS-голосов .vpm для Garmin представляют собой тот же файловый
контейнер FAT, что и файлы его карт .img и успешно разбираются/собираются той же утилитой
GMapTool в режиме as subfiles.
И при наличии специальных знаний вполне можно самостоятельно разобраться с содержимым
голоса, пополнить его словарь и даже расширить его внутреннюю обработку фраз перед
произношением такой полезной функциональностью, как:
- Склонение названий улиц в зависимости от контекста полной фразы.
- Распознавание и разделение на слова/фрагменты названий и индексов трасс
("Поверните на Р23" без исправлений звучит как "Поверните на разъезд двадцать третий")
- Исправление полных фраз или их фрагментов для более благозвучного звучания
("Предупреждение об узких полосах" -> "Предупреждение о сужении дороги")
- Восстановление окончаний для числительных ("2-Я" или "1-Го")
- Обработка дат в названиях для произношения их в нужном падеже
("25 Октября Проспект" -> "проспект 20 пятого октября")
- Перевод иностранных статусных названий дорог (улица, проспект, шоссе и т.п.).
На настоящий момент полный перевод сделан для названий из Эстонии, Латвии, Литвы, Венгрии, Франции,
Испании и Италии.
Для финских и немецких названий, написанных слитно со статусом (Schützenstraße, Lappeenrannantie),
такие "окончания" отделяются и произносятся заготовленными фонемами, близкими к нужному произношению.
К сожалению, такая функциональность доступна только для самого последнего поколения голосов TTS3, в
предыдущих можно только заменить словарь.
На сегодня существуют уже 3 "поколения" TTS-голосов, не совместимые между собой -
заменить в навигаторе поставленный TTS-голос одного поколения на голос другого поколения нельзя.
Катерина 1.30 (TTS1)
Первый русский TTS-голос. Официальная поддержка прекращена.
- Первоисточник: RealSpeak/ScanSoft/Nuance Katerina
- Совместимые навигаторы: nuvi 13xx/14xx, 2455, 3790 ...
- Голосовая модель: Compact (bet2 16kHz)
- Встроенный словарь: есть,
бинарный формат BDC (Binary Native Platform Dictionary),
максимальное число слов - 10000
- Компилятор словаря: редактор RSUDE 2.1
- Предобработка фраз: отсутствует
- Готовый голос: Pycckuu__Katerina.vpm
- Исходные файлы голоса: Pycckuu__Katerina 1.30
- Исходный словарь: dictionary_Katerina.dct,
текстовый формат DCT в кодировке UTF-8 с BOM
- Компиляция словаря: предварительно установленым редактором RSUDE
(корректно работает только на русской версии Windows XP)
- Сборка голоса: make_voice_Katerina.bat
Милена 1.30 (TTS2)
Новый русский TTS-голос следующего поколения. Официальная поддержка прекращена.
- Первоисточник: Nuance Vocalizer Milena
- Совместимые навигаторы: nuvi 30/40/42/50/52
- Голосовая модель: Compact (bet2 16kHz)
- Встроенный словарь: есть,
бинарный формат DAT
- Компилятор словаря: Nuance Vocalizer for Automotive 5.3 + VoCon 3200 Embedded Development System 3.3 SDK
- Предобработка фраз: отсутствует
- Готовый голос: Pycckuu__Milena.vpm
- Исходные файлы голоса: Pycckuu__Milena 1.30
- Исходный словарь: dictionary_Milena130.dct,
текстовый формат DCT в кодировке UTF-8 с BOM
- Компиляция словаря: build_dictionary_Milena130.bat,
запускающий скопилированный Python-скрипт
dictcpl.pyc.
- Сборка голоса: make_voice_Milena130.bat
Милена 2.10 (TTS3)
Кардинальное обновление Милены первой версии (Real Directions или Natural Guidance).
Официальная поддержка прекращена.
- Первоисточник: Nuance Vocalizer Milena
- Совместимые навигаторы: nuvi 2x97/3x97, ... , nuviCam, вся серия Drive
- Голосовая модель: Standard (dri40_155mrf22 22kHz) + Compact (bet2 16kHz)
- Встроенный словарь: есть,
бинарный формат DAT
- Компилятор словаря: Nuance Vocalizer for Automotive 5.3 + VoCon 3200 Embedded Development System 3.3 SDK
- Предобработка фраз:
- Предварительная замена слов: RU.DCT,
текст в кодировке UTF-8 без BOM
- Постобработка/замена по умолчанию(?): DFLT.DCT,
текст в кодировке UTF-8 без BOM
- Регулярные выражения замен: RULESET.TXT,
текст в кодировке UTF-8 с BOM, первая пустая строка обязательна
- Дополнительный файл регулярных выражений замен: RP_RSET.TXT,
текст в кодировке UTF-8 с BOM, первая пустая строка обязательна, выполняется перед RULESET.TXT
- Готовый голос: Pycckuu__Milena.vpm
- Исходные файлы голоса: Pycckuu__Milena 2.10
- Исходный словари:
- Полный финальный словарь: dictionary.dct,
текстовый формат DCT в кодировке UTF-8 с BOM
- Черновой словарь для русских названий: dictionary.voc,
текстовый формат, похожий на DCT в кодировке UTF-8 с BOM для редактора
Milan
- Черновой словарь для названий городов: cities.voc,
текстовый формат, похожий на DCT в кодировке UTF-8 с BOM для редактора
Milan
- Черновой словарь для иностранных названий: dictionary_foreign.voc,
текстовый формат, похожий на DCT в кодировке UTF-8 с BOM для редактора
Milan
- Чистовой словарь для иностранных названий с восстановленными европейскими символами:
dictionary_foreign.dct,
текстовый формат DCT в кодировке UTF-8 с BOM
- Компиляция словаря: build_dictionary.bat,
запускающий скопилированный Python-скрипт
dictcpl.pyc
- Сборка голоса: make_voice_Milena.bat
Татьяна 2.30 (TTS3)
Новый TTS-голос, но внутри та же Милена 2.10, расширенная поддержкой техники генерации речи CLC вместо
"устаревшей" G2P, благодаря чему основные фрагменты фраз звучат как записанный голос живого диктора,
с более медленным и даже эмоциональным произношением.
Причем база CLC не включена в файл голоса, она приходит отдельно вместе с каждым обновлением основной
"встроенной" карты навигатора.
Также голос дополнен несколькими новыми фразами для подсказок Real Directions.
Официальная поддержка как бы продолжается.
- Первоисточник: Nuance Vocalizer Milena
- Совместимые навигаторы: nuvi 2x97/3x97, ... , nuviCam, вся серия Drive
- Голосовая модель: Standard (dri40_155mrf22 22kHz) + Compact (bet2 16kHz)
- Встроенный словарь: есть,
бинарный формат DAT
- Компилятор словаря: Nuance Vocalizer for Automotive 5.3 + VoCon 3200 Embedded Development System 3.3 SDK
- Предобработка фраз:
- Предварительная замена слов: RU.DCT,
текст в кодировке UTF-8 без BOM
- Постобработка/замена по умолчанию(?): DFLT.DCT,
текст в кодировке UTF-8 без BOM
- Регулярные выражения замен: RULESET.TXT,
текст в кодировке UTF-8 с BOM, первая пустая строка обязательна
- Дополнительный файл регулярных выражений замен: RP_RSET.TXT,
текст в кодировке UTF-8 с BOM, первая пустая строка обязательна, выполняется перед RULESET.TXT
- Готовый голос: Pycckuu__Tatiana.vpm
- Исходные файлы голоса: Pycckuu__Tatiana 2.30
- Исходный словари:
- Полный финальный словарь: dictionary.dct,
текстовый формат DCT в кодировке UTF-8 с BOM
- Черновой словарь для русских названий: dictionary.voc,
текстовый формат, похожий на DCT в кодировке UTF-8 с BOM для редактора
Milan
- Черновой словарь для названий городов: cities.voc,
текстовый формат, похожий на DCT в кодировке UTF-8 с BOM для редактора
Milan
- Черновой словарь для иностранных названий: dictionary_foreign.voc,
текстовый формат, похожий на DCT в кодировке UTF-8 с BOM для редактора
Milan
- Чистовой словарь для иностранных названий с восстановленными европейскими символами:
dictionary_foreign.dct,
текстовый формат DCT в кодировке UTF-8 с BOM
- Компиляция словаря: build_dictionary.bat,
запускающий скопилированный Python-скрипт
dictcpl.pyc
- Сборка голоса: make_voice_Tatiana.bat
Словарь городов
Названия населённых пунктов вынесены в отдельный словарь и включаются в финальные словари Милены обеих версий и Татьяны.
Также они входят в состав дополнительного словаря для голоса Милена из сборки
Nuance Vocalizer Expressive 2 TTS for Android от 4pda.to
для использования вместе с приложением MapcamDroid,
которое может озвучивать оповещения о камерах и прочем, включая названия населённых пунктов, посредством TTS.
- Готовый словарь: userdct_rur_milena.dat
- Вспомогательные регулярные выражения коррекции произношения: rex_rur.dat,
текст в кодировке UTF-8 с BOM, первая пустая строка обязательна
- Исходный словари:
- Полный финальный словарь: alerts.dct,
текстовый формат DCT в кодировке UTF-8 с BOM
- Черновой словарь для коррекции некоторых оповещений MapcamDroid: alerts.voc,
текстовый формат, похожий на DCT в кодировке UTF-8 с BOM для редактора
Milan
- Черновой словарь для названий городов: cities.voc,
текстовый формат, похожий на DCT в кодировке UTF-8 с BOM для редактора
Milan
- Компиляция словаря: build_dictionary_alerts.bat,
запускающий скопилированный Python-скрипт
dictcpl.pyc
Готовый словарь и, по желанию,
файл регулярных выражений
копируются в папку данных голоса на устройстве Android с названием VocalizerEx2 согласно
инструкции по установке.
Ссылки
- Последние версии обновленных голосов
Форум обсуждения недостатков Милены и других TTS-голосов у Garmin
- Обсуждение фонетики названий, встроенной в карты HERE, используемых в Garmin
- Форум использования TTS-голосов в Android на 4pda.to
Примечания
- Словари, включающие падежные формы названий, и файлы регулярных выражений, одинаковы для
Милены второго поколения и Татьяны
- Готовый словарь городов обновляется при каждом изменении исходных словарей и
не включается в версии голосов для Garmin
- Для просмотра ссылок на форум https://4pda.to/forum/ нужна предварительная регистрация