Μετάβαση στο κύριο περιεχόμενο

Ενσωμάτωση Kyutai TTS

Εκτελέστε τοπικά τα μοντέλα TTS της Kyutai για μετατροπή κειμένου σε ομιλία υψηλής ποιότητας. Αυτός ο οδηγός καλύπτει τόσο το Pocket TTS (CPU) όσο και το TTS 1.6B (GPU), με διακομιστές συμβατούς με OpenAI που περιλαμβάνονται στο Libre WebUI.

Επισκόπηση​

Η Kyutai προσφέρει δύο μοντέλα TTS:

ΜοντέλοΠαράμετροιΣυσκευήΙδανικό για
Pocket TTS100MΜόνο CPUΦορητούς υπολογιστές, περιβάλλοντα περιορισμένων πόρων
TTS 1.6B1.6BGPU/MPS/CPUΔιακομιστές, σύνθεση υψηλής ποιότητας

Και τα δύο χρησιμοποιούν το πλαίσιο CALM (Continuous Audio Language Models) και υποστηρίζουν κλωνοποίηση φωνής από δείγματα ήχου.

Pocket TTS (CPU)​

Ελαφρύ TTS που εκτελείται σε πραγματικό χρόνο σε CPU. Δεν απαιτείται GPU.

Απαιτήσεις​

ΣτοιχείοΕλάχιστο
Python3.10 - 3.14
PyTorch2.5+
RAM4GB
Disk500MB

Γρήγορη εκκίνηση​

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

Ο διακομιστής εκτελείται στο http://localhost:8200.

Δοκιμή​

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

Φωνές​

ΦωνήΠεριγραφή
AlbaΓυναικεία, καθαρή και φυσική
MariusΑνδρική, ζεστός τόνος
JavertΑνδρική, επιβλητική
JeanΑνδρική, ήπια
FantineΓυναικεία, απαλή
CosetteΓυναικεία, νεανική
EponineΓυναικεία, εκφραστική
AzelmaΓυναικεία, φωτεινή

Επιδόσεις​

  • ~6x ταχύτερα από τον πραγματικό χρόνο σε MacBook Air M4
  • ~200ms καθυστέρηση για το πρώτο τμήμα ήχου
  • Χρησιμοποιεί μόνο 2 πυρήνες CPU

TTS 1.6B (GPU)​

TTS υψηλής ποιότητας με επιτάχυνση GPU. Αυτόματη επιλογή συσκευής: CUDA > MPS > CPU.

Απαιτήσεις​

ΣτοιχείοΕλάχιστοΠροτεινόμενο
Python3.10+3.12
GPU VRAM6GB8GB+
RAM8GB16GB+
Disk4GB8GB

Υποστήριξη πλατφορμών​

ΠλατφόρμαBackendΣημειώσεις
NVIDIA GPUCUDAΚαλύτερες επιδόσεις, υποστήριξη bfloat16
Apple SiliconMPSΧρησιμοποιεί float16
CPUPyTorchΠιο αργό, float32

Γρήγορη εκκίνηση​

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

Ο διακομιστής εκτελείται στο http://localhost:8201.

Επιλογή συσκευής​

# 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

Δοκιμή​

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

Φωνές​

Alba MacKenna (CC BY 4.0):

ΦωνήΎφος
alba / alba-casualΧαλαρή συνομιλία
alba-merchantΧαρακτήρας εμπόρου
alba-announcerΎφος εκφωνητή

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

ΦωνήΣυναίσθημα
expresso-happyΧαρούμενο
expresso-sadΛυπημένο
expresso-angryΘυμωμένο

VCTK (CC BY 4.0):

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

Κλωνοποίηση φωνής​

Και οι δύο διακομιστές υποστηρίζουν κλωνοποίηση φωνών από αρχεία ήχου.

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​

Περάστε οποιαδήποτε διαδρομή φωνής HuggingFace ως παράμετρο 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​

Δημιουργία ομιλίας​

Τελικό σημείο: POST /v1/audio/speech

