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

Ενσωμάτωση 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 για πολυγλωσσική υποστήριξη και δυνατότητες σχεδιασμού φωνής.


Πόροι