Информация к размышлению:
Как показывает моя долгая практика возни с
голосами TTS для Garmin, заставить TTS произносить топонимические названия правильно без специальных средств практически невозможно. Если в "обычных" русских словах есть хоть какие-то эмпирические правила расстановки ударений, то к топонимическим названием они не относятся никак
К тому же существует много с виду одинаковых названий разных НП, ударение в которых по историческим причинам может стоять в разных местах: например, Ив
аново и Иван
ово.
В "больших" картографических продуктах эта проблема решается добавлением фонетики к отображаемым на карте названиям. Проблема обычно в том, что внутренний формат фонетики обычно у каждого TTS свой и, честно говоря, даже отличается от языка к языку.
Но, насколько я знаю, в некоторых последних API для TTS (например, у Windows SAPI5) есть возможность послать в любой голос не только просто текст, но и т.н. универсальную фонетику, обычно в формате
IPA, которая теоритически будет озвучена одинаково голосом любого языка. Но для
Андроида такого, к сожалению, не вижу.
А то можно было бы к/вместо поля текста для TTS добавить поле с IPA и/или прикрутить генерацию фонетики по умолчанию из оригинального текста с возможностью ручной правки (для установки верного ударения, например) совсем уж супер-пользователями