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

Kani-TTS-2 от nineninesix.ai (выпущен 15 февраля 2026 г.) — это открытая модель синтеза речи с 400 миллионами параметров, достигающая высококачественной генерации речи, используя всего **3 ГБ видеопамяти**. Построенная на архитектуре LFM2 от LiquidAI с NVIDIA NanoCodec, она рассматривает аудио как язык — генерируя естественно звучащую речь с нулевой настройкой голоса по короткому эталонному аудиоклипу. При размере менее половины конкурирующих моделей и с долей вычислительных затрат, 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       | 2GB       | ❌ Предустановленные голоса | EN, JP, CN               | Apache 2.0   |
| Zonos          | 400M      | 8GB       | ✅                          | Мульти                   | Apache 2.0   |
| ChatTTS        | 300M      | 4 ГБ      | ❌ Случайные сэмплы         | Китайский, английский    | AGPL 3.0     |
| Chatterbox     | 500M      | 6 ГБ      | ✅                          | Английский               | Apache 2.0   |
| XTTS (Coqui)   | 467M      | 6 ГБ      | ✅                          | Мульти                   | MPL 2.0      |
| F5-TTS         | 335M      | 4 ГБ      | ✅                          | Мульти                   | CC-BY-NC 4.0 |

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

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

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

## Установка

```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("Hello! Welcome to Kani TTS 2, the next generation of efficient text-to-speech.")

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

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

### 1. Базовый текст-в-речь

```python
from kani_tts import KaniTTS

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

# Генерация с пользовательскими параметрами
audio, text = model(
    "The quick brown fox jumps over the lazy dog. "
    "This sentence contains every letter of the English alphabet.",
    temperature=0.7,
    top_p=0.9,
    repetition_penalty=1.1
)

model.save_audio(audio, "pangram.wav")
print(f"Generated {len(audio) / 22000:.1f} seconds of audio")
```

### 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(
    "This is a demonstration of voice cloning with Kani TTS 2. "
    "The voice you hear should match the reference audio sample.",
    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"Generated chapter {i+1}")
```

### 4. Совместимый с OpenAI потоковый API

Для приложений в реальном времени используйте сервер, совместимый с 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
```

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

```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="Hello from the OpenAI-compatible Kani TTS server!"
)

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

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

1. **Это самая дешёвая модель для запуска** — При 3 ГБ VRAM Kani-TTS-2 запускается буквально на любом GPU-инстансе на Clore.ai. RTX 3060 по цене $0.15/день более чем достаточен для производственного TTS.
2. **Комбинируйте с языковой моделью** — Арендуйте один GPU-инстанс и запустите одновременно небольшой LLM (например, Mistral 3 8B) и Kani-TTS-2 для полноценного голосового ассистента. Они будут совместно использовать GPU с запасом ресурсов.
3. **Предварительно вычисляйте эмбеддинги говорящих** — Извлекайте эмбеддинги говорящих один раз и сохраняйте их. Это избегает загрузки модели WavLM-embedder при каждом запросе.
4. **Используйте сервер, совместимый с OpenAI** — Репозиторий `kani-tts-2-openai-server` предоставляет замену «под ключ» для TTS API 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 — недостаточно памяти`                 | Не должно происходить с моделью на 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) — Замена «под ключ» для TTS API OpenAI
* [Модель эмбеддинга говорящего](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/) — Освещение в сообществе
