Přeskočit na hlavní obsah

Integrace Kyutai TTS

Spusťte modely TTS Kyutai místně pro vysoce kvalitní převod textu na řeč. Příručka pokrývá Pocket TTS (CPU) i TTS 1.6B (GPU) se servery kompatibilními s OpenAI, které jsou součástí Libre WebUI.

Přehled

Kyutai nabízí dva modely TTS:

ModelParametryZařízeníNejvhodnější pro
Pocket TTS100MPouze CPUNotebooky, prostředí s málem prostředků
TTS 1.6B1.6BGPU/MPS/CPUServery, kvalitní syntéza

Oba používají framework CALM (Continuous Audio Language Models) a podporují klonování hlasu ze zvukových vzorků.

Pocket TTS (CPU)

Lehký TTS běžící v reálném čase na CPU. GPU není potřeba.

Požadavky

KomponentaMinimum
Python3.10 - 3.14
PyTorch2.5+
RAM4GB
Disk500MB

Rychlý start

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

Server běží na 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

Hlasy

HlasPopis
AlbaŽena, jasný a přirozený
MariusMuž, teplý tón
JavertMuž, autoritativní
JeanMuž, jemný
FantineŽena, měkký
CosetteŽena, mladý
EponineŽena, expresivní
AzelmaŽena, jasný

Výkon

  • Přibližně šestinásobek reálného času na MacBook Air M4
  • Latence asi 200 ms pro první zvukový úsek
  • Používá pouze 2 jádra CPU

TTS 1.6B (GPU)

Vysoce kvalitní TTS s akcelerací GPU. Automatický výběr zařízení: CUDA > MPS > CPU.

Requirements

KomponentaMinimumDoporučeno
Python3.10+3.12
GPU VRAM6GB8GB+
RAM8GB16GB+
Disk4GB8GB

Podpora platforem

PlatformaBackendPoznámky
NVIDIA GPUCUDANejlepší výkon, podpora bfloat16
Apple SiliconMPSPoužívá float16
CPUPyTorchPomalejší, float32

Quick Start

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

Server běží na http://localhost:8201.

Výběr zařízení

# 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 It

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

Hlasy

Alba MacKenna (CC BY 4.0):

HlasStyl
alba / alba-casualNeformální konverzace
alba-merchantPostava obchodníka
alba-announcerStyl hlasatele

Expresso (CC BY-NC 4.0 - non-commercial):

HlasEmoce
expresso-happyRadost
expresso-sadSmutek
expresso-angryHněv

VCTK (CC BY 4.0):

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

Klonování hlasu

Oba servery podporují klonování hlasu ze zvukových souborů.

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

Předejte libovolnou cestu hlasu HuggingFace jako parametr 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

Referenční příručka API

Speech Generation

Endpoint: POST /v1/audio/speech

{
"model": "kyutai-tts",
"input": "Text to convert to speech",
"voice": "alba",
"response_format": "wav",
"stream": false
}
ParametrTypVýchozíPopis
modelstringrůznékyutai-tts nebo kyutai-tts-1.6b
inputstringpovinnéText k syntéze (max. 10 000 znaků)
voicestringalbaNázev hlasu nebo cesta HuggingFace
response_formatstringwavFormát zvuku (podporuje se jen wav)
streambooleanfalseZapnout streamování (jen Pocket TTS)
cfg_coeffloat2.0Vedení bez klasifikátoru (jen 1.6B)

Odpověď: Zvukový soubor (audio/wav)

OpenAI Voice Aliases

Pro kompatibilitu s klienty OpenAI TTS:

OpenAI VoicePocket TTSTTS 1.6B
alloyalbaalba
echomariusvctk-p225
fablecosetteexpresso-happy
onyxjavertvctk-p226
novafantinealba-announcer
shimmereponinealba-merchant

List Voices

Endpoint: GET /v1/voices

Health Check

Endpoint: GET /health


Konfigurace pluginu

Pocket TTS

Zapněte v Nastavení > Pluginy > Kyutai TTS

Soubor pluginu: 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

Zapněte v Nastavení > Pluginy > Kyutai TTS 1.6B

Soubor pluginu: 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
}
}
}
}

Přístup k síti

Pro přístup z jiných počítačů:

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

Podle toho aktualizujte endpoint pluginu:

{
"endpoint": "http://192.168.1.100:8200/v1/audio/speech"
}

Řešení potíží

Model Download Fails

Modely se při prvním spuštění stahují z HuggingFace:

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

CUDA Out of Memory

Pro TTS 1.6B s omezenou VRAM:

  1. Zavřete jiné aplikace GPU
  2. Zkuste cfg_coef=1.5 pro menší spotřebu paměti
  3. Použijte Pocket TTS (CPU)

Audio Quality Issues

  • Robotický zvuk: Zkuste jiný hlas
  • Oříznutý zvuk: Text může být příliš dlouhý; server jej automaticky rozdělí
  • Špatná výslovnost: Model je optimalizovaný pro angličtinu a francouzštinu

MPS (Apple Silicon) Issues

RuntimeError: MPS backend error

Model 1.6B používá float16 na MPS. Pokud potíže trvají, vynuťte CPU:

python server.py --device cpu

Porovnání s Qwen3-TTS

FunkceKyutai PocketKyutai 1.6BQwen3-TTS
Parametry100M1.6B0.6B-1.7B
Vyžaduje GPUNeVolitelněAno
JazykyAngličtinaEN/FR10 jazyků
Klonování hlasuAnoAnoAno
Návrh hlasuNeNeAno
Port820082018100

Kyutai zvolte pro případy zaměřené na angličtinu s jednodušší konfigurací. Qwen3-TTS zvolte pro vícejazyčnou podporu a návrh hlasu.


Zdroje