---
language:
- uz
license: apache-2.0
base_model: FunAudioLLM/CosyVoice2-0.5B
pipeline_tag: text-to-speech
tags:
- cosyvoice2
- uzbek
- speech-synthesis
- expressive-tts
- voice-cloning
---
# Navoiy TTS
Navoiy TTS is an open Uzbek text-to-speech checkpoint built on [CosyVoice2-0.5B](https://huggingface.co/FunAudioLLM/CosyVoice2-0.5B). It generates highly natural, expressive speech that captures the specific phonetic nuances of the Uzbek language.
**Note:** This is an LLM component checkpoint, not a standalone model. Inference requires the upstream CosyVoice codebase and the base model.
## Model Overview & Results
Unlike standard TTS models that can sound robotic or struggle with regional phonemes, Navoiy TTS is specifically fine-tuned for emotional prosody and natural pacing in Uzbek.
* **Training Data:** Trained on a high-quality dataset comprising ~600 hours of neutral speech and an additional 40 hours of heavily expressive/emotional speech.
* **Capabilities:** Supports zero-shot voice cloning and instruction-conditioned emotion generation (e.g., whispering, shouting, varying tones).
* **Evaluation:** Exhibits strong zero-shot robustness, significantly reducing mispronunciations of common Uzbek vocabulary and numbers compared to the base multilingual models.
### Checkpoint Details
| File | Description |
| --- | --- |
| `emotion_600h_joint.pt` | Primary expressive checkpoint. Recommended for most use cases. |
## Quick Start
For reproducible inference, use the pinned revisions below.
### 1. Setup Upstream Environment
```bash
git clone --recursive [https://github.com/FunAudioLLM/CosyVoice.git](https://github.com/FunAudioLLM/CosyVoice.git)
cd CosyVoice
git checkout 074ca6dc9e80a2f424f1f74b48bdd7d3fea531cc
git submodule update --init --recursive
python3 -m venv .venv && source .venv/bin/activate
pip install --upgrade pip setuptools wheel
pip install -r requirements.txt
cd ..
```
### 2. Download Models
First, clone the Navoiy repository and install its specific requirements:
```bash
git clone [https://huggingface.co/aisha-org/navoiy-tts](https://huggingface.co/aisha-org/navoiy-tts)
pip install -r navoiy-tts/requirements.txt
```
Next, create a Python script (e.g., `download_base.py`) to fetch the exact base model checkpoint needed:
```python
# download_base.py
from huggingface_hub import snapshot_download
print("Downloading CosyVoice2-0.5B base model...")
snapshot_download(
repo_id="FunAudioLLM/CosyVoice2-0.5B",
revision="eec1ae6c79877dbd9379285cf8789c9e0879293d",
local_dir="CosyVoice/pretrained_models/CosyVoice2-0.5B"
)
print("Download complete.")
```
Run the script:
```bash
python download_base.py
```
### 3. Run Inference
Requires a CUDA-enabled GPU.
```bash
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
```
Supported Emotion Presets: `calm`, `happy`, `sad`, `angry`, `nervous`, `surprised`, `whisper`, `warm`, `tired`, `sarcastic`. (*Note: Output depends heavily on the reference voice and seed; treat these as style hints, not guaranteed classifications*).
### Text Normalization
The included `uztts.normalize` utility handles Cyrillic-to-Latin conversion, apostrophe canonicalization, and expansion of numbers/dates/units.
```python
from uztts.normalize import normalize
text = "Bugun 16.07.2026, soat 14:30 da uchrashamiz."
print(normalize(text))
```
### Demos
Generated using `emotion_600h_joint.pt` on an **NVIDIA A10-12Q**. Full generation configs, seeds, and RTF metrics are in `demo/manifest.json`.
**Calm**:
> Navoiy TTS o'zbekcha matnni tabiiy va ravon ovozga aylantiradi.
**Warm Agent**:
> Assalomu alaykum! Sizga qanday yordam bera olaman?
**Happy**:
> Ajoyib yangilik! Bugungi natijalarimiz kutilganidan ham yaxshi bo'ldi.
### Constraints & Responsible Use
- **Failure Modes**: Expect potential mispronunciations of highly specialized loanwords or complex mathematical formulas.
- **Ethics & Safety**: Voice cloning requires knowing, explicit consent from the speaker. Do not use this generated speech for safety-critical instructions, fraud, or impersonation. Clearly disclose synthetic speech to listeners.
### License
Apache License 2.0. Derived from [CosyVoice](https://github.com/FunAudioLLM/CosyVoice) and [CosyVoice2-0.5B](https://huggingface.co/FunAudioLLM/CosyVoice2-0.5B).