Maskinoversættelse · Engelsk original

VoxCPM2 stemme kloning på Mac

Kør VoxCPM2 lokalt på Apple Silicon med MLX for at klone en stemme eller designe en fra en tekstbeskrivelse. Denne OpenBMB-model producerer 48 kHz-tale i 30 sprog. Lyt til eksemplerne, og prøv derefter CLI med referencefejl og dens udskrift.

Lydprøver · Klone en stemme med CLI · VoxCPM2 vs Qwen3-TTS

Prøver til stemmekloning

Disse engelske klip kommer fra den offentliggjorte FLEURS sammenligning. Referencen og genereret tale bruger forskellige sætninger. Hver output er en repræsentativ prøve; sammenligningen måler gennemsnitlige multiple klip.

ReferencelydEngelsk · 16 kHz

Referenceudskrift: Man kan kun undre sig over, hvad tastaturet vil blive, når noget nyere kommer sammen.

VoxCPM2 bf16Engelsk · 48 kHz

Genereret tekst: Mens han arbejdede på hospitalet Liggins begyndte at undersøge for tidlig arbejdskraft i sin fritid.

Qwen3-TTS Base 1.7B bf16 ICLEngelsk · 24 kHz

Genereret tekst: Mens han arbejdede på hospitalet Liggins begyndte at undersøge for tidlig arbejdskraft i sin fritid.

Klone en stemme med CLI

Download Referencelyd som reference.wav. Kommandoen bruger sin nøjagtige udskrift; erstatter både optagelsen og udskriften, når du bruger din egen stemmeprøve.

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

Hvad er det?

Arkitektur

Fem samarbejdsvillige komponenter producerer en 48 kHz bølgeform:

KomponentVarebeskrivelse
MiniCPM-4 base LM28- layer MiniCPM-4 med LongRoPE, GQA (16 Q / 2 KV hoveder, 128 hoved dim), og SwiGLU MLP. Betingelser på tekst tokens + lyd latenter.
Resterende LM8- layer MiniCPM-4 variant uden roterende indlejringer. LM skjulte base tilstand pr. genereret lyd patch.
FSQ + lokal DIT estimatorScalar- kvantiserede skjulte tilstande køre en 12- lag Diffusion Transformer (V2), der opererer på 64-dim lyd latenter i patches af 4. CFG- zero- star Euler solver, 10 tidstrin standard.
AudioVAE V2Casusal convolutional dekoder. Læser 16 kHz reference audio + udsender 48 kHz bølgeform (3 × upsame bagt i).
StophovedPer- step binær klassifikator på LM skjult tilstand. Argmax = 1 slutter generation efter minTokens plastre.

Bundler

Den nuværende CLI understøtter bf16 og int8 bundter konverteret fra opstrøms openbmb / VoxCPM2 checkpoint. Kvantisering gælder for language-model og diffusion fremskrivninger; lyd dekoder forbliver på fuld præcision.

BundleKvantificeringStørrelseHuggingFace
bf16Ingen (reference)~ 5,0 GBaufklarer / VoxCPM2-MLX-bf16
int8MLX QuantizedLinear, gruppe- størrelse 64~ 3,0 GBaufklarer / VoxCPM2-MLX-int8

Round- trip ASR (Qwen3-ASR 0.6B, 8- sætning sele, M- serie Apple Silicon):

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

CLI standard til bf16; vælge int8 for en mindre download. int4 er pensioneret og vises i tabellen kun som en historisk måling.

Hurtig start

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

Vælg int8 bundt eksplicit:

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

Stemmedesign (instruktionsdrevet)

Beskriv en natursprog-stil; modellen betingelser syntese på det uden en reference audio prøve:

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

Stemmekloning

Single-reference kloning fra en 16 kHz monoklip:

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 kloning - passere både reference lyd og matchende udskrift, så LM kan også tilstand på den leksiske kontekst, bevare prosodi og accent mere trofast:

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: --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 for reproducerbar syntese.

VoxCPM2 vs Qwen3-TTS

Offentliggjort engelske resultater for ti FLEURS reference / mål par per model: gennemsnit WER og UTMOS, median RTF. Lower WER and RTF er bedre; UTMOS forudsiger naturlighed og er ikke en menneskelig rating. Disse resultater ikke etablere en universel ranking.

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

Fuld 5-sprog stemme-kloning sammenligning og metodologi.

Picking blandt speech-swift TTS moduler

Kokoro-82MQwen3-TTSCosyVoice3VoxCPM2VibeVoice 1.5B
Paramboler82M0.6 / 1.7 B0.5B2B1.5B
Stikprøverate24 kHz24 kHz24 kHz48 kHz24 kHz
BackendCoreML (AN)MLX, CoreMLMLXMLXMLX
Sprog1010930EN + ZH
StemmedesignFaste forudbetalinger——Instruktionsdrevet—
Stemmekloning—ICL-referenceZero- shot referenceReference + ultimativeRå lyd + udskrift
Long- formKort / mediumStreamingStreamingStreaming af patchesOp til 90 min.
Vælg VoxCPM2 når...

... du har brug for 48 kHz output (musik / broadcast applikationer) eller natursprog stemme design uden en reference clip. For maximum-kvalitet kortform engelsk TTS med mindre download, CosyVoice3 eller Qwen3-TTS er lettere. Til lang-form podcast / lydbog i EN / ZH, VibeVoice 1.5B er beregnet-bygget.

Ansvarlig anvendelse

Stemmekloning er inkluderet. Opnå samtykke til enhver stemme, du kloner og ikke bruge modellen til at foregive enkeltpersoner, generere misinformation, eller begå svig. Den fulde sikkerhedsvejledning fra openbmb / VoxCPM2 gælder.

Lokal indfødt inferens

VoxCPM2 understøtter vægtPræcision: .float16 for et ukvantiseret checkpoint. Dens vigtigste parametre bruger FP16; AudioVAE og nogle beregninger forbliver FP32. INT8 checkpoints afvises for denne tilstand.

Explicit MezzizerDirectory indlæsning bruger iscenesat files uden at ændre dem eller har brug for en separat cache. Inkrementel tale dekoder afgrænset årsagssammenhæng vinduer, mens du bevarer AudioVAE venstre sammenhæng.

Tale med stream: true returnerer NDJSON audio events på 48 kHz, efterfulgt af gjort eller fejl. Annullér af request at /v1/ inferens / aflys. GET /v1/ inferens / kapaciteter og /v1/ inferens / herkomst rapport model identiteter, parameter dtypes, aktiv pins, og memory counters.

API-oplysninger