> 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/kani-tts.md).

# Клонирование голоса Kani-TTS-2

Kani-TTS-2 от nineninesix.ai (выпущен 15 февраля 2026 года) — это модель преобразования текста в речь с 400 млн параметров с открытым исходным кодом, которая достигает высококачественного синтеза речи, используя только **3 ГБ VRAM**. Построенная на архитектуре LFM2 от LiquidAI с NVIDIA NanoCodec, она рассматривает аудио как язык — генерируя естественно звучащую речь с zero-shot-клонированием голоса на основе короткого эталонного аудиоклипа. Будучи менее чем вдвое меньше конкурирующих моделей и требуя лишь доли вычислительных ресурсов, Kani-TTS-2 идеально подходит для диалогового ИИ в реальном времени, генерации аудиокниг и клонирования голоса на бюджетном железе.

**HuggingFace:** [nineninesix/kani-tts-2-en](https://huggingface.co/nineninesix/kani-tts-2-en) **GitHub:** [nineninesix-ai/kani-tts-2](https://github.com/nineninesix-ai/kani-tts-2) **PyPI:** [kani-tts-2](https://pypi.org/project/kani-tts-2/) **Лицензия:** Apache 2.0

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

* **400M параметров, 3 ГБ VRAM** — работает практически на любом современном GPU, включая RTX 3060
* **Клонирование голоса без обучения** — клонируйте любой голос по 3–30-секундному эталонному аудиосэмплу
* **Эмбеддинги говорящего** — 128-мерные представления говорящего на основе WavLM для точного управления голосом
* **До 40 секунд непрерывного аудио** — подходит для более длинных фрагментов и диалога
* **В реальном времени или быстрее** — RTF \~0.2 на RTX 5080, в реальном времени даже на бюджетных GPU
* **Apache 2.0** — полностью открыт для личного и коммерческого использования
* **Фреймворк для предварительного обучения включён** — обучайте собственную TTS-модель с нуля на любом языке

## Сравнение с другими TTS-моделями

| Модель         | Параметры | Мин. VRAM | Клонирование голоса        | Язык                     | Лицензия     |
| -------------- | --------- | --------- | -------------------------- | ------------------------ | ------------ |
| **Kani-TTS-2** | 400M      | 3GB       | ✅ Без примеров             | Английский (расширяемый) | Apache 2.0   |
| Kokoro         | 82M       | 2 ГБ      | ❌ Предустановленные голоса | EN, JP, CN               | Apache 2.0   |
| Zonos          | 400M      | 8 ГБ      | ✅                          | Мульти-GPU               | Apache 2.0   |
| ChatTTS        | 300M      | 4 ГБ      | ❌ Случайные сиды           | Китайский, английский    | AGPL 3.0     |
| Chatterbox     | 500M      | 6 ГБ      | ✅                          | Английский               | Apache 2.0   |
| XTTS (Coqui)   | 467M      | 6 ГБ      | ✅                          | Мульти-GPU               | MPL 2.0      |
| F5-TTS         | 335 млн   | 4 ГБ      | ✅                          | Мульти-GPU               | CC-BY-NC 4.0 |

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

{% hint style="warning" %}
**Многопроцессорные конфигурации с GPU класса 80GB не представлены на маркетплейсе Clore.ai.** Самые крупные доступные сейчас машины — это 4× RTX PRO 6000 Blackwell (по 96GB, всего 380GB) и 8–11× RTX 5090 (по 32GB). Ёмкость A100 / H200 / B200 продаётся как [голое железо](https://clore.ai/bare-metal) по запросу. Проверьте [Цены и доступность GPU](/guides/guides_v2-ru/nachalo-raboty/pricing.md) перед выбором размера развёртывания.
{% endhint %}

| Компонент | Минимум           | Рекомендуется      |
| --------- | ----------------- | ------------------ |
| GPU       | Любая с 3 ГБ VRAM | RTX 3060 или лучше |
| VRAM      | 3GB               | 6 ГБ               |
| ОЗУ       | 8 ГБ              | 16GB               |
| Диск      | 2 ГБ              | 5 ГБ               |
| Python    | 3.9+              | 3.11+              |
| CUDA      | 12.8+             | 12.8+              |

**Рекомендация Clore.ai:** RTX 3060 ($0.03–0.07/час) более чем достаточно. Даже самые дешёвые GPU-инстансы на Clore.ai с комфортом запустят Kani-TTS-2. Для пакетной обработки (аудиокниги, датасеты) RTX 4090 ($0.14–0.42/час) обеспечивает отличную производительность.

## Установка

```bash
# Установите пакет
pip install kani-tts-2

# ВАЖНО: установите совместимую версию transformers (требуется для архитектуры LFM2)
pip install -U "transformers==4.56.0"

# Необязательно: установите soundfile для сохранения аудио
pip install soundfile
```

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

Три строки для генерации речи:

```python
from kani_tts import KaniTTS

# Инициализируем с английской моделью
model = KaniTTS('nineninesix/kani-tts-2-en')

# Сгенерировать речь
audio, text = model("Здравствуйте! Добро пожаловать в Kani TTS 2, новое поколение эффективного преобразования текста в речь.")

# Сохранить в файл
model.save_audio(audio, "output.wav")
```

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

### 1. Базовое преобразование текста в речь

```python
from kani_tts import KaniTTS

model = KaniTTS('nineninesix/kani-tts-2-en')

# Генерация с пользовательскими параметрами
audio, text = model(
    "Быстрая бурая лиса перепрыгивает через ленивую собаку. "
    "Это предложение содержит каждую букву английского алфавита.",
    temperature=0.7,
    top_p=0.9,
    repetition_penalty=1.1
)

model.save_audio(audio, "pangram.wav")
print(f"Сгенерировано {len(audio) / 22000:.1f} секунд аудио")
```

### 2. Клонирование голоса

Клонируйте любой голос по короткому эталонному аудиосэмплу:

```python
from kani_tts import KaniTTS, SpeakerEmbedder

# Инициализация моделей
model = KaniTTS('nineninesix/kani-tts-2-en')
embedder = SpeakerEmbedder()

# Извлекаем эмбеддинг говорящего из эталонного аудио (рекомендуется 3–30 секунд)
speaker_embedding = embedder.embed_audio_file("reference_voice.wav")

# Генерируем речь клонированным голосом
audio, text = model(
    "Это демонстрация клонирования голоса с помощью Kani TTS 2. "
    "Голос, который вы слышите, должен совпадать с эталонным аудиосэмплом.",
    speaker_emb=speaker_embedding
)

model.save_audio(audio, "cloned_output.wav")
```

### 3. Пакетная генерация для аудиокниг

Эффективно генерируйте несколько глав:

```python
from kani_tts import KaniTTS, SpeakerEmbedder
import soundfile as sf

model = KaniTTS('nineninesix/kani-tts-2-en')
embedder = SpeakerEmbedder()

# Используйте голос рассказчика
narrator_emb = embedder.embed_audio_file("narrator_sample.wav")

chapters = [
    "Глава первая. Это был яркий холодный день в апреле, и часы били тринадцать.",
    "Глава вторая. В коридоре пахло варёной капустой и старыми половиками.",
    "Глава третья. Снаружи, даже сквозь закрытое оконное стекло, мир выглядел холодным.",
]

for i, chapter_text in enumerate(chapters):
    audio, _ = model(chapter_text, speaker_emb=narrator_emb)
    model.save_audio(audio, f"chapter_{i+1}.wav")
    print(f"Сгенерирована глава {i+1}")
```

### 4. Потоковый API, совместимый с OpenAI

Для приложений в реальном времени используйте сервер, совместимый с OpenAI:

```bash
# Клонируйте репозиторий
git clone https://github.com/nineninesix-ai/kani-tts-2-openai-server.git
cd kani-tts-2-openai-server

# Установить зависимости
pip install -r requirements.txt

# Запустите сервер
python server.py --model nineninesix/kani-tts-2-en --host 0.0.0.0 --port 8080
```

Затем используйте его с любым клиентом OpenAI TTS:

```python
from openai import OpenAI

client = OpenAI(base_url="http://localhost:8080/v1", api_key="not-needed")

response = client.audio.speech.create(
    model="kani-tts-2-en",
    voice="default",
    input="Здравствуйте из совместимого с OpenAI сервера Kani TTS!"
)

response.stream_to_file("streamed_output.wav")
```

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

1. **Это самая дешёвая модель для запуска** — При 3 ГБ видеопамяти Kani-TTS-2 работает буквально на любом GPU-инстансе на Clore.ai. RTX 3060 за $0.03–0.07/час более чем достаточно для TTS в продакшене.
2. **Сочетайте с языковой моделью** — Арендуйте один GPU-инстанс и запускайте одновременно небольшую LLM (например, Mistral 3 8B) и Kani-TTS-2 для полноценного голосового помощника. Им хватит ресурсов GPU с запасом.
3. **Предварительно вычисляйте эмбеддинги говорящего** — Один раз извлеките эмбеддинги говорящего и сохраните их. Это избавит от загрузки модели WavLM embedder при каждом запросе.
4. **Используйте сервер, совместимый с OpenAI** —  `kani-tts-2-openai-server` предоставляет замену API TTS OpenAI «из коробки», что облегчает интеграцию с существующими приложениями.
5. **Обучайте на пользовательских языках** — Kani-TTS-2 включает полный фреймворк предварительного обучения ([kani-tts-2-pretrain](https://github.com/nineninesix-ai/kani-tts-2-pretrain)). Донастройте модель на собственном языковом датасете — это занимает всего 8× H100 примерно на 6 часов.

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

| Проблема                                     | Решение                                                                                                            |
| -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| `ImportError: не удается импортировать LFM2` | Установите правильную версию transformers: `pip install -U "transformers==4.56.0"`                                 |
| Качество звука плохое / роботизированное     | Увеличьте `temperature` до 0.8–0.9; убедитесь, что эталонное аудио для клонирования чистое (без фонового шума)     |
| Клонирование голоса не похоже на эталон      | Используйте 5–15 секунд чистого аудио одного говорящего. Избегайте музыки или фонового шума в эталоне              |
| `CUDA out of memory`                         | Этого не должно происходить с моделью на 3 ГБ — проверьте, используют ли другие процессы память GPU (`nvidia-smi`) |
| Аудио обрывается на середине предложения     | Kani-TTS-2 поддерживает примерно до 40 секунд. Разбейте более длинные тексты на предложения и соедините результаты |
| Медленно на CPU                              | Настоятельно рекомендуется инференс на GPU. Даже базовый GPU в 10–50 раз быстрее CPU                               |

## Дополнительное чтение

* [GitHub — kani-tts-2](https://github.com/nineninesix-ai/kani-tts-2) — пакет PyPI, документация по использованию, продвинутые примеры
* [HuggingFace — kani-tts-2-en](https://huggingface.co/nineninesix/kani-tts-2-en) — веса английской модели
* [Фреймворк предварительного обучения](https://github.com/nineninesix-ai/kani-tts-2-pretrain) — Обучайте собственную TTS-модель с нуля
* [Сервер, совместимый с OpenAI](https://github.com/nineninesix-ai/kani-tts-2-openai-server) — Замена API OpenAI TTS «из коробки»
* [Модель эмбеддингов говорящего](https://huggingface.co/nineninesix/speaker-emb-tbr) — эмбеддер голоса на основе WavLM
* [Обзор MarkTechPost](https://www.marktechpost.com/2026/02/15/meet-kani-tts-2-a-400m-param-open-source-text-to-speech-model-that-runs-in-3gb-vram-with-voice-cloning-support/) — освещение со стороны сообщества


---

# 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/kani-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.
