rusvoice: русская озвучка своим голосом, с ударениями и брендами
Клонировать голос умеет открытый код. Дефицитно другое: слой правки текста перед синтезом и возможность увидеть, что тракт сделает с репликой, ещё до того как её услышишь. Apache-2.0.
Что он правит
- Ударения через RUAccent, иначе синтез ставит их по своему усмотрению.
- Бренды по словарю:
Knight Capitalчитается «Найт Кэпитал», а не по буквам. - Твёрдая «э» в заимствованиях, где иначе выходит смягчение.
- Аббревиатуры:
ТЗстановится «тэ-зэ»,MVPстановится «эм-ви-пи». - Числа прописью, когда это включено.
Видно до синтеза
pip install rusvoice
rusvoice explain "Компания Knight Capital потеряла 440 миллионов."
Команда печатает вход, выход и что сделал каждый слой по отдельности. Отдельно печатает, что НЕ применилось и почему. Если в окружении нет RUAccent, вы увидите предупреждение и код возврата 1, а не тихо уехавший в синтез текст без ударений.
В этом вся затея. Без такой проверки окружение промолчит, озвучка выйдет плоской, а спишут это на модель.
Ставится в чужое окружение
Ядро написано на голой стандартной библиотеке, без зависимостей. Тяжёлое подтягивается экстрами, только если вам нужен сам синтез. Поэтому rusvoice можно положить рядом с чем угодно и не собрать конфликт версий.
Ещё в наборе
lint проверяет реплику до озвучки, doctor отвечает, взлетит ли эта установка вообще, dict ведёт словари произношения, voice заводит свой голос один раз, say собирает весь рецепт в одну команду.