Привет, Хабр! Меня зовут Эдуард, и сегодня я хочу рассказать о небольшом проекте Kabardian Translator — локальном переводчике с озвучкой для кабардинского языка. Эта история началась с сотрудничества с командой Silero TTS и превратилась в инструмент, который, надеюсь, поможет соотечественникам за границей учить родной язык.

Начало: запись голоса для Silero TTS

Всё началось с того, что я записал свой голос для проекта Silero TTS — системы синтеза речи, которая поддерживает множество языков стран СНГ. Работая над кабардинским голосом, я понял: как здорово было бы создать инструмент, где можно не только переводить слова на кабардинский, но и сразу слышать их правильное произношение. Особенно для тех, кто живёт далеко от родины и хочет учить его, чтобы сохранить связь с родным языком.

Идея была проста: локальный переводчик + синтез речи моим голосом = персональный языковой помощник.

Что уже есть на рынке? Небольшое исследование

Прежде чем писать код, я решил посмотреть, что уже сделано для кабардинского языка. И был приятно удивлён!

1. Работа Адама Паногова

Мой земляк Адам Паногов обучил отличную модель, которая умеет переводить с 200 языков на кабардинский в обе стороны, ниже информация о его проектах:

  • Модель: 200-1.3b-kbd-pretrain

  • Репозиторий с кодом и грамматическими правилами: kbd_translate

  • Параллельный корпус: около 293 тысяч пар предложений кабардинский-русский

2. Работа Анзора Кунашева

Другой мой земляк, Анзор Кунашев, пошёл другим путём — обучил две модели на каждое направление, ниже информация о его проектах:

У самого Анзора есть более мощный переводчик на сайте zedzek.com, но он работает только серьезных картах и не пригоден для локального развертываняи, так как обучен на более чем 3 миллиардах параметров.

Почему я выбрал две модели, а не одну универсальную?

Хотя модель Адама впечатляет своей поддержкой 200 языков, для локального запуска я выбрал модели Анзора по нескольким причинам:

  1. Лёгкость для локального запуска — модель на 100 языков более оптимизирована для ограниченных ресурсов памяти

  2. Специализация — отдельные модели для каждого направления дают лучший контроль качества

  3. Производительность — при тестах на моём Mac Mini M4 разница в качестве была минимальной, а скорость выше

Собираем пазл: что получилось в итоге

Мой проект объединил несколько компонентов:

Перевод:

  • Прямой перевод: русский ↔ кабардинский (модели Анзора)

  • Каскадный перевод: любой язык → русский → кабардинский

  • Базовый перевод: между другими языками (модель на 100 пар)

Синтез речи:

  • Мой кабардинский голос (Silero TTS) ru_eduard

  • Мой русский голос (Silero TTS) kbd_eduard

  • Автоматическая транслитерация не кирилических алфавитов для расширения поддержки на собственном алгоритме

Неожиданное открытие: транслитерация + Silero = мультиязычность

Самое интересное случилось, когда я начал экспериментировать. Модель Silero TTS для стран СНГ (подробнее в этой статье на Хабре) была обучена на 20 языках одновременно: славянских, тюркских, кавказских. Это дало ей уникальное фонетическое разнообразие!

Через транслитерацию я смог расширить поддержку озвучки:

Кабардинский голос (мой) озвучивает:

  • Прямо на кирилическом алфавите: кабардинский, казахский

  • Через транслитерацию: турецкий, азербайджанский, грузинский, армянский

Было странно видеть слова армянского и грузинского алфавита во всплывающих окнах, перведенные на кабардинский диграфы и триграфы, но это позволило увидить насколько кавказские языки близки фонетически.

Русский голос (мой) озвучивает:

  • Прямо: русский, украинский, белорусский

  • Через транслитерацию: немецкий, испанский, латышский

Качество озвучки:

  • Славянские языки: 95–98%

  • Кабардинский/казахский: 92–95%

  • Транслитерированные: 70–80% (в зависимости от фонетической близости)

⚙️ Технические детали и оптимизации

Проект написан на Python с использованием:

  • PyTorch для ML

  • Transformers от Hugging Face

  • Flask для веб-интерфейса

Оптимизации для Apple Silicon:

