Zum Hauptinhalt springen

Kyutai TTS-Integration

Führe Kyutais TTS-Modelle lokal für hochwertige Text-zu-Sprache-Ausgabe aus. Diese Anleitung behandelt Pocket TTS (CPU) und TTS 1.6B (GPU) mit den in Libre WebUI enthaltenen OpenAI-kompatiblen Servern.

Übersicht​

Kyutai bietet zwei TTS-Modelle:

ModellParameterGerätAm besten geeignet für
Pocket TTS100MNur CPULaptops und ressourcenarme Umgebungen
TTS 1.6B1.6BGPU/MPS/CPUServer und hochwertige Synthese

Beide verwenden das CALM-Framework (Continuous Audio Language Models) und unterstützen das Klonen von Stimmen aus Audioaufnahmen.

Pocket TTS (CPU)​

Leichtgewichtiges TTS, das in Echtzeit auf der CPU läuft. Keine GPU erforderlich.

Anforderungen​

KomponenteMinimum
Python3.10 - 3.14
PyTorch2.5+
RAM4GB
Speicher500MB

Schnellstart​

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

Der Server läuft unter http://localhost:8200.

Testen​

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

Stimmen​

StimmeBeschreibung
AlbaWeiblich, klar und natürlich
MariusMännlich, warmer Ton
JavertMännlich, autoritär
JeanMännlich, sanft
FantineWeiblich, weich
CosetteWeiblich, jung
EponineWeiblich, ausdrucksstark
AzelmaWeiblich, hell

Leistung​

  • Etwa 6x Echtzeit auf einem MacBook Air M4
  • Etwa 200ms Latenz bis zum ersten Audioausschnitt
  • Verwendet nur 2 CPU-Kerne

TTS 1.6B (GPU)​

Hochwertiges TTS mit GPU-Beschleunigung. Automatische Gerätewahl: CUDA > MPS > CPU.

Anforderungen​

KomponenteMinimumEmpfohlen
Python3.10+3.12
GPU VRAM6GB8GB+
RAM8GB16GB+
Speicher4GB8GB

Plattformunterstützung​

PlattformBackendHinweise
NVIDIA GPUCUDABeste Leistung, unterstützt bfloat16
Apple SiliconMPSVerwendet float16
CPUPyTorchLangsamer, verwendet float32

Schnellstart​

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

Der Server läuft unter http://localhost:8201.

Geräteauswahl​

# 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

Testen​

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

Stimmen​

Alba MacKenna (CC BY 4.0):

StimmeStil
alba / alba-casualLockere Unterhaltung
alba-merchantHändlerfigur
alba-announcerAnsagerstil

Expresso (CC BY-NC 4.0 - nicht kommerziell):

StimmeEmotion
expresso-happyFröhlich
expresso-sadTraurig
expresso-angryWütend

VCTK (CC BY 4.0):

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

Stimmenklonen​

Beide Server unterstützen das Klonen aus Audiodateien.

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​

Übergib einen beliebigen HuggingFace-Stimmenpfad als Parameter 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-Referenz​

Spracherzeugung​

Endpunkt: POST /v1/audio/speech

{
"model": "kyutai-tts",
"input": "Text to convert to speech",
"voice": "alba",
"response_format": "wav",
"stream": false
}
ParameterTypStandardBeschreibung
modelstringverschiedenkyutai-tts oder kyutai-tts-1.6b
inputstringerforderlichZu synthetisierender Text (maximal 10,000 Zeichen)
voicestringalbaStimmenname oder HuggingFace-Pfad
response_formatstringwavAudioformat (nur wav unterstützt)
streambooleanfalseStreaming aktivieren (nur Pocket TTS)
cfg_coeffloat2.0Klassifikatorfreie Führung (nur 1.6B)

Antwort: Audiodatei (audio/wav)

OpenAI-Stimmenaliase​

Zur Kompatibilität mit OpenAI-TTS-Clients:

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

Stimmen auflisten​

Endpunkt: GET /v1/voices

Zustandsprüfung​

Endpunkt: GET /health


Plugin-Konfiguration​

Pocket TTS​

Aktiviere es unter Einstellungen > Plugins > Kyutai TTS

Plugin-Datei: 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​

Aktiviere es unter Einstellungen > Plugins > Kyutai TTS 1.6B

Plugin-Datei: 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
}
}
}
}

Netzwerkzugriff​

Für den Zugriff von anderen Geräten:

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

Aktualisiere den Plugin-Endpunkt entsprechend:

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

Fehlerbehebung​

Modelldownload schlägt fehl​

Modelle werden beim ersten Start von HuggingFace geladen:

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

CUDA-Speicher erschöpft​

Für TTS 1.6B bei begrenztem VRAM:

  1. Schließe andere GPU-Anwendungen.
  2. Versuche cfg_coef=1.5 für geringeren Speicherbedarf.
  3. Verwende Pocket TTS auf der CPU.

Probleme mit der Audioqualität​

  • Robotischer Klang: Probiere eine andere Stimme.
  • Abgeschnittenes Audio: Der Text könnte zu lang sein; der Server teilt automatisch.
  • Falsche Aussprache: Das Modell ist für Englisch und Französisch optimiert.

MPS-Probleme (Apple Silicon)​

RuntimeError: MPS backend error

Das 1.6B-Modell verwendet float16 auf MPS. Erzwinge bei Problemen die CPU:

python server.py --device cpu

Vergleich mit Qwen3-TTS​

FunktionKyutai PocketKyutai 1.6BQwen3-TTS
Parameter100M1.6B0.6B-1.7B
GPU erforderlichNeinOptionalJa
SprachenEnglischEN/FR10 languages
StimmenklonenJaJaJa
StimmendesignNeinNeinJa
Port820082018100

Wähle Kyutai für englischzentrierte Anwendungsfälle mit einfacher Einrichtung. Wähle Qwen3-TTS für Mehrsprachigkeit und Stimmendesign.


Ressourcen​