Перейти до основного вмісту

Інтеграція Kyutai TTS

Запускайте моделі TTS Kyutai локально для якісного синтезу мовлення. Посібник охоплює Pocket TTS (CPU) і TTS 1.6B (GPU) із сумісними з OpenAI серверами, що входять до Libre WebUI.

Огляд

Kyutai пропонує дві моделі:

МодельПараметриПристрійНайкраще застосування
Pocket TTS100MЛише CPUНоутбуки й середовища з малими ресурсами
TTS 1.6B1.6BGPU/MPS/CPUСервери та якісний синтез

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

Pocket TTS (CPU)

Легка TTS, що працює в реальному часі на 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.

Перевірка

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)

Якісний TTS із прискоренням GPU. Автоматичний вибір: CUDA > MPS > CPU.

Вимоги

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

Підтримка платформ

ПлатформаСерверна частинаПримітки
NVIDIA GPUCUDAНайкраща швидкодія, bfloat16
Apple SiliconMPSВикористовує float16
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

Перевірка

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

Передайте будь-який шлях голосу HuggingFace як параметр 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

Генерування мовлення

Кінцева точка: POST /v1/audio/speech

{
"model": "kyutai-tts",
"input": "Text to convert to speech",
"voice": "alba",
"response_format": "wav",
"stream": false
}
ПараметрТипТиповоОпис
modelstringзалежитьkyutai-tts або kyutai-tts-1.6b
inputstringобов’язковийТекст до 10,000 символів
voicestringalbaНазва голосу або шлях HuggingFace
response_formatstringwavФормат аудіо, підтримується лише wav
streambooleanfalseПотокове передавання лише Pocket TTS
cfg_coeffloat2.0Наведення без класифікатора лише 1.6B

Відповідь: аудіофайл (audio/wav)

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

Для сумісності з клієнтами OpenAI TTS:

Голос OpenAIPocket TTSTTS 1.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"
}

Усунення неполадок

Не завантажується модель

Під час першого запуску моделі завантажуються з HuggingFace:

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

Не вистачає пам’яті CUDA

Для TTS 1.6B з обмеженою VRAM:

  1. Закрийте інші застосунки GPU
  2. Спробуйте cfg_coef=1.5 для меншого використання пам’яті
  3. Використайте Pocket TTS на CPU

Проблеми якості аудіо

  • Роботизований звук: спробуйте інший голос
  • Обрізаний звук: текст може бути задовгим, сервер автоматично ділить його
  • Неправильна вимова: модель оптимізовано для англійської та французької

Проблеми MPS (Apple Silicon)

RuntimeError: MPS backend error

Модель 1.6B використовує float16 у MPS. Якщо проблема не зникає, примусово виберіть CPU:

python server.py --device cpu

Порівняння з Qwen3-TTS

ФункціяKyutai PocketKyutai 1.6BQwen3-TTS
Параметри100M1.6B0.6B-1.7B
Потрібен GPUНіНеобов’язковоТак
МовиАнглійськаEN/FR10 мов
Клонування голосуТакТакТак
Дизайн голосуНіНіТак
Порт820082018100

Виберіть Kyutai для англомовних задач із простішим налаштуванням. Qwen3-TTS краще підходить для багатомовності та дизайну голосу.


Ресурси