Hoje decidimos publicar o Navoiy TTS como código aberto. Partimos do CosyVoice2-0.5B, colocámo-lo numa GPU e cozinhámo-lo com ingredientes de áudio usbeque suficientes. O resultado é um modelo de texto para voz que fala bem usbeque.
O modelo converte texto usbeque em fala neutra ou expressiva. Inclui uma ferramenta de normalização que prepara números, datas, horas, apóstrofos e texto usbeque em cirílico para a síntese.
Nada é perfeito e este modelo também tem limitações. Tudo depende dos ingredientes: os dados. Mais ingredientes de qualidade dão melhores resultados.
Porque abrimos o modelo a todos?
A fala quotidiana não se resume a palavras simples. Por isso, o modelo foi preparado para:
- ler bem números, datas e horas;
- pronunciar corretamente nomes e locais;
- compreender os alfabetos latino e cirílico;
- falar com pausas naturais;
- suportar diferentes estilos de fala;
- pronunciar palavras russas e inglesas dentro de uma frase.
Também procurámos ter em conta outras situações que possa encontrar e resolver as tarefas difíceis que lhes estão associadas.
A forma mais simples de nos agradecer é partilhar o projeto com os seus amigos. Ficaremos felizes se o modelo for útil no seu projeto.
É bom ver que utiliza os nossos modelos. Obrigado por usar os nossos modelos de voz para texto e de texto para voz.
Como se utiliza?
Siga estes passos para instalar, configurar e executar o modelo. O checkpoint não funciona sozinho: também precisa do código original do CosyVoice e do modelo base CosyVoice2-0.5B.
1. Instale primeiro o 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 ..2. Transfira o Navoiy TTS
git clone https://huggingface.co/aisha-org/navoiy-tts
pip install -r navoiy-tts/requirements.txtTransfira o modelo base CosyVoice2-0.5B na revisão indicada na ficha do modelo.
3. Gere voz
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.wavO script requer capacidade de cálculo CUDA e gera áudio a 24 kHz. Use --list-emotions para ver todas as emoções disponíveis.
Emoções
O modelo suporta as emoções calm, happy, sad, angry, nervous, surprised, whisper, warm, tired e sarcastic.
Estas definições não garantem um resultado específico. A voz final depende do texto, do áudio de referência, do checkpoint e da semente aleatória. Recomendamos testar o sistema com os seus textos antes de o usar em produção.
Normalização
Números e datas podem ser difíceis de pronunciar para um modelo de texto para voz. O Navoiy TTS também fornece um módulo de normalização:
from uztts.normalize import normalize
print(normalize('Bugun 16.07.2026, soat 14:30 da uchrashamiz.'))Converte texto cirílico para latino, uniformiza apóstrofos e normaliza números comuns, datas, horas, ordinais e outros casos.
Limitações
O modelo pode pronunciar incorretamente nomes, empréstimos linguísticos, abreviaturas e números invulgares. Pode também repetir, omitir ou alterar palavras. Ainda não avaliámos completamente os dialetos nem os textos multilingues.
Antes de clonar uma voz, obtenha o consentimento explícito do seu proprietário. Não use o modelo para usurpação de identidade, engano, fraude, assédio ou para contornar sistemas de autenticação por voz. Indique que a voz é sintética sempre que os ouvintes possam pensar que pertence a uma pessoa real.
Conclusão
O Navoiy TTS não promete resultados perfeitos para todas as frases. É uma base aberta que programadores e investigadores podem testar, melhorar e usar para criar novos produtos.
Explore o modelo no Hugging Face, ouça as demonstrações e partilhe a sua experiência.
