Automatische vertaling · Engels origineel

VoxCPM2 spraakklonen op Mac

Voer VoxCPM2 lokaal uit op Apple Silicon met MLX om een stem te klonen of er een te ontwerpen uit een tekstbeschrijving. Dit OpenBMB-model produceert 48 kHz spraak in 30 talen. Luister naar de voorbeelden en probeer de CLI met de referentieopname en het transcript.

Audiomonsters · Kloon een stem met de CLI · VoxCPM2 vs Qwen3-TTS

Voice klonen monsters

Deze Engelse clips komen van de gepubliceerde FLEURS vergelijking. De referentie en gegenereerde spraak gebruiken verschillende zinnen. Elke uitvoer is één representatief monster; de vergelijking met de gemiddelde meerdere clips.

Referentie audioEngels · 16 kHz

Referentie transcript: Men kan zich alleen maar afvragen wat het toetsenbord zal worden als er iets nieuwser langskomt.

VoxCPM2 bf16 Engels · 48 kHz

Gegenereerde tekst: Terwijl hij in het ziekenhuis werkte, begon Liggins vroegtijdige bevallingen te onderzoeken tijdens zijn vrije tijd.

Qwen3-TTS Base 1.7B bf16 ICL Engels · 24 kHz

Gegenereerde tekst: Terwijl hij in het ziekenhuis werkte, begon Liggins vroegtijdige bevallingen te onderzoeken tijdens zijn vrije tijd.

Kloon een stem met de CLI

Download Reference audio als referentie.wav. Het commando gebruikt het exacte transcript; vervang zowel de opname als het transcript bij het gebruik van uw eigen stemmonster.

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

Wat het is.

Architectuur

Vijf samenwerkende componenten produceren een 48 kHz golfvorm:

Onderdeel Omschrijving
MiniCPM-4 base LM28-layer MiniCPM-4 met LongRoPE, GQA (16 Q / 2 KV-koppen, 128 hoofddim), en SwiGLU MLP. Voorwaarden voor teksttekens + audio latenten.
Resterende LM8-laag MiniCPM-4 variant zonder roterende inbeddingen. Verfijnt de basis LM verborgen toestand per gegenereerde audio patch.
FSQ + Lokale DiT-schattingScalar-gequantiseerde verborgen toestanden sturen een 12-laags Diffusion Transformer (V2) die werkt op 64-dim audio latentes in patches van 4. CFG-zero-ster Euler-oplosser, 10 tijdstappen standaard.
AudioVAE V2Causale convolutionale decoder. Leest 16 kHz referentie audio + zendt 48 kHz golfvorm (3× upsample gebakken in).
StopkopPer-stap binaire classifier op de LM verborgen toestand. Argmax = 1 eindigt generatie na minTokens patches.

Bundels

De huidige CLI ondersteunt bf16 en int8 bundels die zijn omgezet uit de upstream openbmb/VoxCPM2 controlepunt. Kwantisering is van toepassing op het taalmodel en de verspreidingsprojecties; de audio-decoder blijft bij volledige precisie.

BundelKwantisering GrootteHuggingFace
bf16 Geen (referentie)~5,0 GBaufklarer/VoxCPM2-MLX-bf16
int8MLX QuantizedLinear, groepsgrootte 64~ 3,0 GBaufklarer/VoxCPM2-MLX-int8

Ronde reis ASR (Qwen3-ASR 0.6B, 8-sentence harnas, M-serie Apple Silicon):

VariantWERRTF
bf162.04 %1.38
int80.00 %1.02
int4 (gepensioneerd)4.08 %0.83

De CLI standaard naar bf16; kies int8 voor een kleinere download. int4 is gepensioneerd en verschijnt alleen in de tabel als historische meting.

Snel starten

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

Selecteer de int8 bundel expliciet:

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

Stemontwerp (instructiegestuurd)

Geef een beschrijving van de natuurlijke taalstijl; de synthese van de modelomstandigheden zonder referentie-audiomonster:

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

Stemklonen

Klonen met één referentie van een 16 kHz-monoclip:

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
)

Ultieme klonen ..pas zowel referentie audio en het bijbehorende transcript, zodat de LM kan ook conditioneren op de lexicale context, behoud van prosody en accent meer trouw:

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

Vlaggen: --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 voor reproduceerbaare synthese.

VoxCPM2 vs Qwen3-TTS

Gepubliceerde Engelse resultaten voor tien FLEURS referentie/doelparen per model: gemiddelde WER en UTMOS, mediane RTF. Lagere WER and RTF zijn beter; UTMOS voorspelt natuurlijkheid en is geen menselijke rating. Deze resultaten niet het vaststellen van een universele rangschikking.

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

Volledige vergelijking en methodologie van vijftalige spraakklonen.

Selectie tussen speech-swift TTS modules

Kokoro-82MQwen3-TTSCosyVoice3VoxCPM2VibeVoice 1.5B
Params82M0,6 / 1,7 B0,5B2B1.5B
Monstersnelheid24 kHz24 kHz24 kHz48 kHz24 kHz
BackendCoreML (ANE)MLX, CoreMLMLXMLXMLX
Talen1010930NL + ZH
Stemontwerp Vaste instellingen——Instructiegestuurd—
Stemklonen—ICL-referentie Referentie nulschot Referentie + uiteindelijkRaw audio + transcript
Lange vorm Kort/middelgrootStreamingStreamingStreaming patchesOmhoog tot 90 min
Kies VoxCPM2 wanneer...

...je hebt 48 kHz uitvoer (muziek / uitzending toepassingen) of natuurlijk-taal spraakontwerp nodig zonder referentie clip. Voor de maximale kwaliteit van het Engels TTS met kleinere download, CosyVoice3 of Qwen3-TTS zijn lichter. Voor de lange-vorm podcast / audioboek in EN/ZH, VibeVoice 1.5B is doelgebouwd.

Verantwoordelijk gebruik

Voice klonen is inbegrepen. Verkrijg toestemming voor elke stem die je kloont en gebruik het model niet om individuen te imiteren, desinformatie te genereren of fraude te plegen. De volledige veiligheidsbegeleiding van openbmb/VoxCPM2 is van toepassing.

Lokale lokale gevolgtrekking

VoxCPM2 ondersteunt gewichtPrecisie: .float16 voor een niet-gequantiseerd controlepunt. Zijn belangrijkste parameters gebruiken FP16; AudioVAE en sommige berekeningen blijven FP32. INT8 controlepunten worden voor deze modus afgewezen.

Expliciet tokenizerDirectory loading maakt gebruik van geënsceneerde tokenizer-bestanden zonder ze te wijzigen of een aparte cache nodig te hebben. Incrementele spraak decodeert begrensde causale vensters met behoud van de AudioVAE linkercontext.

Speech with stream: true returns NDJSON audio events at 48 kHz, followed by done or error. Annuleren op verzoekID at /v1/inferentie/ancel. GET /v1/invloed/capaciteiten en /v1

API details