{
"model": "kyutai-tts",
"input": "Text to convert to speech",
"voice": "alba",
"response_format": "wav",
"stream": false
}
ΠαράμετροςΤύποςΠροεπιλογήΠεριγραφή
modelstringδιαφέρειkyutai-tts ή kyutai-tts-1.6b
inputstringαπαιτείταιΚείμενο προς σύνθεση (έως 10,000 χαρακτήρες)
voicestringalbaΌνομα φωνής ή διαδρομή HuggingFace
response_formatstringwavΜορφή ήχου (υποστηρίζεται μόνο wav)
streambooleanfalseΕνεργοποίηση ροής (μόνο Pocket TTS)
cfg_coeffloat2.0Καθοδήγηση χωρίς ταξινομητή (μόνο 1.6B)

Απόκριση: Αρχείο ήχου (audio/wav)

Ψευδώνυμα φωνών OpenAI​

Για συμβατότητα με πελάτες OpenAI TTS:

Φωνή OpenAIPocket TTSTTS 1.6B
alloyalbaalba
echomariusvctk-p225
fablecosetteexpresso-happy
onyxjavertvctk-p226
novafantinealba-announcer
shimmereponinealba-merchant

Λίστα φωνών​

Τελικό σημείο: GET /v1/voices

Έλεγχος εύρυθμης λειτουργίας​

Τελικό σημείο: GET /health


Ρύθμιση προσθέτου​

Pocket TTS​

Ενεργοποιήστε το στις Ρυθμίσεις > Πρόσθετα > Kyutai TTS

Αρχείο προσθέτου: 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​

Ενεργοποιήστε το στις Ρυθμίσεις > Πρόσθετα > Kyutai TTS 1.6B

Αρχείο προσθέτου: 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
}
}
}
}

Πρόσβαση δικτύου​

Για πρόσβαση από άλλους υπολογιστές:

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

Ενημερώστε ανάλογα το endpoint του προσθέτου:

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

Αντιμετώπιση προβλημάτων​

Αποτυχία λήψης μοντέλου​

Τα μοντέλα κατεβαίνουν από το HuggingFace κατά την πρώτη εκτέλεση:

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

Ανεπάρκεια μνήμης CUDA​

Για TTS 1.6B με περιορισμένη VRAM:

  1. Κλείστε άλλες εφαρμογές GPU
  2. Δοκιμάστε cfg_coef=1.5 για μικρότερη χρήση μνήμης
  3. Χρησιμοποιήστε το Pocket TTS (βασίζεται σε CPU)

Προβλήματα ποιότητας ήχου​

  • Ρομποτικός ήχος: Δοκιμάστε διαφορετική φωνή
  • Κομμένος ήχος: Το κείμενο μπορεί να είναι πολύ μεγάλο· ο διακομιστής το χωρίζει αυτόματα
  • Λανθασμένη προφορά: Το μοντέλο είναι βελτιστοποιημένο για αγγλικά και γαλλικά

Προβλήματα MPS (Apple Silicon)​

RuntimeError: MPS backend error

Το μοντέλο 1.6B χρησιμοποιεί float16 στο MPS. Αν τα προβλήματα επιμένουν, επιβάλετε τη χρήση CPU:

python server.py --device cpu

Σύγκριση με το Qwen3-TTS​

ΔυνατότηταKyutai PocketKyutai 1.6BQwen3-TTS
Παράμετροι100M1.6B0.6B-1.7B
Απαιτείται GPUΌχιΠροαιρετικάΝαι
ΓλώσσεςΑγγλικάEN/FR10 γλώσσες
Κλωνοποίηση φωνήςΝαιΝαιΝαι
Σχεδιασμός φωνήςΌχιΌχιΝαι
Θύρα820082018100

Επιλέξτε το Kyutai για περιπτώσεις χρήσης με έμφαση στα αγγλικά και απλούστερη ρύθμιση. Επιλέξτε το Qwen3-TTS για πολυγλωσσική υποστήριξη και δυνατότητες σχεδιασμού φωνής.


Πόροι​