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.
Referenceudskrift: Man kan kun undre sig over, hvad tastaturet vil blive, når noget nyere kommer sammen.
Genereret tekst: Mens han arbejdede på hospitalet Liggins begyndte at undersøge for tidlig arbejdskraft i sin fritid.
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?
- 48 kHz output - den eneste on- enhed motor i denne stak med studio sample rate. Alle andre TTS modul maxes på 24 kHz.
- Stemmedesign - natursprog stil kontrol:
--voxcpm2-instruct "young female voice, warm and gentle"Ingen af de andre motorer afslører dette. - Stemmekloning - enkelt- reference kloning fra et 16 kHz klip; "ultimative kloning" (reference audio + udskrift) for prosodykonservering.
- 30 sprog Engelsk, kinesisk, indonesisk, japansk, koreansk og meget mere.
- Apache 2.0 - modelvægte arver openbmb licens opstrøms; vores Swift port er den samme.
Arkitektur
Fem samarbejdsvillige komponenter producerer en 48 kHz bølgeform:
| Komponent | Varebeskrivelse |
|---|---|
| MiniCPM-4 base LM | 28- layer MiniCPM-4 med LongRoPE, GQA (16 Q / 2 KV hoveder, 128 hoved dim), og SwiGLU MLP. Betingelser på tekst tokens + lyd latenter. |
| Resterende LM | 8- layer MiniCPM-4 variant uden roterende indlejringer. LM skjulte base tilstand pr. genereret lyd patch. |
| FSQ + lokal DIT estimator | Scalar- 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 V2 | Casusal convolutional dekoder. Læser 16 kHz reference audio + udsender 48 kHz bølgeform (3 × upsame bagt i). |
| Stophoved | Per- 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.
| Bundle | Kvantificering | Størrelse | HuggingFace |
|---|---|---|---|
| bf16 | Ingen (reference) | ~ 5,0 GB | aufklarer / VoxCPM2-MLX-bf16 |
| int8 | MLX QuantizedLinear, gruppe- størrelse 64 | ~ 3,0 GB | aufklarer / VoxCPM2-MLX-int8 |
Round- trip ASR (Qwen3-ASR 0.6B, 8- sætning sele, M- serie Apple Silicon):
| Variant | WER | RTF |
|---|---|---|
| bf16 | 2.04 % | 1.38 |
| int8 | 0.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.
| Model | WER ↓ | RTF ↓ | UTMOS ↑ |
|---|---|---|---|
| VoxCPM2 bf16 | 1.8% | 1.11 | 2.97 |
| Qwen3-TTS Base 1.7B bf16 ICL | 2.4% | 1.70 | 3.50 |
Fuld 5-sprog stemme-kloning sammenligning og metodologi.
Picking blandt speech-swift TTS moduler
| Kokoro-82M | Qwen3-TTS | CosyVoice3 | VoxCPM2 | VibeVoice 1.5B | |
|---|---|---|---|---|---|
| Paramboler | 82M | 0.6 / 1.7 B | 0.5B | 2B | 1.5B |
| Stikprøverate | 24 kHz | 24 kHz | 24 kHz | 48 kHz | 24 kHz |
| Backend | CoreML (AN) | MLX, CoreML | MLX | MLX | MLX |
| Sprog | 10 | 10 | 9 | 30 | EN + ZH |
| Stemmedesign | Faste forudbetalinger | — | — | Instruktionsdrevet | — |
| Stemmekloning | — | ICL-reference | Zero- shot reference | Reference + ultimative | Rå lyd + udskrift |
| Long- form | Kort / medium | Streaming | Streaming | Streaming af patches | Op til 90 min. |
... 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.