Pull to refresh

Теперь наш синтез на 22 языках с кириллицей и ещё в 4 раза быстрее

Level of difficultyMedium
Reading time4 min
Views5.8K


Источник карты — Проект «Языки России» Институт языкознания РАН, 2021 год

Давненько мы не выпускали новых статей про наш синтез речи! В прошлый раз мы добавили синтез на 9 языках народов Индии, существенно улучшили автоматическую простановку ударений, добавили 1 русский голос и "наследовали" SSML для всех моделей.


В этот раз мы сделали следующее:


  • Ускорили все v4 модели в 3-4 раза;
  • Существенно повысили качество синтеза в 8 kHz;
  • Обновили и пересобрали нашу модель для русского языка;
  • Обновили модель для 9 языков народов Индии с 17 голосами;
  • Добавили единую модель для 22 языков с кириллическим алфавитом с 31 голосом;
  • Прекратили поддержку моделей романо-германских языков (старые модели будут доступны для скачивания без изменений);
  • Обновили модели для языков народов СНГ: узбекского и украинского (татарский и калмыцкий были "поглощены" единой моделью);

Как попробовать модель


Дублировать примеры кода из прошлых статей не буду, глобально ничего не меняется, просто приложу ссылки. Попробовать модель можно:



Меню выбора языка в боте

image


Новая кириллическая модель


В этом релизе мы добавили модель для следующих языков со следующим набором голосов:


Speaker_ID Язык Пол
b_ava Аварский F
b_bashkir Башкирский M
b_bulb Болгарский M
b_bulc Болгарский M
b_mrj Горномарийский M
kz_M1 Казахский M
kz_M2 Казахский M
kz_F3 Казахский F
kz_F1 Казахский F
kz_F2 Казахский F
b_kalmyk Калмыцкий M
kalmyk_erdni Калмыцкий M
kalmyk_delghir Калмыцкий F
b_krc Карачаево-балкарский M
b_kpv Коми-зырянский M
b_lez Лезгинский M
b_mhr Марийский F
b_nog Ногайский F
b_oss Осетинский M
b_ru Русский M
b_tat Татарский M
marat_tt Татарский M
b_tyv Тувинский M
b_udm Удмуртский M
b_uzb Узбекский M
b_kjh Хакасский F
b_che Чеченский M
b_cv Чувашский M
cv_ekaterina Чувашский F
b_myv Эрзянский M
b_sah Якутский M

Поскольку все кириллические алфавиты довольно "фонетические", не представляет сложности использовать единый набор токенов для всех языков: !,-.:?iµöабвгдежзийклмнопрстуфхцчшщъыьэюяёђѓєіјњћќўѳғҕҗҙқҡңҥҫүұҳҷһӏӑӓӕӗәӝӟӥӧөӱӳӵӹ.


При предобработке данных нам пришлось отказаться от использования совсем малых и редких языков (сотни или тысячи носителей), из-за совсем специфичных символов, сильно увеличивающих размер словаря. Также пришлось убрать совсем редкие буквы, и у некоторых символов были проблемы с кодировкой. Также у некоторых языков отсутствует единый чётко устоявшийся алфавит. Например, у пары диалектов свои небольшие вариации алфавита, а в интернет-общении используется некая средняя упрощенная версия. Самый близкий аналог такого — это буква ё и литературные кавычки в русском языке.


Если мы пропустили какие-то важные буквы в вашем языке — обязательно напишите об этом.


У такого подхода есть очевидный минус. На все языки мы не смогли найти достаточное количество данных с ударениями, и поэтому модель ставит ударения "по наитию". Очевидным способом улучшения модели является краудсорсинг ударений хотя бы для использованных датасетов. Если вы сможете помочь нам расставить ударения для большей части представленных языков, то мы сможем также опубликовать модель с ударениями, когда наберется достаточное количество языков.


Будем также признательны, если соотечественники владеющие какими-то из этих языков как родными (или если у вас в семье кто-то говорит) оценят качество и правильность произношения. Данные на вход именно этой модели были местами шумноватые.


В статью же, чтобы всё было не так серьёзно, я добавлю озвучку одной и той же фразы Волк слабее льва и тигра, но в цирке он не выступает! всеми этими голосами. По словам носителей нескольких языков, с кем мы общаемся, голоса "говорят" на русском с акцентом, похожим на настоящий акцент носителей языка (чтобы загрузился виджет, может потребоваться VPN):


Заголовок спойлера

Ускорение моделей


Тут всё довольно просто, публичные модели v4 стали примерно в 3-4 раза быстрее по сравнению с v3 моделями:



RTS на данном графике — это число синтезируемых секунд аудио в секунду на указанном количестве потоков процессора.

Повышение качества синтеза для 8 kHz


Тут тоже все довольно просто, раньше для 8 kHz как бы использовалась отдельная ветка модели, и она была заметно ниже по качеству.


Но после ускорения моделей аудио в 8 kHz создается из аудио в 24 kHz, что звучит сильно лучше. Это привело к падению скорости синтеза в 8 kHz, но одновременно с ускорением это падение не должно чувствоваться.


Разработки вне публичного домена и что не получилось


Мы не стали выносить в публичный домен следующие разработки:


  • Модели повышенного качества;
  • Модели для русского языка, работающие на основе фонем и модели автоматической конверсии из букв в фонемы;
  • ONNX-версии моделей;
  • Смешанные фонемные модели для нескольких языков.

Из целей мы решили отказаться от решения следующих задач:


  • Расстановка ударений для омографов (модель ставит самый частотный вариант для ~1000 омографов);
  • Квантизация моделей синтеза для дальнейшего ускорения хоть в итоге и завелась, но она приводила к деградации качества звучания, времени и фокуса на quantization-aware тренировку моделей не нашлось.

Дальнейшая поддержка и развитие


Мы не планируем останавливаться на достигнутом и собираемся продолжать поддерживаться и развивать наш синтез:


  • Добавлять новые языки по возможности;
  • Дальше развивать фишки по управлению эмоциями, интонацией речи и произношением;
  • Разрабатывать и внедрять новые модальности "синтеза речи", такие как ревойс (speech-to-speech, voice-to-voice, revoice, ревойс как мы его называем). Ревойс кстати уже тоже можно попробовать в нашем боте.
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
Total votes 32: ↑32 and ↓0+32
Comments15

Articles