Ugrás a fő tartalomra

Qwen3-TTS integráció

Futtassa helyben az Alibaba Qwen3-TTS modelljét. Ez az útmutató a Libre WebUI részét képező, OpenAI-kompatibilis TTS-szervert állítja be.

Áttekintés

A Qwen3-TTS kilenc kész hangot kínál angol, kínai, japán és koreai nyelven, összesen tíz nyelvet támogat, három másodperces mintából hangot klónoz, természetes nyelvű leírásból hangot tervez, valamint érzelmi és prozódiai utasításokat követ. A szerver OpenAI-kompatibilis API-val veszi körül.

Követelmények

ÖsszetevőMinimumAjánlott
Python3.12+3.12 (nem 3.14)
GPU VRAM4GB (0.6B)8GB+ (1.7B)
RAM8GB16GB+
Lemez5GB10GB

Platformok

PlatformBackendMegjegyzés
NVIDIA GPUCUDALegjobb teljesítmény, bfloat16
Apple SiliconMPSMemóriakíméléshez használja a 0.6B modellt
CPUPyTorchLassabb; használja a 0.6B modellt
Apple Silicon

Macen használja a customvoice-0.6b modellt. Az 1.7B változat instabillá teheti a 16GB egyesített memóriával rendelkező gépet.

Gyors kezdés

1. A szerver telepítése

cd examples/qwen-tts-server

# Create virtual environment (Python 3.12 required)
python3.12 -m venv venv
source venv/bin/activate # Linux/macOS
# or: venv\Scripts\activate # Windows

# Install dependencies
pip install -r requirements.txt

2. A szerver elindítása

# NVIDIA GPU (recommended)
python server.py --model customvoice-1.7b

# Apple Silicon
python server.py --model customvoice-0.6b

# CPU (slower)
python server.py --model customvoice-0.6b

A szerver a http://localhost:8100 címen fut.

3. A Libre WebUI beállítása

A plugins/qwen-tts.json használatra kész. Engedélyezze a Settings → Plugins → Qwen3 TTS elemet.

4. Tesztelés

curl http://localhost:8100/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{"model": "qwen3-tts", "input": "Hello, welcome to Libre WebUI!", "voice": "Ryan"}' \
--output speech.wav

Elérhető modellek

ModellMéretHasználat
customvoice-1.7b~3.5GBKész hangok és utasítások
customvoice-0.6b~1.5GBKönnyű változat
voicedesign-1.7b~3.5GBHang leírásból
base-1.7b~3.5GBHárom másodperces hangklónozás
base-0.6b~1.5GBKönnyű hangklónozás

Hangok

Kész hangok

HangNyelvLeírás
RyanAngolFérfi, tiszta, természetes
AidenAngolFérfi, meleg hangzású
VivianKínaiNői, professzionális
SerenaKínaiNői, barátságos
Uncle_FuKínaiFérfi, érett
DylanKínaiPekingi nyelvjárás
EricKínaiSzecsuáni nyelvjárás
Ono_AnnaJapánNői
SoheeKoreaiNői

OpenAI-aliasok

OpenAI-hangMegfelelő hang
alloyRyan
echoAiden
fableVivian
onyxUncle_Fu
novaSerena
shimmerOno_Anna

API-referencia

Beszéd generálása

Végpont: POST /v1/audio/speech

{
"model": "qwen3-tts",
"input": "Text to convert to speech",
"voice": "Ryan",
"response_format": "wav",
"instruct": "Speak with enthusiasm",
"language": "English"
}
ParaméterTípusAlapértékLeírás
modelstringqwen3-ttsModellazonosító
inputstringkötelezőSzöveg, legfeljebb 10 000 karakter
voicestringryanHang neve
response_formatstringwavCsak wav
instructstring""Érzelem/prozódia
languagestringautoNyelv felülírása

Válasz: fájl (audio/wav)

Hangtervezés

Végpont: POST /v1/audio/voice-design

{
"model": "qwen3-tts-voicedesign",
"input": "Welcome to our service.",
"voice_description": "A warm, friendly female voice with a slight British accent",
"language": "English"
}
megjegyzés

A voicedesign-1.7b modell szükséges.

Hangklónozás

Végpont: POST /v1/audio/voice-clone

