Привет, Хабр! Меня зовут Эдуард, и сегодня я хочу рассказать о небольшом проекте Kabardian Translator — локальном переводчике с озвучкой для кабардинского языка. Эта история началась с сотрудничества с командой Silero TTS и превратилась в инструмент, который, надеюсь, поможет соотечественникам за границей учить родной язык.
Начало: запись голоса для Silero TTS
Всё началось с того, что я записал свой голос для проекта Silero TTS — системы синтеза речи, которая поддерживает множество языков стран СНГ. Работая над кабардинским голосом, я понял: как здорово было бы создать инструмент, где можно не только переводить слова на кабардинский, но и сразу слышать их правильное произношение. Особенно для тех, кто живёт далеко от родины и хочет учить его, чтобы сохранить связь с родным языком.
Идея была проста: локальный переводчик + синтез речи моим голосом = персональный языковой помощник.
Что уже есть на рынке? Небольшое исследование
Прежде чем писать код, я решил посмотреть, что уже сделано для кабардинского языка. И был приятно удивлён!
1. Работа Адама Паногова
Мой земляк Адам Паногов обучил отличную модель, которая умеет переводить с 200 языков на кабардинский в обе стороны, ниже информация о его проектах:
Модель: 200-1.3b-kbd-pretrain
Репозиторий с кодом и грамматическими правилами: kbd_translate
Параллельный корпус: около 293 тысяч пар предложений кабардинский-русский
2. Работа Анзора Кунашева
Другой мой земляк, Анзор Кунашев, пошёл другим путём — обучил две модели на каждое направление, ниже информация о его проектах:
Модель "любой язык → кабардинский": 1.2B_ft_kbd-ru_63K
Модель "кабардинский → любой язык": 1.2B_ft_ru-kbd_63K
Корпус от его проекта Adiga AI: 220 тысяч предложений
У самого Анзора есть более мощный переводчик на сайте zedzek.com, но он работает только серьезных картах и не пригоден для локального развертываняи, так как обучен на более чем 3 миллиардах параметров.
Почему я выбрал две модели, а не одну универсальную?
Хотя модель Адама впечатляет своей поддержкой 200 языков, для локального запуска я выбрал модели Анзора по нескольким причинам:
Лёгкость для локального запуска — модель на 100 языков более оптимизирована для ограниченных ресурсов памяти
Специализация — отдельные модели для каждого направления дают лучший контроль качества
Производительность — при тестах на моём 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
Что дальше? Планы на будущее
Silero Stress — автоматическая расстановка ударений для славянских и кавказских языков
Веб-версия — чтобы дать попробовать модель тем, кто не может развернуть сам
Расширение поддержки северокавказских языков, очень хочется попробовать сделать танслитерацию чеченского, осетинского, даргинского, аварского и лезгинского
Telegram-бот и мобильное приложение
API для синтеза аудиокниг на кабардинском языке
? Благодарности
Хочу выразить огромную благодарность:
Команде Silero за потрясающую TTS-систему и поддержку
Анзору Кунашеву за качественные модели перевода
Адаму Паногову за вклад в корпусы и исследование
Всему сообществу, работающему над сохранением кабардинского языка
Заключение
Этот проект — не просто технический эксперимент. Это попытка создать инструмент, который поможет сохранить и передать родной язык следующим поколениям, где бы они ни находились. Я писал для своих знакомых, которая выросли не на Родине и жаловались, что не могут выучить язык, потому что не могут понять произношение по написанию.
Если вы кабардинец, живущий за границей, или просто интересуетесь кавказскими языками — попробуйте Kabardian Translator. Буду рад услышать ваши отзывы, предложения и замечания!
P.S. Хотел обратиться к носителя чеченского, ингушского, даргинского, лезгинского, аварского, осетинского помогите создать синтез речи на ваших языках. Нужны люди носители языка, которые могут записать два часа аудио на родном языке и 1 час на русском. Также будет очень полезна помощь со сбором корпусов для озвучивания на родном языке и помощь в составлении словарей ударений. Если вы готовы помочь и выделить на это время, пишите компании Silero, @silero_job они делают эту работу по гранту и с удовольствием поработают с вами.
Статья написана с любовью к родному языку и уважением ко всем, кто работает над его сохранением.
Комментарии (9)

snakers4
02.12.2025 08:59Большое спасибо за помощь с записями аудио и продвижением нашей модельки. Очень приятно, когда есть такие большие энтузиасты, кто любит свой язык и готов что-то активно делать для его развития и сохранения! Надеюсь у нас получится добавить основные недостающие языки кавказских республик.
Что касается транслитерации, я послушал на языках, которые я изучал в универе, понятно дело там можно работать над правилами, но там конечно они звучат как первокурсник на первом месяце занятий. С другой стороны, вы выбрали языки с простой фонетикой, и немецкий наверное можно даже докрутить. Тут вопрос целеполагания.
Такой инструмент может быть полезен преподавателям, но если бы мы такой синтез пытались где-то применять, нас бы заклевали (я про транслитерацию) конечно.
Приятно, что синтез на вашем родном языке хорошо работает, и даже на другие языки переносится!

Kubataba Автор
02.12.2025 08:59Ну я в статье честно написал что транслитерация на немецкий и испанский - это больше игрушка, чтобы посмотреть, что может модель, там попадание 70-80 процентов. А вот то что кабардинская модель сходу принимает и читает без акцента тексты на казахском и татарском языках это конечно заслуга разработчиков, которые дали всем голосам доступ ко всем алфавитам на кирилице. И транслитерация на грузинском и турецком звучит тоже вполне хорошо.
newintellimouse
А лакский не думаете добавлять? Я бы скинул знакомому.
Viktor-T
И черкесский
Kubataba Автор
Модель кабардино-черкесская - она прекрасно синтезирует на обоих родственных языках
Viktor-T
Да, точно, спасибо )
Kubataba Автор
Я думаю у Silero в планах все языки больше 100 тысяч носителей, но в первую очередь задача покрыть языки больше 500 тысяч. Главное процесс пошел и в из релизе уже грузинский, армянский, азербайджанский и кабардинский. Очень помогут те кто уже работает в IT и собирает корпуса для обучения перводчиков на своих языках.
newintellimouse
грустно думаю про свой вепсский язык на 3500 носителей, что туда не скоро дойдёт очередь :)
Kubataba Автор
ну думаю если среди этих 3500 тысяч будет один, кто выучит python и устроиться кодировщиком на работу в Silero у него будет шанс :)