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