curl -X POST http://localhost:8100/v1/audio/voice-clone \
-F "input=Hello, this is my cloned voice." \
-F "reference_audio=@reference.wav" \
-F "reference_text=This is what was said in the reference." \
--output cloned.wav
ParaméterTípusLeírás
inputstringSzintetizálandó szöveg
reference_audiofileLegalább 3 másodperces hang
reference_textstringA referenciaminta átirata
megjegyzés

A base-1.7b vagy base-0.6b modell szükséges.

Hangok listája

Végpont: GET /v1/voices

{
"voices": [
{"id": "ryan", "name": "Ryan", "language": "English"},
{"id": "aiden", "name": "Aiden", "language": "English"},
...
]
}

Állapotellenőrzés

Végpont: GET /health

{ "status": "healthy", "model_loaded": true }

A szerver beállítása

python server.py [OPTIONS]
BeállításAlapértékLeírás
--host0.0.0.0Csatolási host
--port8100Csatolási port
--modelcustomvoice-1.7bModellváltozat

Hálózati hozzáférés

# Start server on all interfaces
python server.py --host 0.0.0.0 --port 8100

# Access from another machine
curl http://192.168.1.100:8100/v1/audio/speech ...

Frissítse a plugins/qwen-tts.json fájlt:

{
"endpoint": "http://192.168.1.100:8100/v1/audio/speech",
"capabilities": {
"tts": {
"endpoint": "http://192.168.1.100:8100/v1/audio/speech"
}
}
}

Éles funkciók

Szövegtisztítás

A szerver eltávolítja az emojikat, szimbólumokat, a *bold* és _italic_ formájú Markdown-jelöléseket, a *(action)* és (whispers) utasításokat, a FUUUUU alakot FUU értékre rövidíti, és normalizálja a szóközöket.

Szegmentálás

A hosszú szöveget mondatokra bontja: legfeljebb 500 karakter, 30 másodperces timeout, a sikertelen szegmenseket kihagyja, a többit összefűzi.

Több GPU

A szerver egyetlen GPU használatát kényszeríti ki:

device_map = {"": "cuda:0"} # Uses first GPU only
CUDA_VISIBLE_DEVICES=1 python server.py --model customvoice-1.7b

Hibaelhárítás

A modell letöltése sikertelen

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

# Or download manually
huggingface-cli download Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice

Memóriahiány (Apple Silicon)

RuntimeError: MPS backend out of memory
python server.py --model customvoice-0.6b

CUDA-memóriahiány

torch.cuda.OutOfMemoryError: CUDA out of memory

Zárja be a többi GPU-alkalmazást, használja a 0.6B modellt, vagy csökkentse a max_chunk_size=300 értéket.

Szerver-timeout

Ellenőrizze a naplókat, és szükség esetén rövidítse a bemenetet.

Hibás hang

Az ismétlődéseket általában szimbólumok okozzák; a hibás nyelv a language mezővel, a szünetek normál írásjelekkel javíthatók.

A bővítmény beállítása

{
"id": "qwen-tts",
"name": "Qwen3 TTS",
"type": "tts",
"endpoint": "http://localhost:8100/v1/audio/speech",
"auth": {
"header": "",
"key_env": ""
},
"model_map": [
"qwen3-tts",
"qwen3-tts-customvoice",
"qwen3-tts-voicedesign",
"qwen3-tts-clone"
],
"capabilities": {
"tts": {
"endpoint": "http://localhost:8100/v1/audio/speech",
"model_map": [
"qwen3-tts",
"qwen3-tts-customvoice",
"qwen3-tts-voicedesign",
"qwen3-tts-clone"
],
"config": {
"voices": [
"Ryan",
"Aiden",
"Vivian",
"Serena",
"Uncle_Fu",
"Dylan",
"Eric",
"Ono_Anna",
"Sohee"
],
"default_voice": "Ryan",
"formats": ["wav"],
"default_format": "wav",
"max_characters": 10000,
"supports_streaming": false,
"no_auth_required": true
}
}
},
"description": "Qwen3-TTS local TTS server (NVIDIA CUDA, Apple MPS, or CPU)",
"documentation_url": "https://github.com/QwenLM/Qwen3-TTS"
}

Források