VoxCPM2

VoxCPM2, OpenBMB tarafından geliştirilen 2B parametreli, tokenizer'sız diffusion-autoregressive bir konuşma sentezi modelidir. 48 kHz stüdyo kalitesinde sesi 30 dilde üç üretim moduyla sentezler: zero-shot, tek referanslı ses klonlama ve doğal dil ses tasarımı ("a young female voice, warm and gentle"). Apple Silicon üzerinde MLX aracılığıyla bf16, int8 veya int4 ile native çalışır — int8 paketi 8 cümlelik test koşusunda Qwen3-ASR üzerinden %0 WER ile round-trip yapar ve ~RTF 1,0 değerine ulaşır.

Nedir

Mimari

Beş işbirlikçi bileşen 48 kHz dalga formu üretir:

BileşenAçıklama
MiniCPM-4 base LMLongRoPE, GQA (16 Q / 2 KV başlığı, 128 başlık boyutu) ve SwiGLU MLP ile 28 katmanlı MiniCPM-4. Metin token'ları + ses latent'leri üzerinde koşullanır.
Residual LMRotary embedding'siz 8 katmanlı MiniCPM-4 varyantı. Üretilen her ses patch'i için base LM gizli durumunu rafine eder.
FSQ + Local DiT estimatorSkaler kuantize gizli durumlar, 4 patch boyutunda 64 boyutlu ses latent'leri üzerinde çalışan 12 katmanlı bir Diffusion Transformer (V2)'yi yönlendirir. CFG-zero-star Euler solver, varsayılan 10 zaman adımı.
AudioVAE V2Nedensel evrişimli kod çözücü. 16 kHz referans sesi okur ve 48 kHz dalga formu üretir (3× upsample dahili).
Stop headLM gizli durumu üzerinde adım başına ikili sınıflandırıcı. Argmax = 1 olduğunda minTokens patch'ten sonra üretim biter.

Paketler

Tümü openbmb/VoxCPM2 checkpoint'lerinden upstream PyTorch üzerinden dönüştürülmüş üç kuantizasyon varyantı. Kuantizasyon, LM / residual LM / DiT estimator / projeksiyon başlıkları içindeki Linear projeksiyonlara uygulanır; AudioVAE vocoder ise kuantize edilmesi ses kalitesini bozduğundan fp16/bf16'da kalır.

PaketKuantizasyonBoyutHuggingFace
bf16Yok (referans)~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

Round-trip ASR (Qwen3-ASR 0.6B, 8 cümlelik koşu, M serisi Apple Silicon):

VaryantWERRTF
bf162.04 %1.38
int80.00 %1.02
int44.08 %0.83

int8 önerilen varsayılan değerdir — LM yolunda upstream Python pipeline'ıyla bit bit eşleşirken bf16'dan daha hızlı ve %40 daha küçüktür. int4, gündelik kullanım için kabul edilebilir WER ile en küçük pakettir.

Hızlı başlangıç

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 paketini seçmek için açık bir model ID geçirin:

let tts = try await VoxCPM2TTSModel.fromPretrained(
    modelId: "aufklarer/VoxCPM2-MLX-int8"
)

Ses tasarımı (talimat odaklı)

Doğal dilde bir stil açıklaması geçirin; model, referans ses örneği olmadan sentezi buna göre koşullandırır:

let audio = try await tts.generateVoxCPM2(
    text: "Welcome to the show.",
    instruct: "A young woman, gentle and warm voice."
)

Ses klonlama

16 kHz mono bir klipten tek referanslı klonlama:

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'nin sözcüksel bağlama da koşullanması, böylece prozodi ve aksanı daha sadık şekilde koruyabilmesi için hem referans sesi hem de eşleşen transkripti geçirin:

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

Flag'ler: --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, tekrarlanabilir sentez için --seed.

speech-swift TTS modülleri arasından seçim

Kokoro-82MQwen3-TTSCosyVoice3VoxCPM2VibeVoice 1.5B
Parametreler82M0.6 / 1.7 B0.5B2B1.5B
Örnekleme frekansı24 kHz24 kHz24 kHz48 kHz24 kHz
Arka uçCoreML (ANE)MLX, CoreMLMLXMLXMLX
Diller1010930EN + ZH
Ses tasarımıSabit hazır ayarlarTalimat odaklı
Ses klonlamaICL referansZero-shot referansReferans + ultimateHam ses + transkript
Uzun formKısa/ortaStreamingStreamingStreaming patch'ler90 dakikaya kadar
VoxCPM2'yi şu durumlarda seçin…

…48 kHz çıktıya ihtiyaç duyduğunuzda (müzik / yayın uygulamaları) veya referans klip olmadan doğal dilde ses tasarımı istediğinizde. Daha küçük indirmeyle en yüksek kaliteli kısa form İngilizce TTS için CosyVoice3 veya Qwen3-TTS daha hafiftir. EN/ZH'de uzun form podcast / sesli kitap için VibeVoice 1.5B bu amaca özel tasarlanmıştır.

Sorumlu kullanım

Ses klonlama dahildir. Klonladığınız her ses için onay alın ve modeli kişileri taklit etmek, yanlış bilgi üretmek veya dolandırıcılık için kullanmayın. openbmb/VoxCPM2 kaynağındaki güvenlik kılavuzunun tamamı geçerlidir.