Mac पर VoxCPM2 से वॉइस क्लोनिंग
Apple Silicon पर MLX के साथ VoxCPM2 स्थानीय रूप से चलाकर आवाज़ क्लोन करें या लिखित विवरण से नई आवाज़ बनाएँ। OpenBMB का यह मॉडल 30 भाषाओं में 48 kHz ऑडियो बनाता है। उदाहरण सुनें, फिर संदर्भ रिकॉर्डिंग और उसके सटीक ट्रांसक्रिप्ट के साथ CLI आज़माएँ।
ऑडियो नमूने · CLI से आवाज़ क्लोन करें · VoxCPM2 और Qwen3-TTS की तुलना
वॉइस क्लोनिंग के नमूने
ये अंग्रेज़ी क्लिप प्रकाशित FLEURS तुलना से लिए गए हैं। संदर्भ और जनरेट की गई आवाज़ में अलग-अलग वाक्य हैं। हर आउटपुट एक प्रतिनिधि नमूना है; तुलना के आँकड़े कई क्लिप का सार हैं।
संदर्भ ट्रांसक्रिप्ट: One can only wonder what the keyboard will become when something newer comes along.
जनरेट किया गया टेक्स्ट: While he was working at the hospital Liggins began to investigate premature labor during his spare time.
जनरेट किया गया टेक्स्ट: While he was working at the hospital Liggins began to investigate premature labor during his spare time.
CLI से आवाज़ क्लोन करें
संदर्भ ऑडियो को reference.wav के रूप में डाउनलोड करें। कमांड में उसका सटीक ट्रांसक्रिप्ट है। अपना नमूना इस्तेमाल करते समय रिकॉर्डिंग और ट्रांसक्रिप्ट दोनों बदलें।
speech speak "Hello from the cloned voice." \
--engine voxcpm2 \
--voxcpm2-variant bf16 \
--voice-sample reference.wav \
--voxcpm2-prompt-audio reference.wav \
--voxcpm2-prompt-text "One can only wonder what the keyboard will become when something newer comes along." \
--seed 42 \
--output clone.wav
परिचय
- 48 kHz आउटपुट — इस स्टैक में स्टूडियो सैंपल रेट देने वाला एकमात्र ऑन-डिवाइस इंजन। बाकी सभी TTS मॉड्यूल 24 kHz तक सीमित हैं।
- वॉइस डिज़ाइन — प्राकृतिक भाषा से शैली नियंत्रण:
--voxcpm2-instruct "young female voice, warm and gentle"। बाकी कोई इंजन यह नहीं देता। - वॉइस क्लोनिंग — 16 kHz सिंगल-रेफ़रेंस क्लिप से क्लोनिंग; प्रोसोडी को बेहतर बनाए रखने के लिए "ultimate cloning" (रेफ़रेंस ऑडियो + ट्रांसक्रिप्ट)।
- 30 भाषाएँ — अंग्रेज़ी, चीनी, इंडोनेशियाई, जापानी, कोरियाई वगैरह। टेक्स्ट से ऑटो-डिटेक्ट।
- Apache 2.0 — मॉडल वज़न upstream openbmb लाइसेंस के अनुसार हैं; हमारा Swift पोर्ट उसी लाइसेंस पर है।
आर्किटेक्चर
पाँच घटक मिलकर 48 kHz वेवफ़ॉर्म तैयार करते हैं:
| घटक | विवरण |
|---|---|
| MiniCPM-4 base LM | 28-लेयर MiniCPM-4, LongRoPE, GQA (16 Q / 2 KV हेड, हेड डिम 128), SwiGLU MLP। टेक्स्ट टोकन + ऑडियो लेटेंट्स पर कंडीशन्ड। |
| Residual LM | रोटरी एम्बेडिंग के बिना 8-लेयर MiniCPM-4 वेरिएंट। हर जेनरेटेड ऑडियो पैच के लिए बेस LM का हिडन स्टेट रिफ़ाइन करता है। |
| FSQ + Local DiT estimator | स्केलर-क्वांटाइज़्ड हिडन स्टेट्स एक 12-लेयर Diffusion Transformer (V2) को चलाते हैं, जो 64-डिम ऑडियो लेटेंट्स पर 4 के पैचेस में काम करता है। CFG-zero-star Euler सॉल्वर, डिफ़ॉल्ट 10 टाइमस्टेप्स। |
| AudioVAE V2 | कौज़ल कन्वोल्यूशनल डिकोडर। 16 kHz रेफ़रेंस ऑडियो लेता है, 48 kHz वेवफ़ॉर्म देता है (3× अपसैंपलिंग बिल्ट-इन)। |
| Stop हेड | LM के हिडन स्टेट पर प्रति-स्टेप बाइनरी क्लासिफ़ायर। argmax = 1 से minTokens पैचेस के बाद जेनरेशन ख़त्म। |
बंडल
वर्तमान CLI मूल openbmb/VoxCPM2 चेकपॉइंट से बदले गए bf16 और int8 बंडल का समर्थन करता है। भाषा और डिफ्यूज़न मॉडल के प्रोजेक्शन क्वांटाइज़ किए जाते हैं; ऑडियो डिकोडर पूर्ण प्रिसीज़न में रहता है।
| बंडल | क्वांटाइज़ेशन | आकार | HuggingFace |
|---|---|---|---|
| bf16 | कोई नहीं (रेफ़रेंस) | ~5.0 GB | aufklarer/VoxCPM2-MLX-bf16 |
| int8 | MLX QuantizedLinear, group size 64 | ~3.0 GB | aufklarer/VoxCPM2-MLX-int8 |
राउंड-ट्रिप ASR (Qwen3-ASR 0.6B, 8-वाक्य हार्नेस, M-सीरीज़ Apple Silicon):
| वेरिएंट | WER | RTF |
|---|---|---|
| bf16 | 2.04 % | 1.38 |
| int8 | 0.00 % | 1.02 |
| int4 (हटाया गया) | 4.08 % | 0.83 |
CLI में bf16 डिफ़ॉल्ट है; छोटा डाउनलोड चाहिए तो int8 चुनें। int4 हटा दिया गया है और तालिका में केवल पुराने मापन के रूप में दिखता है।
क्विक स्टार्ट
import VoxCPM2TTS
let tts = try await VoxCPM2TTSModel.fromPretrained() // defaults to bf16
let audio = try await tts.generate(text: "Hello from VoxCPM2.", language: "english")
// audio: [Float] at 48 kHz mono
int8 बंडल स्पष्ट रूप से चुनें:
let tts = try await VoxCPM2TTSModel.fromPretrained(
modelId: "aufklarer/VoxCPM2-MLX-int8"
)
वॉइस डिज़ाइन (इंस्ट्रक्शन-ड्रिवन)
एक प्राकृतिक-भाषा स्टाइल विवरण पास करें; मॉडल बिना किसी रेफ़रेंस ऑडियो के उसी पर कंडीशन करेगा:
let audio = try await tts.generateVoxCPM2(
text: "Welcome to the show.",
instruct: "A young woman, gentle and warm voice."
)
वॉइस क्लोनिंग
16 kHz मोनो रेफ़रेंस क्लिप से सिंगल-रेफ़रेंस क्लोनिंग:
let ref = try AudioFileLoader.load(url: URL(fileURLWithPath: "speaker.wav"),
targetSampleRate: 16000)
let audio = try await tts.generateVoxCPM2(
text: "This is a cloned voice.",
refAudio: ref
)
Ultimate cloning — रेफ़रेंस ऑडियो और उसके मेल खाते ट्रांसक्रिप्ट दोनों पास करें, ताकि LM लेक्सिकल कॉन्टेक्स्ट पर भी कंडीशन हो और प्रोसोडी/उच्चारण ज़्यादा सही रहे:
let audio = try await tts.generateVoxCPM2(
text: "Hello from the cloned voice.",
refAudio: ref,
promptText: "this is what the reference clip actually said",
promptAudio: ref
)
CLI
speech speak "Hello there." \
--engine voxcpm2 \
--voxcpm2-variant int8 \
--output hello.wav
# Voice design
speech speak "Welcome to the show." \
--engine voxcpm2 \
--voxcpm2-instruct "A young woman, gentle and warm voice." \
--output design.wav
# Voice cloning
speech speak "This is a cloned voice." \
--engine voxcpm2 \
--voice-sample speaker.wav \
--output clone.wav
फ़्लैग्स: --voxcpm2-variant {bf16,int8}, --voxcpm2-instruct, --voxcpm2-ref-audio, --voxcpm2-prompt-audio + --voxcpm2-prompt-text, --voxcpm2-cfg-value, --voxcpm2-timesteps, --voxcpm2-max-tokens, --voxcpm2-min-tokens, रिप्रोड्यूसिबल सिंथेसिस के लिए --seed।
VoxCPM2 और Qwen3-TTS की तुलना
हर मॉडल के लिए दस FLEURS संदर्भ/लक्ष्य जोड़ों पर प्रकाशित अंग्रेज़ी परिणाम: WER और UTMOS के औसत, RTF का माध्यिका मान। कम WER और RTF बेहतर हैं। UTMOS स्वाभाविकता का अनुमान है, मानव रेटिंग नहीं। ये परिणाम सार्वभौमिक रैंकिंग नहीं हैं।
| मॉडल | WER ↓ | RTF ↓ | UTMOS ↑ |
|---|---|---|---|
| VoxCPM2 bf16 | 1.8% | 1.11 | 2.97 |
| Qwen3-TTS Base 1.7B bf16 ICL | 2.4% | 1.70 | 3.50 |
पाँच भाषाओं में वॉइस क्लोनिंग की पूरी तुलना और विधि.
speech-swift के TTS मॉड्यूल में से चुनना
| Kokoro-82M | Qwen3-TTS | CosyVoice3 | VoxCPM2 | VibeVoice 1.5B | |
|---|---|---|---|---|---|
| पैरामीटर | 82M | 0.6 / 1.7 B | 0.5B | 2B | 1.5B |
| सैंपल रेट | 24 kHz | 24 kHz | 24 kHz | 48 kHz | 24 kHz |
| बैकएंड | CoreML (ANE) | MLX, CoreML | MLX | MLX | MLX |
| भाषाएँ | 10 | 10 | 9 | 30 | EN + ZH |
| वॉइस डिज़ाइन | फ़िक्स्ड प्रीसेट्स | — | — | इंस्ट्रक्शन-ड्रिवन | — |
| वॉइस क्लोनिंग | — | ICL रेफ़रेंस | ज़ीरो-शॉट रेफ़रेंस | रेफ़रेंस + ultimate | ऑडियो + ट्रांसक्रिप्ट |
| लॉन्ग-फ़ॉर्म | छोटा / मध्यम | स्ट्रीमिंग | स्ट्रीमिंग | पैच स्ट्रीमिंग | 90 मिनट तक |
जब आपको 48 kHz आउटपुट चाहिए (म्यूज़िक / ब्रॉडकास्ट) या बिना किसी रेफ़रेंस क्लिप के प्राकृतिक-भाषा वॉइस डिज़ाइन। छोटे डाउनलोड के साथ अधिकतम-क्वालिटी अंग्रेज़ी शॉर्ट-फ़ॉर्म TTS के लिए CosyVoice3 या Qwen3-TTS हल्के विकल्प हैं। EN/ZH में लंबे पॉडकास्ट / ऑडियोबुक के लिए VibeVoice 1.5B ख़ास तौर से बना है।
ज़िम्मेदार इस्तेमाल
वॉइस क्लोनिंग शामिल है। जिस आवाज़ को क्लोन करें, उसकी सहमति लें। मॉडल का इस्तेमाल किसी की पहचान चुराने, दुष्प्रचार करने या धोखाधड़ी के लिए न करें। पूरा सुरक्षा दिशानिर्देश openbmb/VoxCPM2 पर देखें।