Новости, о которых невозможно молчать
Новости, о которых невозможно молчать

Мы недавно писали на Хабр о нашей библиотеке silero-stress для простановки ударения в обычных словах и омографах. Теперь у нашего проекта silero-stress вышла версия v1.2, в которую вошло следующее:

  • Добавили акцентор для украинского языка на основе словаря в 3M слов;

  • Выложили в открытый доступ словари ударений ещё для 18 языков России и СНГ;

  • Если слова нет в словаре, ударение ставится алгоритмом (подробности в табличке под спойлером ниже);

  • Обновили пакет.

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

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

Почти для всех языков получилось вручную разметить небольшого размера словари. В ходе разметки выяснилось, что для подавляющего большинства языков в первом приближении работает эвристика "ставить ударение на первый/последний слог", которой можно заменить полноценный акцентор, обученный на большом словаре.

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

Словари на все языки, кроме русского и украинского получились довольно небольшими. Чтобы не смущать пользователей, мы вынесли функционал расстановки ударений в малоресурных языках в отдельный модуль. Если будет запрос и помощь от комьюнити, то по мере развития проекта мы будем добавлять языки "на основу". С омографами меньше верится, что мы когда-либо до них добежим, но никогда не говори никогда.

Также было бы неплохо сделать акцентор для белорусского языка, но тут в идеале нужен словарь ударений на несколько миллионов слов.

Скрытый текст

Язык

Словарь (шт. слов)

Акцентор

Словарь размечен вручную

Алгоритм доразметки

Русский

~4 млн

акцентор + классификатор омографов

частично

Украинский

~3 млн

акцентор

частично

Белорусский

24 тыс.

словарь

да

только словарь

Якутский

86 тыс.

словарь + алгоритм

частично

последний слог

Азер. (лат.)

11 тыс.

словарь + алгоритм

да

последний слог

Азер. (кир.)

11 тыс.

словарь + алгоритм

да

последний слог

Армянский

8.5 тыс.

словарь + алгоритм

да

последний слог

Башкирский

9.7 тыс.

словарь + алгоритм

да

последний слог

Грузинский

12.5 тыс.

алгоритм

нет

предпоследний слог

Кабардинский

5.5 тыс.

словарь + алгоритм

да

последний слог

Казахский

6.8 тыс.

словарь + алгоритм

да

последний слог

Калмыцкий

9 тыс.

алгоритм

нет

последний слог

Киргизский

11.7 тыс.

словарь + алгоритм

да

последний слог

Мокшанский

5.3 тыс.

словарь + алгоритм

да

первый слог

Таджикский

9 тыс.

словарь + алгоритм

да

последний слог

Татарский

11.5 тыс.

словарь + алгоритм

да

последний слог

Удмуртский

13.5 тыс.

алгоритм

нет

последний слог

Узбекский (лат.)

5 тыс.

алгоритм

нет

последний слог

Узбекский (кир.)

5 тыс.

алгоритм

нет

последний слог

Хакасский

12.3 тыс.

словарь + алгоритм

да

последний слог

Чувашский

23 тыс.

словарь + алгоритм

да

последний слог

Эрзянский

4 тыс.

словарь + алгоритм

да

первый слог

Ссылки:

  • Репозиторий проекта тут

  • Как пользоваться почитать тут

Работа над проектом ведётся при поддержке Фонда содействия инновациям в рамках федерального проекта «Искусственный интеллект» национальной программы «Цифровая экономика Российской Федерации».

Комментарии (8)


  1. DeXPeriX
    22.11.2025 17:58

    Ура! Спасибо огромное. Обновляю EbookTalker


  1. kryvichh
    22.11.2025 17:58

    Для белорусского языка, огромная лексико-грамматическая база (слова с лексическими значениями, со всеми словоформами и проставленными ударениями) выложена здесь, под Creative Commons Attribution/Share-Alike.


    1. snakers4 Автор
      22.11.2025 17:58

      Вот это царский подгон, спасибо! Неудивительно, что я не нашёл, т.к. гуглил-то я на русском. Одна беда - у нас лицензия MIT, у тут CC-BY-SA-4.0 license.


      1. kryvichh
        22.11.2025 17:58

        Насколько понимаю, только если вы решите выложить производный словарь, вам придётся использовать для него ту же CC-BY-SA-4.0. На обученную на словаре модель это ограничение не распространяется.


        1. snakers4 Автор
          22.11.2025 17:58

          Формально вы правы. Но это, конечно, такой как бы своеобразный хак для обхода лицензии.


  1. AigizK
    22.11.2025 17:58

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


    1. snakers4 Автор
      22.11.2025 17:58

      Ударения в башкирских словах расставлялись так:

      • По-умолчанию брался последний слог;

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

      Что касается словарей языков РФ - они выложены с исходниками, то есть можно их улучшать, глядишь потом пригодятся кому-то. Если будет огромный словарь - можно сразу акцентор бахнуть.

      Что касается синтеза, это отчасти медвежья услуга. Мы сделали синтез с ударениями и без на башкирском, и модель с ударением получилась несколько "своевольной" - она не всегда следует ручной простановке ударений.


      1. AigizK
        22.11.2025 17:58

        На основе твоих слов из словаря для башкирского создал проект расстановке ударений для башкирского языка: https://github.com/AigizK/bashkir-stress/tree/main
        Лицензия как у тебя, так что используй. Для нахождения корня слов можно прикрутить Hunspell: https://github.com/AigizK/bashspell/tree/main/static/hunspell/28.01.2024 и доработать правила 1a, 1b

        Правила 3,4 исключают очень много слов из словаря.