> 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,4 млрд параметров, обученная на более чем 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 кГц** — качество звука студийного уровня
* **Управление эмоциями** — счастье, грусть, гнев, страх, удивление, отвращение через 8-мерный вектор
* **Скорость речи и высота тона** — независимое точное управление
* **Входные аудиопрефиксы** — позволяет шепот и другие трудно воспроизводимые особенности
* **Многоязычность** — английский, японский, китайский, французский, немецкий
* **Две архитектуры** — Transformer (качество) и Hybrid/Mamba (скорость, \~2× в реальном времени на RTX 4090)
* **Apache 2.0** — бесплатно для личного и коммерческого использования

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

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

**Рекомендация Clore.ai:** RTX 3090 ($0.07–0.21/ч) с комфортным запасом. RTX 4090 ($0.14–0.42/ч) для гибридной модели и самого быстрого вывода.

## Установка

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

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

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

# Проверить
python -c "from zonos.model import Zonos; print('Zonos готов')"
```

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

```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="Привет из Clore.ai! Это демонстрация клонирования голоса.",
    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"Сохранен output.wav с частотой {model.autoencoder.sampling_rate} Гц")
```

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

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

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 = "Не могу поверить, что только что произошло сегодня!"

emotions = {
    "счастливый":   [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
    "грустный":     [0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
    "злой":   [0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0],
    "испуганный": [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0],
    "нейтральный": [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="Не торопитесь. Совсем некуда спешить.",
    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="Поторопитесь! Нам нужно идти прямо сейчас!",
    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.11.0-cuda12.8-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 out of memory`                     | Используйте модель Transformer (меньше 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
