> For the complete documentation index, see [llms.txt](https://docs.clore.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.clore.ai/guides/guides_v2-ru/audio-i-golos/zonos-tts.md).

# Клонирование голоса Zonos TTS

Zonos от [Zyphra](https://www.zyphra.com/) — это 0.4B-параметрическая модель текст-в-речь с открытыми весами, обученная на более чем 200 тыс. часов многоязычной речи. Она выполняет нулевое клонирование голоса по всего 2–30 секундам эталонного аудио и предоставляет тонкую настройку эмоций, скорости речи, вариации тона и качества аудио. Выходной звук — высококачественное аудио 44 кГц. Доступны два варианта модели: Transformer (лучшее качество) и Hybrid/Mamba (быстрее при инференсе).

**GitHub:** [Zyphra/Zonos](https://github.com/Zyphra/Zonos) **HuggingFace:** [Zyphra/Zonos-v0.1-transformer](https://huggingface.co/Zyphra/Zonos-v0.1-transformer) **Лицензия:** Apache 2.0

## Ключевые особенности

* **Клонирование голоса по 2–30 секундам** — тонкой дообучения не требуется
* **Выход 44 кГц высокого качества** — студийное качество звука
* **Управление эмоциями** — радость, печаль, гнев, страх, удивление, отвращение через 8D-вектор
* **Скорость речи и тон** — независимый тонконастраиваемый контроль
* **Входные аудио-префиксы** — позволяет имитировать шёпот и другие трудноклонируемые поведения
* **Мультиязычность** — английский, японский, китайский, французский, немецкий
* **Две архитектуры** — Transformer (качество) и Hybrid/Mamba (скорость, \~2× реального времени на RTX 4090)
* **Apache 2.0** — бесплатно для личного и коммерческого использования

## Требования

| Компонент | Минимум            | Рекомендуется  |
| --------- | ------------------ | -------------- |
| GPU       | RTX 3080 10 ГБ     | RTX 4090 24 ГБ |
| VRAM      | 6 ГБ (Transformer) | 10 ГБ+         |
| ОЗУ       | 16 ГБ              | 32 ГБ          |
| Диск      | 10 ГБ              | 20 ГБ          |
| Python    | 3.10+              | 3.11           |
| CUDA      | 11.8+              | 12.4           |
| Система   | espeak-ng          | —              |

**Рекомендация Clore.ai:** RTX 3090 (~~$0.30–1.00/день) для комфортного запаса. RTX 4090 (~~$0.50–2.00/день) для модели Hybrid и максимально быстрого инференса.

## Установка

```bash
# Установите системную зависимость
apt-get install -y espeak-ng

# Клонировать и установить
git clone https://github.com/Zyphra/Zonos.git
cd Zonos
pip install -e .

# Для Hybrid-модели (требуется GPU Ampere+ — т.е. серия RTX 3000 или новее)
pip install -e ".[compile]"

# Проверка
python -c "from zonos.model import Zonos; print('Zonos ready')"
```

## Быстрый старт

```python
import torch
import torchaudio
from zonos.model import Zonos
from zonos.conditioning import make_cond_dict

# Загрузить модель (веса скачиваются при первом запуске)
model = Zonos.from_pretrained("Zyphra/Zonos-v0.1-transformer", device="cuda")

# Загрузите эталонное аудио для клонирования голоса
wav, sr = torchaudio.load("reference_speaker.wav")
speaker = model.make_speaker_embedding(wav, sr)

# Построить кондиционирование
cond_dict = make_cond_dict(
    text="Hello from Clore.ai! This is a voice cloning demonstration.",
    speaker=speaker,
    language="en-us",
)
conditioning = model.prepare_conditioning(cond_dict)

# Генерация
torch.manual_seed(42)
codes = model.generate(conditioning)
wavs = model.autoencoder.decode(codes).cpu()

torchaudio.save("output.wav", wavs[0], model.autoencoder.sampling_rate)
print(f"Saved output.wav at {model.autoencoder.sampling_rate} Hz")
```

## Примеры использования

### Управление эмоциями

Zonos принимает 8-мерный вектор эмоций: `[радость, печаль, отвращение, страх, удивление, гнев, другое, нейтральный]`.

```python
import torch
import torchaudio
from zonos.model import Zonos
from zonos.conditioning import make_cond_dict

model = Zonos.from_pretrained("Zyphra/Zonos-v0.1-transformer", device="cuda")

wav, sr = torchaudio.load("speaker_ref.wav")
speaker = model.make_speaker_embedding(wav, sr)

text = "I can't believe what just happened today!"

emotions = {
    "happy":   [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
    "sad":     [0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
    "angry":   [0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0],
    "fearful": [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0],
    "neutral": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0],
}

for name, emo_vec in emotions.items():
    cond_dict = make_cond_dict(
        text=text,
        speaker=speaker,
        language="en-us",
        emotion=torch.tensor(emo_vec).unsqueeze(0),
    )
    conditioning = model.prepare_conditioning(cond_dict)
    codes = model.generate(conditioning)
    audio = model.autoencoder.decode(codes).cpu()
    torchaudio.save(f"emotion_{name}.wav", audio[0], model.autoencoder.sampling_rate)
    print(f"Создано: {name}")
```

### Управление скоростью речи и тоном

```python
import torch
import torchaudio
from zonos.model import Zonos
from zonos.conditioning import make_cond_dict

model = Zonos.from_pretrained("Zyphra/Zonos-v0.1-transformer", device="cuda")

wav, sr = torchaudio.load("speaker_ref.wav")
speaker = model.make_speaker_embedding(wav, sr)

# Медленно и спокойно
cond_slow = make_cond_dict(
    text="Take your time. There is no rush at all.",
    speaker=speaker,
    language="en-us",
    speaking_rate=torch.tensor([8.0]),   # меньше = медленнее
    pitch_std=torch.tensor([20.0]),      # меньше = более монотонно
)
codes = model.generate(model.prepare_conditioning(cond_slow))
audio = model.autoencoder.decode(codes).cpu()
torchaudio.save("slow_calm.wav", audio[0], model.autoencoder.sampling_rate)

# Быстро и энергично
cond_fast = make_cond_dict(
    text="Hurry up! We need to go right now!",
    speaker=speaker,
    language="en-us",
    speaking_rate=torch.tensor([22.0]),  # больше = быстрее
    pitch_std=torch.tensor([80.0]),      # больше = более выразительно
)
codes = model.generate(model.prepare_conditioning(cond_fast))
audio = model.autoencoder.decode(codes).cpu()
torchaudio.save("fast_energetic.wav", audio[0], model.autoencoder.sampling_rate)
```

### Веб-интерфейс Gradio

```bash
cd Zonos
python gradio_interface.py
# Или с uv:
# uv run gradio_interface.py
```

Открыть порт `7860/http` в вашем заказе Clore.ai и открыть `http_pub` URL для доступа к интерфейсу.

## Советы для пользователей Clore.ai

* **Выбор модели** — Transformer для лучшего качества, Hybrid для примерно в 2× более быстрого инференса (требуется GPU серии RTX 3000+)
* **Эталонное аудио** — 10–30 секунд чистой речи дают лучшие результаты; более короткие клипы (2–5 с) работают, но с меньшей точностью
* **Настройка Docker** — используйте `pytorch/pytorch:2.5.1-cuda12.4-cudnn9-runtime`, добавьте `apt-get install -y espeak-ng` в автозагрузку
* **Проброс портов** — откройте `7860/http` для интерфейса Gradio, `8000/http` для сервера API
* **Контроль сидирования (seed)** — установите `torch.manual_seed()` перед генерацией для воспроизводимого результата
* **Параметр качества аудио** — экспериментируйте с полем `audio_quality` в conditioning для более чистого вывода

## Устранение неполадок

| Проблема                               | Решение                                                                                                   |
| -------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| `espeak-ng не найден`                  | Запустите `apt-get install -y espeak-ng` (требуется для фонемизации)                                      |
| `CUDA — недостаточно памяти`           | Используйте модель Transformer (меньше, чем Hybrid); уменьшите длину текста на вызов                      |
| Hybrid-модель не запускается           | Требуется GPU Ampere+ (серия RTX 3000 или новее) и `pip install -e ".[compile]"`                          |
| Клонированный голос звучит неправильно | Используйте более длинный эталонный фрагмент (15–30 с) с чёткой речью и минимальным фоновым шумом         |
| Медленная генерация                    | Нормально для Transformer (\~0.5× реального времени); Hybrid достигает \~2× реального времени на RTX 4090 |
| `ModuleNotFoundError: zonos`           | Убедитесь, что вы установили из исходников: `cd Zonos && pip install -e .`                                |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-ru/audio-i-golos/zonos-tts.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
