Dziś postanowiliśmy udostępnić Navoiy TTS jako otwarte oprogramowanie. Wzięliśmy CosyVoice2-0.5B, umieściliśmy go na GPU i ugotowaliśmy z odpowiednią ilością uzbeckich składników audio. Powstał model syntezy mowy, który dobrze mówi po uzbecku.
Model zamienia uzbecki tekst w mowę neutralną lub ekspresyjną. Zawiera też narzędzie normalizujące liczby, daty, godziny, apostrofy i uzbecki tekst zapisany cyrylicą przed syntezą.
Nic nie jest doskonałe i ten model również ma ograniczenia. Wszystko zależy od składników, czyli danych. Więcej składników dobrej jakości daje lepszy rezultat.
Dlaczego udostępniliśmy model wszystkim?
Codzienna mowa to nie tylko proste słowa. Dlatego model przygotowano do:
- poprawnego odczytywania liczb, dat i godzin;
- poprawnej wymowy imion i nazw miejsc;
- rozumienia alfabetu łacińskiego i cyrylicy;
- mówienia z naturalnymi pauzami;
- obsługi różnych stylów mówienia;
- wymawiania rosyjskich i angielskich słów w zdaniu.
Staraliśmy się także uwzględnić inne sytuacje, z którymi możesz się spotkać, i rozwiązać związane z nimi trudne zadania.
Najłatwiej podziękować nam, udostępniając projekt znajomym. Ucieszymy się, jeśli model przyda się w Twoim projekcie.
Cieszymy się, że korzystasz z naszych modeli. Dziękujemy za używanie naszych modeli rozpoznawania i syntezy mowy.
Jak go używać?
Wykonaj te kroki, aby zainstalować, skonfigurować i uruchomić model. Punkt kontrolny nie działa samodzielnie: potrzebny jest również oryginalny kod CosyVoice i model bazowy CosyVoice2-0.5B.
1. Najpierw zainstaluj 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. Pobierz Navoiy TTS
git clone https://huggingface.co/aisha-org/navoiy-tts
pip install -r navoiy-tts/requirements.txtPobierz model bazowy CosyVoice2-0.5B w rewizji podanej w karcie modelu.
3. Wygeneruj mowę
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.wavSkrypt wymaga obliczeń CUDA i generuje audio o częstotliwości 24 kHz. Użyj --list-emotions, aby zobaczyć wszystkie dostępne emocje.
Emocje
Model obsługuje emocje calm, happy, sad, angry, nervous, surprised, whisper, warm, tired i sarcastic.
Ustawienia te nie gwarantują konkretnego wyniku. Głos zależy od tekstu, nagrania referencyjnego, punktu kontrolnego i ziarna losowego. Zalecamy sprawdzenie systemu na własnych tekstach przed wdrożeniem produkcyjnym.
Normalizacja
Liczby i daty mogą być trudne do wymówienia dla modelu syntezy mowy. Navoiy TTS udostępnia także moduł normalizacji:
from uztts.normalize import normalize
print(normalize('Bugun 16.07.2026, soat 14:30 da uchrashamiz.'))Konwertuje on cyrylicę na alfabet łaciński, ujednolica apostrofy i normalizuje typowe liczby, daty, godziny, liczebniki porządkowe i inne przypadki.
Ograniczenia
Model może błędnie wymawiać imiona, zapożyczenia, skróty i nietypowe liczby. Może też powtarzać, pomijać lub zmieniać słowa. Nie oceniliśmy jeszcze w pełni dialektów ani tekstów wielojęzycznych.
Przed sklonowaniem głosu uzyskaj wyraźną zgodę jego właściciela. Nie używaj modelu do podszywania się, wprowadzania w błąd, oszustw, nękania ani obchodzenia uwierzytelniania głosowego. Informuj, że głos jest syntetyczny, gdy słuchacze mogliby uznać go za głos prawdziwej osoby.
Podsumowanie
Navoiy TTS nie obiecuje idealnych wyników dla każdego zdania. To otwarta podstawa, którą programiści i badacze mogą testować, ulepszać i wykorzystywać do tworzenia nowych produktów.
Poznaj model na Hugging Face, posłuchaj demonstracji i podziel się doświadczeniami.
