Hoppa till huvudinnehåll

Kyutai TTS-integrering

Kör Kyutais TTS-modeller lokalt för högkvalitativ text-till-tal. Guiden omfattar både Pocket TTS (CPU) och TTS 1.6B (GPU) med OpenAI-kompatibla servrar som ingår i Libre WebUI.

Översikt

Kyutai erbjuder två TTS-modeller:

ModellParametrarEnhetPassar bäst för
Pocket TTS100MEndast CPUBärbara datorer, resurssnåla miljöer
TTS 1.6B1.6BGPU/MPS/CPUServrar, högkvalitativ syntes

Båda använder ramverket CALM (Continuous Audio Language Models) och stöder röstkloning från ljudprover.

Pocket TTS (CPU)

Lätt TTS som kör i realtid på CPU. Ingen GPU krävs.

Krav

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

Snabbstart

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

Servern körs på http://localhost:8200.

Testa

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

Röster

RöstBeskrivning
AlbaKvinna, tydlig och naturlig
MariusMan, varm ton
JavertMan, auktoritativ
JeanMan, mild
FantineKvinna, mjuk
CosetteKvinna, ung
EponineKvinna, uttrycksfull
AzelmaKvinna, ljus

Prestanda

  • Cirka 6 gånger realtid på MacBook Air M4
  • Cirka 200 ms latens för första ljudsegmentet
  • Använder endast 2 CPU-kärnor

TTS 1.6B (GPU)

Högkvalitativ TTS med GPU-acceleration. Automatiskt enhetsval: CUDA > MPS > CPU.

Requirements

KomponentMinimumRekommenderat
Python3.10+3.12
GPU VRAM6GB8GB+
RAM8GB16GB+
Disk4GB8GB

Plattformsstöd

PlattformBackendAnmärkningar
NVIDIA GPUCUDABäst prestanda, stöd för bfloat16
Apple SiliconMPSAnvänder float16
CPUPyTorchLångsammare, float32

Snabbstart

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

Servern körs på http://localhost:8201.

Enhetsval

# 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

Voices

Alba MacKenna (CC BY 4.0):

RöstStil
alba / alba-casualLedigt samtal
alba-merchantHandlarkaraktär
alba-announcerPresentatörsstil

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

RöstKänsla
expresso-happyGlad
expresso-sadLedsen
expresso-angryArg

VCTK (CC BY 4.0):

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

Röstkloning

Båda servrarna stöder röstkloning från ljudfiler.

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

Skicka valfri HuggingFace-röstsökväg som parametern 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-referens

Talgenerering

Endpoint: POST /v1/audio/speech

{
"model": "kyutai-tts",
"input": "Text to convert to speech",
"voice": "alba",
"response_format": "wav",
"stream": false
}
ParameterTypStandardBeskrivning
modelstringvarierarkyutai-tts eller kyutai-tts-1.6b
inputstringkrävsText att syntetisera (högst 10 000 tecken)
voicestringalbaRöstnamn eller HuggingFace-sökväg
response_formatstringwavLjudformat (endast wav stöds)
streambooleanfalseAktivera strömning (endast Pocket TTS)
cfg_coeffloat2.0Klassificerarfri vägledning (endast 1.6B)

Svar: Ljudfil (audio/wav)

OpenAI-röstalias

För kompatibilitet med OpenAI TTS-klienter:

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

Lista röster

Endpoint: GET /v1/voices

Hälsokontroll

Endpoint: GET /health


Plugin-konfiguration

Pocket TTS

Aktivera under Inställningar > Plugin > Kyutai TTS

Pluginfil: 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

Aktivera under Inställningar > Plugin > Kyutai TTS 1.6B

Pluginfil: 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
}
}
}
}

Nätverksåtkomst

För åtkomst från andra datorer:

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

Uppdatera plugin-endpointen därefter:

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

Felsökning

Modellhämtning misslyckas

Modeller hämtas från HuggingFace vid första körningen:

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

CUDA-minnet är slut

För TTS 1.6B med begränsat VRAM:

  1. Stäng andra GPU-program
  2. Prova cfg_coef=1.5 för lägre minnesanvändning
  3. Använd Pocket TTS i stället (CPU-baserat)

Problem med ljudkvalitet

  • Robotliknande ljud: Prova en annan röst
  • Avklippt ljud: Texten kan vara för lång; servern segmenterar automatiskt
  • Fel uttal: Modellen är optimerad för engelska och franska

Problem med MPS (Apple Silicon)

RuntimeError: MPS backend error

1.6B-modellen använder float16 på MPS. Tvinga CPU om problemen kvarstår:

python server.py --device cpu

Jämförelse med Qwen3-TTS

FunktionKyutai PocketKyutai 1.6BQwen3-TTS
Parametrar100M1.6B0.6B-1.7B
GPU krävsNejValfrittJa
SpråkEngelskaEN/FR10 språk
RöstkloningJaJaJa
RöstdesignNejNejJa
Port820082018100

Välj Kyutai för engelskinriktade användningsfall med enklare konfiguration. Välj Qwen3-TTS för flerspråkigt stöd och röstdesign.


Resurser