मुख्य कंटेंट तक स्किप करें

Qwen3-TTS एकीकरण

उच्च-गुणवत्ता बहुभाषी टेक्स्ट-टू-स्पीच के लिए Alibaba का Qwen3-TTS स्थानीय रूप से चलाएँ। यह मार्गदर्शिका Libre WebUI में शामिल OpenAI-संगत TTS सर्वर का सेटअप बताती है।

अवलोकन

Qwen3-TTS उन्नत वाक् संश्लेषण प्रणाली है:

  • अंग्रेज़ी, चीनी, जापानी और कोरियाई में 9 तैयार आवाज़ें
  • जर्मन, फ़्रेंच, स्पेनिश, इतालवी, पुर्तगाली और रूसी सहित 10 भाषाएँ
  • 3 सेकंड की ऑडियो से आवाज़ क्लोनिंग
  • प्राकृतिक भाषा वर्णन से आवाज़ डिज़ाइन
  • भावना और लय के लिए निर्देश नियंत्रण

शामिल सर्वर Qwen3-TTS को OpenAI-संगत API देता है, जिससे Libre WebUI इसे मानक प्लगइन प्रणाली द्वारा उपयोग करता है।

आवश्यकताएँ

घटकन्यूनतमअनुशंसित
Python3.12+3.12 (3.14 नहीं)
GPU VRAM4GB (0.6B मॉडल)8GB+ (1.7B मॉडल)
RAM8GB16GB+
डिस्क5GB10GB

प्लेटफ़ॉर्म समर्थन

प्लेटफ़ॉर्मबैकएंडटिप्पणी
NVIDIA GPUCUDAसर्वोत्तम प्रदर्शन, bfloat16 समर्थन
Apple SiliconMPSस्मृति दक्षता के लिए 0.6B
CPUPyTorchधीमा; 0.6B उपयोग करें
Apple Silicon उपयोगकर्ता

Mac पर स्मृति दबाव घटाने के लिए customvoice-0.6b उपयोग करें। 16GB संयुक्त स्मृति वाले सिस्टम पर 1.7B मॉडल अस्थिरता ला सकते हैं।

त्वरित शुरुआत

1. सर्वर स्थापित करें

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. सर्वर शुरू करें

# 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

सर्वर डिफ़ॉल्ट रूप से http://localhost:8100 पर चलता है।

3. Libre WebUI कॉन्फ़िगर करें

प्लगइन plugins/qwen-tts.json में पहले से कॉन्फ़िगर है। Settings → Plugins → Qwen3 TTS में सक्षम करें।

4. जाँच करें

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

उपलब्ध मॉडल

मॉडलआकारउपयोग
customvoice-1.7b~3.5GBनिर्देश-नियंत्रित तैयार आवाज़ें
customvoice-0.6b~1.5GBसीमित VRAM के लिए हल्का
voicedesign-1.7b~3.5GBटेक्स्ट वर्णन से आवाज़
base-1.7b~3.5GB3 सेकंड से आवाज़ क्लोन
base-0.6b~1.5GBहल्की क्लोनिंग

आवाज़ें

तैयार आवाज़ें (CustomVoice मॉडल)

आवाज़भाषावर्णन
Ryanअंग्रेज़ीपुरुष, स्पष्ट और प्राकृतिक
Aidenअंग्रेज़ीपुरुष, गर्म स्वर
Vivianचीनीमहिला, पेशेवर
Serenaचीनीमहिला, मित्रवत
Uncle_Fuचीनीपुरुष, परिपक्व
Dylanचीनीपुरुष, बीजिंग बोली
Ericचीनीपुरुष, सिचुआन बोली
Ono_Annaजापानीमहिला
Soheeकोरियाईमहिला

OpenAI आवाज़ उपनाम

OpenAI TTS क्लाइंट संगतता के लिए सर्वर नाम मिलाता है:

OpenAI आवाज़मिलान
alloyRyan
echoAiden
fableVivian
onyxUncle_Fu
novaSerena
shimmerOno_Anna

API संदर्भ

वाक् जनरेशन

एंडपॉइंट: POST /v1/audio/speech

