VoxCPM2

VoxCPM2, OpenBMB का 2 अरब-पैरामीटर वाला, बिना-टोकनाइज़र वाला डिफ्यूज़न-ऑटोरेग्रेसिव TTS मॉडल है। यह 30 भाषाओं में 48 kHz स्टूडियो-गुणवत्ता ऑडियो तैयार करता है और तीन प्रोडक्शन मोड देता है: ज़ीरो-शॉट, सिंगल-रेफ़रेंस वॉइस क्लोनिंग और प्राकृतिक-भाषा वॉइस डिज़ाइन ("a young female voice, warm and gentle")। Apple Silicon पर यह MLX के ज़रिए bf16, int8 या int4 में नेटिव चलता है — 8-वाक्य टेस्ट हार्नेस पर int8 बंडल Qwen3-ASR राउंड-ट्रिप में 0% WER और RTF ≈ 1.0 देता है।

परिचय

आर्किटेक्चर

पाँच घटक मिलकर 48 kHz वेवफ़ॉर्म तैयार करते हैं:

घटकविवरण
MiniCPM-4 base LM28-लेयर 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 पैचेस के बाद जेनरेशन ख़त्म।

बंडल

तीन क्वांटाइज़्ड वेरिएंट, सभी upstream PyTorch openbmb/VoxCPM2 चेकपॉइंट्स से कन्वर्ट किए गए। क्वांटाइज़ेशन LM / Residual LM / DiT एस्टिमेटर / प्रोजेक्शन हेड्स के अंदर के Linear पर लागू होता है; AudioVAE वोकोडर fp16/bf16 पर ही रहता है क्योंकि उसे क्वांटाइज़ करने से ऑडियो क्वालिटी ख़राब होती है।

बंडलक्वांटाइज़ेशनआकारHuggingFace
bf16कोई नहीं (रेफ़रेंस)~5.0 GBaufklarer/VoxCPM2-MLX-bf16
int8MLX QuantizedLinear, group size 64~3.0 GBaufklarer/VoxCPM2-MLX-int8
int4MLX QuantizedLinear, group size 64~1.9 GBaufklarer/VoxCPM2-MLX-int4

राउंड-ट्रिप ASR (Qwen3-ASR 0.6B, 8-वाक्य हार्नेस, M-सीरीज़ Apple Silicon):

वेरिएंटWERRTF
bf162.04 %1.38
int80.00 %1.02
int44.08 %0.83

int8 ही डिफ़ॉल्ट पसंद है — LM पथ पर upstream Python पाइपलाइन से बिट-दर-बिट मेल खाता है, bf16 से तेज़ और 40% छोटा है। int4 सबसे छोटा बंडल है जिसका WER कैज़ुअल इस्तेमाल के लिए ठीक है।

क्विक स्टार्ट

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 / int4 बंडल चुनने के लिए स्पष्ट model ID पास करें:

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,int4}, --voxcpm2-instruct, --voxcpm2-ref-audio, --voxcpm2-prompt-audio + --voxcpm2-prompt-text, --voxcpm2-cfg-value, --voxcpm2-timesteps, --voxcpm2-max-tokens, --voxcpm2-min-tokens, रिप्रोड्यूसिबल सिंथेसिस के लिए --seed

speech-swift के TTS मॉड्यूल में से चुनना

Kokoro-82MQwen3-TTSCosyVoice3VoxCPM2VibeVoice 1.5B
पैरामीटर82M0.6 / 1.7 B0.5B2B1.5B
सैंपल रेट24 kHz24 kHz24 kHz48 kHz24 kHz
बैकएंडCoreML (ANE)MLX, CoreMLMLXMLXMLX
भाषाएँ1010930EN + ZH
वॉइस डिज़ाइनफ़िक्स्ड प्रीसेट्सइंस्ट्रक्शन-ड्रिवन
वॉइस क्लोनिंगICL रेफ़रेंसज़ीरो-शॉट रेफ़रेंसरेफ़रेंस + ultimateऑडियो + ट्रांसक्रिप्ट
लॉन्ग-फ़ॉर्मछोटा / मध्यमस्ट्रीमिंगस्ट्रीमिंगपैच स्ट्रीमिंग90 मिनट तक
VoxCPM2 कब चुनें

जब आपको 48 kHz आउटपुट चाहिए (म्यूज़िक / ब्रॉडकास्ट) या बिना किसी रेफ़रेंस क्लिप के प्राकृतिक-भाषा वॉइस डिज़ाइन। छोटे डाउनलोड के साथ अधिकतम-क्वालिटी अंग्रेज़ी शॉर्ट-फ़ॉर्म TTS के लिए CosyVoice3 या Qwen3-TTS हल्के विकल्प हैं। EN/ZH में लंबे पॉडकास्ट / ऑडियोबुक के लिए VibeVoice 1.5B ख़ास तौर से बना है।

ज़िम्मेदार इस्तेमाल

वॉइस क्लोनिंग शामिल है। जिस आवाज़ को क्लोन करें, उसकी सहमति लें। मॉडल का इस्तेमाल किसी की पहचान चुराने, दुष्प्रचार करने या धोखाधड़ी के लिए न करें। पूरा सुरक्षा दिशानिर्देश openbmb/VoxCPM2 पर देखें।