Traducere automată · Originalul în engleză

VoxCPM2 clonarea vocii la Mac

Rulați VoxCPM2 local pe Apple Silicon cu MLX pentru a clona o voce sau un design dintr-o descriere a textului. Acest model OpenBMB produce un discurs de 48 kHz în 30 de limbi. Ascultați exemplele, apoi încercați CLI cu înregistrarea de referință și transcrierea sa.

Probe audio · Clone a voice with the CLI · VoxCPM2 vs Qwen3-TTS

Mostre de clonare vocală

Aceste clipuri engleze provin din comparaţia publicată FLEURS. Referinţa şi speech-ul generat folosesc fraze diferite. Fiecare ieşire este un eşantion reprezentativ; media datelor comparative este de mai multe clipuri.

Reference audioEngleză · 16 kHz

Reference transcription: One can only wonder what the tastature will become when something newly comes along.

VoxCPM2 bf16Engleză · 48 kHz

Text generat: În timp ce lucra la spitalul liggins a început să investigheze travaliu prematur în timpul său liber.

Qwen3-TTS Baza 1.7B bf16 ICLEngleză · 24 kHz

Text generat: În timp ce lucra la spitalul liggins a început să investigheze travaliu prematur în timpul său liber.

Clone o voce cu CLI

Descarca Reference audio as reference.wav. Comanda foloseste transcrierea exacta; inlocuieste atat inregistrarea cat si transcrierea cand folosesti propriul esantion vocal.

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

Ce este?

Arhitectură

Cinci componente care au cooperat produc o formă de undă de 48 kHz:

Componentă Descriere
MiniCPM-4 bază LM28-strat MiniCPM-4 cu LongRoPE, GQA (16 Q / 2 KV capete, 128 dim cap) și SwiGLU MLP. Condiții privind jetoanele text + latente audio.
LM reziduală8-strat MiniCPM-4 variantă fără înglobări rotative. Refiniază starea LM de bază ascunsă per plasture audio generat.
Estimator FSQ + DiT localScalar-quantized hidden states drive a 12-layer Difuzion Transformer (V2) care funcționează pe latente audio 64-dim în patch-uri de 4. CFG-zero-star Euler rezolvator, 10 timesteps implicit.
AudioVAE V2Decodor convoluțional cauzal. Reads 16 kHz audio de referință + emite 48 kHz valform (3× sus eșantion coapte în).
Opreşte capul.Clasificator binar pe trepte pe starea ascunsă LM. Argmax = 1 generaţie se termină după minTokens patch-uri.

Bundles

Actualul pachet CLI suportă bf16 și int8 pachete convertite din amonte openbmb/VoxCPM2 punct de control. Cuantizarea se aplică proiecțiilor de model lingvistic și difuzie; decodorul audio rămâne la o precizie completă.

BundleCity in GermanyCuantificareDimensiuneHuggingFace
bf16 Niciuna (referință)~5.0 GBaufklarer/VoxCPM2-MLX-bf16
int8MLX CuantizatLinear, dimensiunea grupului 64~3.0 GBaufklater/VoxCPM2-MLX-int8

Excursie rotundă ASR (Qwen3-ASR 0,6B, 8-secvență ham, M-series Apple Silicon):

VariantăWERRTF
bf162.04 %1.38
int80.00 %1.02
int4 (pensionat)4.08 %0.83

CLI implicit la bf16; alege int8 pentru o descărcare mai mică. int4 este pensionat și apare în tabel doar ca măsură istorică.

Start rapid

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

Alegeți pachetul int8 explicit:

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

Proiectare vocală (orientată cu structură)

Se trece o descriere stil natural; model conditii sinteza pe ea fără un eșantion audio de referinţă:

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

Clonare vocală

Clonarea cu o singură referință dintr-un monoclip de 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 clonarea bază atât audio de referinţă şi transcrierea de potrivire astfel încât LM poate condiţiona, de asemenea, cu privire la contextul lexic, păstrarea prozodie şi accent mai fidel:

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

Steaguri: --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 pentru sinteza reproductibilă.

VoxCPM2 vs Qwen3-TTS

Rezultatele publicate în limba engleză pentru zece FLEURS de referință / perechi țintă pe model: medie WER și UTMOS, mediana RTF. Mai jos WER si RTF sunt mai bune; UTMOS prezice naturalețea și nu este un rating uman. Aceste rezultate nu stabilesc un rang universal.

ModelWER ↓RTF ↓UTMOS ↑
VoxCPM2 bf161.8%1.112.97
Qwen3-TTS Baza 1.7B bf16 ICL2.4%1.703.50

Comparație și metodologie a clonării vocale în cinci limbi .

Culegerea între modulele speech-swift TTS

Kokoro-82MQwen3-TTSCosyVoice3VoxCPM2VibeVoice 1.5B
Paramele82M0.6 / 1.7 B0.5B2B1.5B
Rata de eșantionare24 kHz24 kHz24 kHz48 kHz24 kHz
PlatformăCoreML (ANE)MLX, CoreMLMLXMLXMLX
Limbi1010930RO + ZH
Proiectarea vociiPresetări fixe——Instrucţiuni bazate —
Clonare vocală— Referinţă ICL Trimitere la zeroReferință + finalaudio brut + transcriere
Forma lungă Scurt/mediuStreamingStreamingPlasturii de streaming Până la 90 min
Pick VoxCPM2 atunci când...

... aveți nevoie de o ieșire de 48 kHz (muzica / aplicații de difuzare) sau de un design vocal natural fără un clip de referință. Pentru o formă scurtă de calitate English TTS cu descărcare mai mică, CosyVoice3 sau Qwen3-TTS sunt mai ușoare.Pentru podcast de lungă formă / audiobook în EN/ZH, VibeVoice 1.5B este construit în scop.

Utilizare responsabilă

Clonarea vocală este inclusă. Obțineți consimțământul pentru orice voce pe care o clonați și nu utilizați modelul pentru a imita persoane fizice, a genera dezinformare sau a comite fraudă. Se aplică ghidul complet de siguranță de la openbmb/VoxCPM2 .

Inference locală nativă

VoxCPM2 suportă greutateaPrecizie: .float16 pentru un punct de control nequantizat. Pentru acest mod, parametrii principali utilizați FP16; AudioVAE și unele calcule rămân FP32. INT8 punctele de verificare sunt respinse.

Tokenizer ExplicitÎncărcare Directoral folosește fișiere tokenizer înscenate fără a le modifica sau a avea nevoie de un cache separat. Decoduri de vorbire interpretative delimitate ferestre cauzale în timp ce menținerea contextului din stânga AudioVAE.

Discursul cu flux: adevărat întoarce NDJSON evenimente audio la 48 kHz, urmat de făcut sau eroare. Anulați prin cerereID la /v1/inferință/cancel. GET /v1/inference/capabilități și /v1

API detalii