{
"model": "qwen3-tts",
"input": "Text to convert to speech",
"voice": "Ryan",
"response_format": "wav",
"instruct": "Speak with enthusiasm",
"language": "English"
}
पैरामीटरप्रकारडिफ़ॉल्टवर्णन
modelstringqwen3-ttsमॉडल पहचान
inputstringआवश्यकसंश्लेषित टेक्स्ट (अधिकतम 10,000 अक्षर)
voicestringryanआवाज़ नाम
response_formatstringwavऑडियो फ़ॉर्मैट (केवल wav)
instructstring""भावना/लय निर्देश
languagestringस्वतःभाषा पहचान ओवरराइड

उत्तर: ऑडियो फ़ाइल (audio/wav)

आवाज़ डिज़ाइन

एंडपॉइंट: 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"
}
टिप्पणी

voicedesign-1.7b लोड होना चाहिए।

आवाज़ क्लोनिंग

एंडपॉइंट: POST /v1/audio/voice-clone

कम से कम 3 सेकंड की ऑडियो से आवाज़ क्लोन करें।

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
पैरामीटरप्रकारवर्णन
inputstringसंश्लेषित टेक्स्ट
reference_audiofileकम से कम 3 सेकंड का नमूना
reference_textstringसंदर्भ ऑडियो प्रतिलेख
टिप्पणी

base-1.7b या base-0.6b लोड होना चाहिए।

आवाज़ सूची

एंडपॉइंट: GET /v1/voices

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

स्थिति जाँच

एंडपॉइंट: GET /health

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

सर्वर कॉन्फ़िगरेशन

python server.py [OPTIONS]
विकल्पडिफ़ॉल्टवर्णन
--host0.0.0.0होस्ट
--port8100पोर्ट
--modelcustomvoice-1.7bलोड मॉडल

नेटवर्क पहुँच

दूसरे कंप्यूटर से पहुँचने के लिए:

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

plugins/qwen-tts.json एंडपॉइंट बदलें:

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

उत्पादन सुविधाएँ

टेक्स्ट सफ़ाई

सर्वर मॉडल रुकने से बचाने के लिए टेक्स्ट साफ़ करता है:

  • इमोजी और प्रतीक हटाता है
  • Markdown (*bold*, _italic_ आदि) हटाता है
  • दोहराव घटाता है (FUUUUUFUU)
  • मंच निर्देश हटाता है (*(action)*, (whispers))
  • रिक्त स्थान सामान्य करता है

टेक्स्ट विभाजन

लंबा टेक्स्ट वाक्य सीमाओं पर बँटता है:

  • प्रति भाग 500 अक्षर
  • प्रति भाग 30 सेकंड समय-सीमा
  • विफल भाग छोड़कर शेष जारी
  • भाग एक ऑडियो उत्तर में जुड़ते हैं

इससे प्राकृतिक प्रवाह रखते हुए लंबे AI उत्तर समय-सीमा से बचते हैं।

अनेक GPU

कई GPU पर टेन्सर डिवाइस असंगति रोकने के लिए सर्वर एक GPU बाध्य करता है:

device_map = {"": "cuda:0"} # Uses first GPU only

विशिष्ट GPU के लिए:

CUDA_VISIBLE_DEVICES=1 python server.py --model customvoice-1.7b

समस्या निवारण

मॉडल डाउनलोड विफल

पहली बार मॉडल Hugging Face से उतरता है। विफल हो तो:

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

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

स्मृति कम (Apple Silicon)

RuntimeError: MPS backend out of memory

छोटा मॉडल उपयोग करें:

python server.py --model customvoice-0.6b

CUDA स्मृति कम

torch.cuda.OutOfMemoryError: CUDA out of memory
  1. अन्य GPU ऐप बंद करें
  2. 0.6B मॉडल उपयोग करें
  3. server.py में भाग आकार घटाएँ (max_chunk_size=300)

सर्वर समय-सीमा पार करता है

लंबा टेक्स्ट समय-सीमा पार करे तो:

  1. सर्वर स्वतः विभाजित कर शेष जारी रखता है
  2. लॉग देखें
  3. इनपुट छोटा करें

ऑडियो गलत लगता है

  • दोहराए अक्षर: आमतौर पर इमोजी या विशेष चिह्न; सफ़ाई सँभालती है।
  • गलत भाषा: language स्पष्ट सेट करें।
  • अप्राकृतिक विराम: असामान्य विराम चिह्न जाँचें।

प्लगइन कॉन्फ़िगरेशन

शामिल प्लगइन (plugins/qwen-tts.json):

{
"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"
}

संसाधन