Ενσωμάτωση Kyutai TTS
Εκτελέστε τοπικά τα μοντέλα TTS της Kyutai για μετατροπή κειμένου σε ομιλία υψηλής ποιότητας. Αυτός ο οδηγός καλύπτει τόσο το Pocket TTS (CPU) όσο και το TTS 1.6B (GPU), με διακομιστές συμβατούς με OpenAI που περιλαμβάνονται στο Libre WebUI.
Επισκόπηση
Η Kyutai προσφέρει δύο μοντέλα TTS:
| Μοντέλο | Παράμετροι | Συσκευή | Ιδανικό για |
|---|---|---|---|
| Pocket TTS | 100M | Μόνο CPU | Φορητούς υπολογιστές, περιβάλλοντα περιορισμένων πόρων |
| TTS 1.6B | 1.6B | GPU/MPS/CPU | Διακομιστές, σύνθεση υψηλής ποιότητας |
Και τα δύο χρησιμοποιούν το πλαίσιο CALM (Continuous Audio Language Models) και υποστηρίζουν κλωνοποίηση φωνής από δείγματα ήχου.
Pocket TTS (CPU)
Ελαφρύ TTS που εκτελείται σε πραγματικό χρόνο σε CPU. Δεν απαιτείται GPU.
Απαιτήσεις
| Στοιχείο | Ελάχιστο |
|---|---|
| Python | 3.10 - 3.14 |
| PyTorch | 2.5+ |
| RAM | 4GB |
| Disk | 500MB |
Γρήγορη εκκίνηση
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.
Απαιτήσεις
| Στοιχείο | Ελάχιστο | Προτεινόμενο |
|---|---|---|
| Python | 3.10+ | 3.12 |
| GPU VRAM | 6GB | 8GB+ |
| RAM | 8GB | 16GB+ |
| Disk | 4GB | 8GB |
Υποστήριξη πλατφορμών
| Πλατφόρμα | Backend | Σημειώσεις |
|---|---|---|
| NVIDIA GPU | CUDA | Καλύτερες επιδόσεις, υποστήριξη bfloat16 |
| Apple Silicon | MPS | Χρησιμοποιεί float16 |
| CPU | PyTorch | Πιο αργό, 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
}
| Παράμετρος | Τύπος | Προεπιλογή | Περιγραφή |
|---|---|---|---|
model | string | διαφέρει | kyutai-tts ή kyutai-tts-1.6b |
input | string | απαιτείται | Κείμενο προς σύνθεση (έως 10,000 χαρακτήρες) |
voice | string | alba | Όνομα φωνής ή διαδρομή HuggingFace |
response_format | string | wav | Μορφή ήχου (υποστηρίζεται μόνο wav) |
stream | boolean | false | Ενεργοποίηση ροής (μόνο Pocket TTS) |
cfg_coef | float | 2.0 | Καθοδήγηση χωρίς ταξινομητή (μόνο 1.6B) |
Απόκριση: Αρχείο ήχου (audio/wav)
Ψευδώνυμα φωνών OpenAI
Για συμβατότητα με πελάτες OpenAI TTS:
| Φωνή OpenAI | Pocket TTS | TTS 1.6B |
|---|---|---|
alloy | alba | alba |
echo | marius | vctk-p225 |
fable | cosette | expresso-happy |
onyx | javert | vctk-p226 |
nova | fantine | alba-announcer |
shimmer | eponine | alba-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:
- Κλείστε άλλες εφαρμογές GPU
- Δοκιμάστε
cfg_coef=1.5για μικρότερη χρήση μνήμης - Χρησιμοποιήστε το Pocket TTS (βασίζεται σε CPU)
Προβλήματα ποιότητας ήχου
- Ρομποτικός ήχος: Δοκιμάστε διαφορετική φωνή
- Κομμένος ήχος: Το κείμενο μπορεί να είναι πολύ μεγάλο· ο διακομιστής το χωρίζει αυτόματα
- Λανθασμένη προφορά: Το μοντέλο είναι βελτιστοποιημένο για αγγλικά και γαλλικά
Προβλήματα MPS (Apple Silicon)
RuntimeError: MPS backend error
Το μοντέλο 1.6B χρησιμοποιεί float16 στο MPS. Αν τα προβλήματα επιμένουν, επιβάλετε τη χρήση CPU:
python server.py --device cpu
Σύγκριση με το Qwen3-TTS
| Δυνατότητα | Kyutai Pocket | Kyutai 1.6B | Qwen3-TTS |
|---|---|---|---|
| Παράμετροι | 100M | 1.6B | 0.6B-1.7B |
| Απαιτείται GPU | Όχι | Προαιρετικά | Ναι |
| Γλώσσες | Αγγλικά | EN/FR | 10 γλώσσες |
| Κλωνοποίηση φωνής | Ναι | Ναι | Ναι |
| Σχεδιασμός φωνής | Όχι | Όχι | Ναι |
| Θύρα | 8200 | 8201 | 8100 |
Επιλέξτε το Kyutai για περιπτώσεις χρήσης με έμφαση στα αγγλικά και απλούστερη ρύθμιση. Επιλέξτε το Qwen3-TTS για πολυγλωσσική υποστήριξη και δυνατότητες σχεδιασμού φωνής.
Πόροι
- Kyutai TTS - Επίσημη σελίδα έργου
- Pocket TTS GitHub - Μοντέλο CPU
- Delayed Streams Modeling - Μοντέλο 1.6B
- Συλλογή φωνών - Διαθέσιμες φωνές
- Κάρτα μοντέλου - Τεχνικές λεπτομέρειες