Maskinoversettelse · Engelsk original
VoxCPM2 stemmekloning på Mac
Kjør VoxCPM2 lokalt på Apple Silicon med MLX for å klone en stemme eller designe en fra en tekstbeskrivelse. Denne OpenBMB-modellen produserer 48 kHz tale på 30 språk. Lytt til eksemplene, og prøv deretter CLI med referanseopptaket og transkripsjonen.
Lydprøver · Klone en stemme med CLI ·VoxCPM2 vs Qwen3-TTS
Stemmekloning prøver
Disse engelske klippene kommer fra den publiserte FLEURS-sammenligningen. Referansen og generert tale bruker forskjellige setninger. Hver utgang er en representativ prøve; sammenligningsmetrikkene i gjennomsnitt flere klipp.
Reference transkripsjon: En kan bare lure på hva tastaturet vil bli når noe nyere kommer med.
Opprettet tekst: Mens han jobbet på sykehuset Liggins begynte å undersøke for tidlig arbeid i fritiden.
Opprettet tekst: Mens han jobbet på sykehuset Liggins begynte å undersøke for tidlig arbeid i fritiden.
Klone en stemme med CLI
Last ned Reference audio som reference.wav. Kommandoen bruker sin nøyaktige transkripsjon; erstatte både opptak og transkripasjon når du bruker 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
Hva det er
- 48 kHz utgang - den eneste on-device motoren i denne stabelen med studio prøvehastighet. Alle andre TTS modul maxes ved 24 kHz.
- Voice design - naturlig språk stilkontroll:
--voxcpm2-instruct "young female voice, warm and gentle". Ingen av de andre motorene avslører dette. - Voksekloning - enkeltreferansekloning fra et 16 kHz-klip; -ultimatkloning - (referanselyd + transkripsjon) for prosodibevaring.
- 30 språk - Engelsk, kinesisk, indonesisk, japansk, koreansk og mer.
- Apache 2.0 - modellvekter arv oppstrøms openbmb-lisens; vår Swift port er den samme.
Arkitektur
Fem samarbeidende komponenter produserer en 48 kHz bølgeform:
| Komponent | Beskrivelse |
|---|---|
| MiniCPM-4 base LM | 28-lag MiniCPM-4 med LongRoPE, GQA (16 Q / 2 KV-hoder, 128 hodedim), og SwigLU MLP. Vilkår på tekstsymboler + lyd latenter. |
| Residens LM | 8-lag MiniCPM-4-variant uten roterende innesluttninger. Refenser basis LM skjult tilstand per generert lydpatch. |
| FSQ + Lokal DiT-estimator | Scalar-kvantiserte skjulte tilstander driver en 12-lags Diffusion Transformer (V2) som opererer på 64-dim lyd latenter i flekker på 4. CFG-null-stjerne Euler løser, 10 tidstrinn standard. |
| AudioVAE V2 | Causal konvolusjonell dekoder. Leser 16 kHz referanselyd + avgir 48 kHz bølgeform (3× oppprøve bakt i). |
| Stopp hodet | Per-trinn binær klassifier på LM skjult tilstand. Argmax = 1 sluttgenerasjon etter minTokens flekker. |
Bundles
Den nåværende CLI støtter bf16 og int8 pakker konvertert fra oppstrøms openbmb/VoxCPM2 kontrollpunkt. Kvantisering gjelder språkmodell- og diffusjonsprojeksjoner; lyddekoderen forblir i full presisjon.
| Bundle | Kvantisering | Størrelse | HuggingFace |
|---|---|---|---|
| bf16 | Ingen (referanse) | ~5.0 GB | aufklarer/VoxCPM2-MLX-bf16 |
| int8 | MLX QuantizedLinear, gruppestørrelse 64 | ~3.0 GB | aufklarer/VoxCPM2-MLX-int8 |
Rundstripe ASR (Qwen3-ASR 0.6B, 8-sentens sele, M-serien Apple Silicon):
| Variant | WER | RTF |
|---|---|---|
| bf16 | 2.04 % | 1.38 |
| int8 | 0.00 % | 1.02 |
| int4 (tilrettelagt) | 4.08 % | 0.83 |
CLI-standardene til bf16; velg int8 for en mindre nedlasting. int4 er pensjonert og vises i tabellen bare som en historisk måling.
Rask 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
Velg int8 pakke eksplisitt:
let tts = try await VoxCPM2TTSModel.fromPretrained(
modelId: "aufklarer/VoxCPM2-MLX-int8"
)
Stemmedesign (instrumentdrevet)
Send en naturlig språklig stilbeskrivelse; modellbetingelser syntese på den uten referanselydprøve:
let audio = try await tts.generateVoxCPM2(
text: "Welcome to the show.",
instruct: "A young woman, gentle and warm voice."
)
Stemmekloning
Enkeltreferansekloning fra et 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 referanselyd og den matchende transkripsjonen slik at LM kan også tilstand på den leksiske konteksten, bevare prosodi og aksent mer 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
Flagg: --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
Publisert Engelsk Results for 10 FLEURS referanse/målpar per modell: gjennomsnittlig WER og UTMOS, median RTF. Nedre WER og RTF er bedre; UTMOS Forutsi naturlighet og er ikke en menneskelig vurdering. Disse resultatene ikke etablerer en universell rangering.
| Modell | WER ↓ | RTF ↓ | UTMOS ↑ |
|---|---|---|---|
| VoxCPM2 bf16 | 1.8% | 1.11 | 2.97 |
| Qwen3-TTS Base 1.7B bf16 ICL | 2.4% | 1.70 | 3.50 |
Fyll femspråklig stemme-kloning sammenligning og metode.
Velg blant speech-swift TTS moduler
| Kokoro-82M | Qwen3-TTS | CosyVoice3 | VoxCPM2 | VibeVoice 1.5B | |
|---|---|---|---|---|---|
| Params | 82M | 0.6 / 1.7 B | 0.5B | 2B | 1,5B |
| Samplingsrate | 24 kHz | 24 kHz | 24 kHz | 48 kHz | 24 kHz |
| Motor | CoreML (ANE) | MLX, CoreML | MLX | MLX | MLX |
| Språk | 10 | 10 | 9 | 30 | EN + ZH |
| Stemmedesign | Faste forvalg | — | — | Instruksjon-drevet | — |
| Stemmekloning | — | ICL referanse | Zero-shot referanse | Referanse + ultimate | Rå lyd + transkripsjon |
| Langform | Kort/medium | Streaming | Streaming | Strømming av flekker | Opp til 90 min |
... du trenger 48 kHz-utgang (musikk / kringkast programmer) eller naturlig-språklig stemmedesign uten referanseklipp. For maksimal kvalitet kortform engelsk TTS med mindre nedlasting, CosyVoice3 eller Qwen3-TTS er lettere. For langvarig podcast / lydbok i EN/ZH, VibeVoice 1.5B er hensiktsbygd.
Ansvarlig bruk
Stemmekloning er inkludert. Få samtykke til enhver stemme du kloner og ikke bruk modellen til å personifisere enkeltpersoner, generere desinformation eller begå svindel. Den fulle sikkerhetsveiledningen fra openbmb/VoxCPM2 gjelder.
Lokalt innfødt inferens
VoxCPM2 støtter vektpresisjon: .float16 for et ukvantisert kontrollpunkt. Hovedparametrene bruker FP16; AudioVAE og noen beregninger forblir FP32. INT8 kontrollpunkter blir avvist for denne modusen.
Explicit tokenizerDirectory lasting bruker arrangerte polenizer-filer uten å endre dem eller trenger en separat cache. hevet tale dekoder avgrenset årsaksvinduer mens du beholder AudioVAE venstre kontekst.
Tal med stream: ekte returnerer NDJSON-lydhendelser ved 48 kHz, etterfulgt av gjort eller feil. Avbryt ved forespørselID på /v1/inferens/cancel. GET /v1/inference/capabilities og /v1