# Используем MPS, если доступно
device = "mps" if torch.backends.mps.is_available() else "cpu"
  • Float16 вместо Float32 — экономия 50% памяти (15GB → 7.5GB)

  • Ленивая загрузка TTS — ускоряет старт на 5 секунд

  • Автоочистка памяти — стабильная долгая работа

Производительность на Mac Mini M4 16гб:

  • Старт сервера: ~10 сек

  • Перевод: 200–900 мс

  • Синтез речи: меньше 1 сек

  • Память: ~8 GB пик

Как попробовать?

Проект опубликован на PyPI и GitHub:

# Установка через pip
pip install kabardian-translator

# Загрузка моделей (~15 GB)
kabardian-download-models

# Запуск
kabardian-translator

Открываем браузер: http://localhost:5500

GitHub: https://github.com/kubataba/kabardian-translator

Что дальше? Планы на будущее

  1. Silero Stress — автоматическая расстановка ударений для славянских и кавказских языков

  2. Веб-версия — чтобы дать попробовать модель тем, кто не может развернуть сам

  3. Расширение поддержки северокавказских языков, очень хочется попробовать сделать танслитерацию чеченского, осетинского, даргинского, аварского и лезгинского

  4. Telegram-бот и мобильное приложение

  5. API для синтеза аудиокниг на кабардинском языке

? Благодарности

Хочу выразить огромную благодарность:

  • Команде Silero за потрясающую TTS-систему и поддержку

  • Анзору Кунашеву за качественные модели перевода

  • Адаму Паногову за вклад в корпусы и исследование

  • Всему сообществу, работающему над сохранением кабардинского языка

Заключение

Этот проект — не просто технический эксперимент. Это попытка создать инструмент, который поможет сохранить и передать родной язык следующим поколениям, где бы они ни находились. Я писал для своих знакомых, которая выросли не на Родине и жаловались, что не могут выучить язык, потому что не могут понять произношение по написанию.

Если вы кабардинец, живущий за границей, или просто интересуетесь кавказскими языками — попробуйте Kabardian Translator. Буду рад услышать ваши отзывы, предложения и замечания!

P.S. Хотел обратиться к носителя чеченского, ингушского, даргинского, лезгинского, аварского, осетинского помогите создать синтез речи на ваших языках. Нужны люди носители языка, которые могут записать два часа аудио на родном языке и 1 час на русском. Также будет очень полезна помощь со сбором корпусов для озвучивания на родном языке и помощь в составлении словарей ударений. Если вы готовы помочь и выделить на это время, пишите компании Silero, @silero_job они делают эту работу по гранту и с удовольствием поработают с вами.


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

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


  1. newintellimouse
    02.12.2025 08:59

    А лакский не думаете добавлять? Я бы скинул знакомому.


    1. Viktor-T
      02.12.2025 08:59

      И черкесский


      1. Kubataba Автор
        02.12.2025 08:59

        Модель кабардино-черкесская - она прекрасно синтезирует на обоих родственных языках


        1. Viktor-T
          02.12.2025 08:59

          Да, точно, спасибо )


    1. Kubataba Автор
      02.12.2025 08:59

      Я думаю у Silero в планах все языки больше 100 тысяч носителей, но в первую очередь задача покрыть языки больше 500 тысяч. Главное процесс пошел и в из релизе уже грузинский, армянский, азербайджанский и кабардинский. Очень помогут те кто уже работает в IT и собирает корпуса для обучения перводчиков на своих языках.


      1. newintellimouse
        02.12.2025 08:59

        грустно думаю про свой вепсский язык на 3500 носителей, что туда не скоро дойдёт очередь :)


        1. Kubataba Автор
          02.12.2025 08:59

          ну думаю если среди этих 3500 тысяч будет один, кто выучит python и устроиться кодировщиком на работу в Silero у него будет шанс :)


  1. snakers4
    02.12.2025 08:59

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

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

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

    Приятно, что синтез на вашем родном языке хорошо работает, и даже на другие языки переносится!


    1. Kubataba Автор
      02.12.2025 08:59

      Ну я в статье честно написал что транслитерация на немецкий и испанский - это больше игрушка, чтобы посмотреть, что может модель, там попадание 70-80 процентов. А вот то что кабардинская модель сходу принимает и читает без акцента тексты на казахском и татарском языках это конечно заслуга разработчиков, которые дали всем голосам доступ ко всем алфавитам на кирилице. И транслитерация на грузинском и турецком звучит тоже вполне хорошо.