Перейти к основному содержимому

Интеграция Kyutai TTS

Запускайте модели Kyutai локально. Руководство охватывает Pocket TTS (CPU) и TTS 1.6B (GPU) с серверами, совместимыми с OpenAI.

Обзор

МодельПараметрыУстройствоЛучше всего для
Pocket TTS100MТолько CPUНоутбуки, малые ресурсы
TTS 1.6B1.6BGPU/MPS/CPUСерверы, высокое качество

Обе модели используют CALM (Continuous Audio Language Models) и клонируют голос из аудио.

Pocket TTS (CPU)

Работает в реальном времени на CPU без GPU.

Требования

КомпонентМинимум
Python3.10 - 3.14
PyTorch2.5+
RAM4GB
Диск500MB

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

cd examples/kyutai-tts-server

# Create virtual environment
python3 -m venv venv
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Start server
python server.py

Сервер: http://localhost:8200.

Test

curl http://localhost:8200/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{"model": "kyutai-tts", "input": "Hello, welcome to Libre WebUI!", "voice": "alba"}' \
--output speech.wav

Голоса

ГолосОписание
AlbaЖенский, чистый и естественный
MariusМужской, тёплый
JavertМужской, авторитетный
JeanМужской, мягкий
FantineЖенский, мягкий
CosetteЖенский, молодой
EponineЖенский, выразительный
AzelmaЖенский, светлый

Производительность

  • около 6x реального времени на MacBook Air M4
  • около 200ms до первого фрагмента
  • 2 ядра CPU

TTS 1.6B (GPU)

Автоматический выбор CUDA > MPS > CPU.

Требования

КомпонентМинимумРекомендуется
Python3.10+3.12
GPU VRAM6GB8GB+
RAM8GB16GB+
Диск4GB8GB

Платформы

ПлатформаBackendПримечания
NVIDIA GPUCUDAЛучшая производительность, bfloat16
Apple SiliconMPSfloat16
CPUPyTorchМедленно, float32

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

cd examples/kyutai-tts-1.6b-server

# Create virtual environment
python3 -m venv venv
source venv/bin/activate

# Install PyTorch with CUDA (for NVIDIA GPUs)
pip install torch --index-url https://download.pytorch.org/whl/cu121

# Install dependencies
pip install -r requirements.txt

# Start server (auto-detects GPU)
python server.py

Сервер: http://localhost:8201.

Выбор устройства

# Auto-detect (CUDA > MPS > CPU)
python server.py

# Force specific device
python server.py --device cuda
python server.py --device mps
python server.py --device cpu

Test

curl http://localhost:8201/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{"model": "kyutai-tts-1.6b", "input": "Hello from the GPU!", "voice": "alba"}' \
--output speech.wav

Голоса

Alba MacKenna (CC BY 4.0):

ГолосСтиль
alba / alba-casualСвободная речь
alba-merchantТорговец
alba-announcerДиктор

Expresso (CC BY-NC 4.0 — некоммерческая):

ГолосЭмоция
expresso-happyРадостный
expresso-sadГрустный
expresso-angryЗлой

VCTK (CC BY 4.0):

  • vctk-p225, vctk-p226, vctk-p227, vctk-p228

Клонирование голоса

Pocket TTS

# From local file
curl http://localhost:8200/v1/audio/voice-clone \
-F "input=Hello from a cloned voice" \
-F "reference_audio=@my_voice.wav" \
--output cloned.wav

# From HuggingFace URL
curl http://localhost:8200/v1/audio/voice-clone-url \
-H "Content-Type: application/json" \
-d '{
"input": "Hello world!",
"voice_url": "hf://kyutai/tts-voices/alba-mackenna/casual.wav"
}' \
--output speech.wav

TTS 1.6B

Передайте путь Hugging Face как voice:

curl http://localhost:8201/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{
"model": "kyutai-tts-1.6b",
"input": "Custom voice synthesis",
"voice": "hf://kyutai/tts-voices/vctk/p230.wav"
}' \
--output speech.wav

Справочник API

Генерация речи

Endpoint: POST /v1/audio/speech

{
"model": "kyutai-tts",
"input": "Text to convert to speech",
"voice": "alba",
"response_format": "wav",
"stream": false
}
ПараметрТипПо умолчаниюОписание
modelstringvarieskyutai-tts или kyutai-tts-1.6b
inputstringrequiredТекст, максимум 10 000
voicestringalbaИмя или путь Hugging Face
response_formatstringwavТолько wav
streambooleanfalseТолько Pocket
cfg_coeffloat2.0Только 1.6B

Ответ: audio/wav

Псевдонимы голосов OpenAI

OpenAIPocket1.6B
alloyalbaalba
echomariusvctk-p225
fablecosetteexpresso-happy
onyxjavertvctk-p226
novafantinealba-announcer
shimmereponinealba-merchant

Список голосов

GET /v1/voices

Проверка состояния

GET /health


Настройка плагина

Pocket TTS

Настройки > Плагины > Kyutai TTS, файл plugins/kyutai-tts.json

{
"id": "kyutai-tts",
"name": "Kyutai TTS",
"type": "tts",
"endpoint": "http://localhost:8200/v1/audio/speech",
"capabilities": {
"tts": {
"config": {
"voices": [
"Alba",
"Marius",
"Javert",
"Jean",
"Fantine",
"Cosette",
"Eponine",
"Azelma"
],
"default_voice": "Alba",
"supports_streaming": true,
"no_auth_required": true
}
}
}
}

TTS 1.6B

Настройки > Плагины > Kyutai TTS 1.6B, файл plugins/kyutai-tts-1.6b.json

{
"id": "kyutai-tts-1.6b",
"name": "Kyutai TTS 1.6B",
"type": "tts",
"endpoint": "http://localhost:8201/v1/audio/speech",
"capabilities": {
"tts": {
"config": {
"voices": [
"Alba",
"Alba-Casual",
"Alba-Merchant",
"Alba-Announcer",
"Expresso-Happy",
"Expresso-Sad",
"Expresso-Angry",
"VCTK-P225",
"VCTK-P226"
],
"default_voice": "Alba",
"supports_streaming": true,
"no_auth_required": true
}
}
}
}

Доступ по сети

# Start server on all interfaces
python server.py --host 0.0.0.0

# Access from another machine
curl http://192.168.1.100:8200/v1/audio/speech ...
{
"endpoint": "http://192.168.1.100:8200/v1/audio/speech"
}

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

Не удалось скачать модель

# Set token for gated models
export HF_TOKEN=hf_...

Память CUDA

Закройте другие приложения GPU, попробуйте cfg_coef=1.5 или используйте Pocket.

Качество аудио

При роботизированном звучании выберите другой голос; длинный текст делится; модель оптимизирована для английского и французского.

MPS

RuntimeError: MPS backend error
python server.py --device cpu

Сравнение с Qwen3-TTS

ВозможностьPocket1.6BQwen3-TTS
Параметры100M1.6B0.6B-1.7B
GPUНетНеобязательноДа
ЯзыкиАнглийскийEN/FR10 языков
КлонированиеДаДаДа
Проектирование голосаНетНетДа
Port820082018100

Выберите Kyutai для английского и простоты, а Qwen — для многих языков и проектирования голоса.


Ресурсы