Сегодня мы открываем Navoiy TTS — модель text-to-speech для узбекского языка на базе CosyVoice2-0.5B.
Она превращает узбекский текст в нейтральную или выразительную речь. В релиз также входит утилита нормализации чисел, дат, времени, апострофов и узбекской кириллицы.
Зачем это нужно?
Хорошая узбекская speech-система должна учитывать:
- узбекские имена и слова
- латиницу и кириллицу
- числа, даты и время
- естественные паузы
- разные стили речи
- русские и английские слова внутри узбекской фразы
Navoiy TTS можно использовать как основу для voice agent, образовательных и accessibility-инструментов, медиа-приложений и исследований.
Что входит в релиз?
emotion_600h_joint.pt— рекомендуемый checkpointemotions_40h.json— пресеты стилейinference.py— скрипт inferenceuztts.normalize— нормализация узбекского текста- demo-аудио и manifest
- Apache 2.0 license и рекомендации по безопасности
Checkpoint не является самостоятельной моделью. Для работы нужны код CosyVoice и базовая модель CosyVoice2-0.5B.
Как использовать?
Установите CosyVoice:
git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git
cd CosyVoice
git checkout 074ca6dc9e80a2f424f1f74b48bdd7d3fea531cc
git submodule update --init --recursive
pip install -r requirements.txt
cd ..Скачайте Navoiy TTS:
git clone https://huggingface.co/aisha-org/navoiy-tts
pip install -r navoiy-tts/requirements.txtСкачайте базовую модель CosyVoice2-0.5B с revision из model card, затем запустите:
python navoiy-tts/inference.py \
--cosyvoice-dir CosyVoice \
--base-model-dir CosyVoice/pretrained_models/CosyVoice2-0.5B \
--checkpoint navoiy-tts/emotion_600h_joint.pt \
--reference reference.wav \
--text "Bugun siz bilan muhim bir xabarni baham ko'rmoqchiman." \
--emotion warm \
--output output.wavСкрипт требует CUDA и создаёт аудио 24 kHz. Команда --list-emotions показывает доступные стили.
Доступные стили
Модель поддерживает calm, happy, sad, angry, nervous, surprised, whisper, warm, tired и sarcastic.
Это запросы на стиль, а не гарантия конкретной интонации. На результат влияют текст, reference voice, checkpoint и random seed. Перед production-использованием тестируйте свои сценарии.
Нормализация текста
Для чисел и дат можно использовать встроенный модуль:
from uztts.normalize import normalize
print(normalize('Bugun 16.07.2026, soat 14:30 da uchrashamiz.'))Он может переводить узбекскую кириллицу в латиницу, приводить апострофы к единому виду и раскрывать распространённые числа, даты, время, порядковые числительные и единицы.
Важные ограничения
Модель может неправильно произносить имена, заимствованные слова, сокращения и необычные числа. Она может повторять, пропускать или изменять слова. Диалекты и смешанная речь не были полностью оценены.
Используйте voice cloning только с явного согласия говорящего. Не применяйте модель для impersonation, обмана, мошенничества, harassment или обхода voice authentication. Если слушатель может принять голос за голос реального человека, сообщайте, что он синтетический.
Итог
Navoiy TTS не обещает идеальное произношение каждой фразы. Это открытая основа, которую разработчики и исследователи могут запускать, проверять и улучшать.
Начните с репозитория Navoiy TTS, послушайте демо и поделитесь результатами.
