Lewati ke konten utama

Integrasi Kyutai TTS

Jalankan model TTS Kyutai secara lokal untuk teks-ke-ucapan berkualitas tinggi. Panduan ini mencakup Pocket TTS (CPU) dan TTS 1.6B (GPU) dengan server kompatibel OpenAI yang disertakan dalam Libre WebUI.

Ikhtisar​

Kyutai menawarkan dua model TTS:

ModelParameterPerangkatPaling Sesuai Untuk
Pocket TTS100MHanya CPULaptop, lingkungan minim sumber daya
TTS 1.6B1.6BGPU/MPS/CPUServer, sintesis berkualitas tinggi

Keduanya menggunakan kerangka CALM (Continuous Audio Language Models) dan mendukung kloning suara dari sampel audio.

Pocket TTS (CPU)​

TTS ringan yang berjalan secara waktu nyata pada CPU. Tidak memerlukan GPU.

Persyaratan​

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

Mulai Cepat​

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 berjalan di http://localhost:8200.

Menguji​

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

Suara​

SuaraDeskripsi
AlbaPerempuan, jernih dan alami
MariusLaki-laki, nada hangat
JavertLaki-laki, berwibawa
JeanLaki-laki, lembut
FantinePerempuan, lembut
CosettePerempuan, muda
EponinePerempuan, ekspresif
AzelmaPerempuan, cerah

Performa​

  • ~6x waktu nyata pada MacBook Air M4
  • Latensi ~200ms untuk potongan audio pertama
  • Hanya menggunakan 2 inti CPU

TTS 1.6B (GPU)​

TTS berkualitas tinggi dengan akselerasi GPU. Pemilihan perangkat otomatis: CUDA > MPS > CPU.

Persyaratan​

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

Dukungan Platform​

PlatformBackendCatatan
NVIDIA GPUCUDAPerforma terbaik, dukungan bfloat16
Apple SiliconMPSMenggunakan float16
CPUPyTorchLebih lambat, float32

Mulai Cepat​

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 berjalan di http://localhost:8201.

Pemilihan Perangkat​

# 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

Menguji​

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

Suara​

Alba MacKenna (CC BY 4.0):

SuaraGaya
alba / alba-casualPercakapan santai
alba-merchantKarakter pedagang
alba-announcerGaya penyiar

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

SuaraEmosi
expresso-happyGembira
expresso-sadSedih
expresso-angryMarah

VCTK (CC BY 4.0):

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

Kloning Suara​

Kedua server mendukung kloning suara dari berkas audio.

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​

Berikan jalur suara HuggingFace apa pun sebagai 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

Referensi API​

Pembuatan Ucapan​

Endpoint: POST /v1/audio/speech

{
"model": "kyutai-tts",
"input": "Text to convert to speech",
"voice": "alba",
"response_format": "wav",
"stream": false
}
ParameterTipeBawaanDeskripsi
modelstringbervariasikyutai-tts atau kyutai-tts-1.6b
inputstringwajibTeks untuk disintesis (maks. 10.000 karakter)
voicestringalbaNama suara atau jalur HuggingFace
response_formatstringwavFormat audio (hanya wav didukung)
streambooleanfalseMengaktifkan streaming (hanya Pocket TTS)
cfg_coeffloat2.0Panduan bebas classifier (hanya 1.6B)

Respons: Berkas audio (audio/wav)

Alias Suara OpenAI​

Untuk kompatibilitas dengan klien OpenAI TTS:

Suara OpenAIPocket TTSTTS 1.6B
alloyalbaalba
echomariusvctk-p225
fablecosetteexpresso-happy
onyxjavertvctk-p226
novafantinealba-announcer
shimmereponinealba-merchant

Daftar Suara​

Endpoint: GET /v1/voices

Pemeriksaan Kesehatan​

Endpoint: GET /health


Konfigurasi Plugin​

Pocket TTS​

Aktifkan di Pengaturan > Plugin > Kyutai TTS

Berkas plugin: 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​

Aktifkan di Pengaturan > Plugin > Kyutai TTS 1.6B

Berkas plugin: 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
}
}
}
}

Akses Jaringan​

Untuk mengakses dari mesin lain:

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

Perbarui endpoint plugin sesuai kebutuhan:

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

Pemecahan Masalah​

Pengunduhan Model Gagal​

Model diunduh dari HuggingFace saat pertama kali dijalankan:

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

Memori CUDA Habis​

Untuk TTS 1.6B dengan VRAM terbatas:

  1. Tutup aplikasi GPU lain
  2. Coba cfg_coef=1.5 agar penggunaan memori lebih rendah
  3. Gunakan Pocket TTS sebagai gantinya (berbasis CPU)

Masalah Kualitas Audio​

  • Suara seperti robot: Coba suara lain
  • Audio terpotong: Teks mungkin terlalu panjang; server memotongnya secara otomatis
  • Pelafalan salah: Model dioptimalkan untuk bahasa Inggris dan Prancis

Masalah MPS (Apple Silicon)​

RuntimeError: MPS backend error

Model 1.6B menggunakan float16 pada MPS. Jika masalah berlanjut, paksa penggunaan CPU:

python server.py --device cpu

Perbandingan dengan Qwen3-TTS​

FiturKyutai PocketKyutai 1.6BQwen3-TTS
Parameter100M1.6B0.6B-1.7B
Memerlukan GPUTidakOpsionalYa
BahasaInggrisEN/FR10 bahasa
Kloning SuaraYaYaYa
Desain SuaraTidakTidakYa
Port820082018100

Pilih Kyutai untuk kasus penggunaan berfokus bahasa Inggris dengan penyiapan lebih sederhana. Pilih Qwen3-TTS untuk dukungan multibahasa dan fitur desain suara.


Sumber Daya​