День рождения RUAccent
Сегодня день, когда была релизнута первая версия расстановщика ударений RUAccent, поэтому сегодня будет сравнимый по важности релиз.
1. RUAccent-encoders
RUAccent-encoder это специальная модель, для использования там, где другие модели не могут работать из-за BPE токенизации. Модель разработана для задач связанных с TTS и ударениями. Она интегрируется в качестве текстового энкодера в TTS моделях (например vits), при этом, штатный энкодер текстов удаляется из модели, в отличии от BERT-VITS, где используются два энкодера, поскольку duration predictor в VITS работает с отдельными символами. Также модель используется для расстановщиков ударений, фонемизаторов (а такой вероятно будет от меня) и т.д.
Модель обучалась в три этапа:
1. Претрейн модели на задачах AMLM (Autoregressive Masked Language Modelling, очень похожа на Fill In The Middle) и NSP (Next Sentence Prediction).
2. Дистилляция CDLM (старшей сестры RUAccent-encoder, обученной на бОльшем количестве данных) в модель
3. Обучение расстановке ударений в формате Token Classification.
На этом закончилось обучение RUAccent-encoder. Теперь надо обучить модель понимать ударения на входе. Поэтому модель доучена в режиме AMLM + NSP на текстах с размеченными ударениями и появился RUAccent-stressed-encoder.
2. RUAccent-turbo3 и RUAccent-tiny2
За лето появилась идея как сделать разметчик, который сможет бесконечно снабжать относительно высококачественными данными. Это аудио, в котором почти всегда говорят ударения правильно (как оказалось нет). В итоге, где-то за месяц создана такая модель и за +- две недели размечено 500ГБ аудио (из 6ТБ). На отфильтрованных данных обучен tiny2 и turbo3. Благодаря разметчику создан более качественный тест сет, в котором нет утечек.
На этом датасете замерены метрики предыдущих моделей и получены следующие метрики:
-
big_poetry: 88.86%
-
tiny: 90.63%
-
turbo: 90.89%
-
turbo2: 91.18%
-
sber_proprietary: 91.91%
-
tiny2 (NEW):
95.80%
-
turbo3 (NEW):
96.37%
Отдельная благодарность
@Sterling239 за помощь при замере метрик сберовской системы.
Также получены метрики систем расстановки ударений для обычных слов:
-
StressRNN (Russtress): 0.673
-
Ru Word Stress Deberta (Ilya Gusev): 0.931
-
Silero: 0.952
-
RUAccent:
0.972
При этом, модель RUAccent вторая по размеру после StressRNN (260KB) и весит всего 803 килобайта. Модель Silero весит ~2 мегабайта (информация
отсюда), а Ru Word Stress Deberta 12.8 мегабайт
3. Планы на будущее
1. Поэкспериментировать с аттеншном в моделях и поправить случаи, когда модель в предложении одинаковыми омографами выдает одно предсказание для всех.
2. Улучшить Ёфикатор для краевых случаев.
3. Сделать фонемизатор с возможностью учитывания ударений, эфикацией.
RUAccent encoders:
link
RUAccent 1.5.8:
link
Донат:
link
@den4ikresearch