Strojový překlad · Anglický originál
VoxCPM2 hlasové klonování na Mac
VoxCPM2 lokálně spusťte na Apple Silicon se MLX pro klonování hlasu nebo designu z textového popisu. Model OpenBMB produkuje řeč 48 kHz v jazycích 30. Poslechněte si příklady, pak zkuste CLI s referenčním záznamem a jeho přepisem.
Vzorky zvuku · Klone hlas s CLI · VoxCPM2 vs Qwen3-TTS
Vzorky hlasového klonování
Tyto anglické klipy pocházejí z publikovaného srovnání FLEURS. Referenční a generované řeči používají různé věty. Každý výstup je jeden reprezentativní vzorek; srovnání metriky průměr více klipů.
Referenční přepis: Člověk se může jen divit, co se stane klávesnicí, když se objeví něco nového.
Generovaný text: Zatímco on pracoval v nemocnici Liggins začal vyšetřovat předčasnou práci během jeho volného času.
Generovaný text: Zatímco on pracoval v nemocnici Liggins začal vyšetřovat předčasnou práci během jeho volného času.
Klone hlas s CLI
Stáhnout Referenční audio jako reference.wav Příkaz používá svůj přesný přepis; při použití vlastního hlasového vzorku nahrazuje záznam i přepis.
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
Co to je?
- Výstup 48 kHz - jediný motor na zařízení v tomto zásobníku se vzorkovací rychlostí studia. Každý další modul TTS maxuje na 24 kHz.
- Hlasová konstrukce - řízení přirozeného jazyka:
--voxcpm2-instruct "young female voice, warm and gentle"Žádný z ostatních motorů to neodhalí. - Hlasové klonování - jednosměrné klonování z klipu 16 kHz; "konečné klonování" (referenční audio + přepis) pro prosody reserve.
- 30 jazyky - Angličtina, čínština, indonéština, japonština, korejština, a další. Automaticky detekován z textu.
- Apache 2.0 - model závaží zdědí předního openbmb licence; náš Swift port je stejný.
Architektura
Pět spolupracujících komponentů produkuje 48 kHz vlnovou formu:
| Součást | Popis |
|---|---|
| MiniCPM-4 základna LM | 28- layer MiniCPM-4 with LongRoPE, GQA (16 Q / 2 KV heads, 128 head dim), a SwiGLU MLP. Podmínky pro textové tokens + zvukové latenty. |
| Zbytková LM | 8- layer MiniCPM-4 varianta bez rotačních embeddings. Refinuje základní LM skrytý stav na generovaný audio patch. |
| FSQ + místní odhad DiT | Skalar- kvantifikované skryté stavy řídit 12-vrstva Difuzní transformátor (V2) v provozu 64-dim audio latenty v náplastech 4. CFG- zero-star Euler řešitel, 10 Časové kroky výchozí. |
| Audiovie V2 | Příčinná konvoluční dekodér. Čte 16 kHz referenční zvuk + emituje 48 kHz vlnovou formu (3 × upvzort zapečený). |
| Zastavit hlavu | Per- step binární klasifikátor na LM skrytý stav. Argmax = 1 končí generace po minTokens náplasti. |
Svazky
Aktuální CLI podporuje bf16 a int8 svazky konvertované z proti proudu openbmb / VoxCPM2 kontrolní bod. Kvantizace se vztahuje na jazykový model a difúzní projekce; audio dekodér zůstává v plné přesnosti.
| BundCity in New York USA | Kvantizace | Velikost | HuggingFace |
|---|---|---|---|
| bf16 | Žádné (odkaz) | ~ 5.0 GB | aufklarer / VoxCPM2-MLX-bf16 |
| int8 | MLX QuantizedLinear, velikost skupiny 64 | ~ 3.0 GB | aufklarer / VoxCPM2-MLX-int8 |
Round- trip ASR (Qwen3-ASR 0.6B, 8-document seat, M-series Apple Silicon):
| Varianta | WER | RTF |
|---|---|---|
| bf16 | 2.04 % | 1.38 |
| int8 | 0.00 % | 1.02 |
| int4 (v důchodu) | 4.08 % | 0.83 |
CLI selže na bf16; zvolte int8 pro menší stahování. int4 je v důchodu a v tabulce se objevuje pouze jako historické měření.
Rychlý 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
Zvolte výslovně int8 svazek:
let tts = try await VoxCPM2TTSModel.fromPretrained(
modelId: "aufklarer/VoxCPM2-MLX-int8"
)
Hlasová konstrukce (řízená instrukcemi)
Projít natural-jazyk styl popis; model podmínek syntézy na něm bez referenčního zvukového vzorku:
let audio = try await tts.generateVoxCPM2(
text: "Welcome to the show.",
instruct: "A young woman, gentle and warm voice."
)
Klonování hlasu
Jednosměrné klonování z monoklipu 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 klonování - projít jak referenční zvuk a odpovídající přepis tak LM může také podmínit na lexikální kontext, zachování prosodie a přízvuk věrněji:
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
Vlajky: --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 pro reprodukovatelnou syntézu.
VoxCPM2 vs Qwen3-TTS
Zveřejněné anglické výsledky pro deset FLEURS reference / cílové dvojice na model: průměr WER a UTMOS, medián RTF. Dolní WER i RTF jsou lepší; UTMOS předpovídá přirozenost a není lidským hodnocením. Tyto výsledky nezakládají univerzální pořadí.
| Vzor | WER ↓ | RTF ↓ | UTMOS ↑ |
|---|---|---|---|
| VoxCPM2 bf16 | 1.8% | 1.11 | 2.97 |
| Qwen3-TTS Base 1.7B bf16 ICL | 2.4% | 1.70 | 3.50 |
Plné pětijazyčné hlasové-klonování srovnání a metodika.
Výběr mezi moduly speech-swift TTS
| Kokoro-82M | Qwen3-TTS | CosyVoice3 | VoxCPM2 | VibeVoice 1.5B | |
|---|---|---|---|---|---|
| Params | 82M | 0.6 / 1.7 B | 0.5B | 2B | 1.5B |
| Vzorkovací rychlost | 24 kHz | 24 kHz | 24 kHz | 48 kHz | 24 kHz |
| Backend | CoreML (ANE) | MLX, CoreML | MLX | MLX | MLX |
| Jazyky | 10 | 10 | 9 | 30 | EN + ZH |
| Hlasová konstrukce | Pevné předvolby | — | — | Instruction- dirigované | — |
| Klonování hlasu | — | Odkaz na ICL | Odkaz na Zeroshot | Referenční + konečné | Raw audio + přepis |
| Dlouhá forma | Krátká / střední | Streaming | Streaming | Streamingové náplasti | Až do 90 min. |
... potřebujete výstup 48 kHz (hudební / vysílací aplikace) nebo natural-jazyk hlasový design bez referenčního klipu. Pro maximální kvalitu short-forma angličtina TTS s menším stažením, CosyVoice3 nebo Qwen3-TTS jsou světlejší. Pro dlouhé formy podcast / audiobook v EN / ZH, VibeVoice 1.5B je záměrně postaven.
Odpovědné použití
Je součástí hlasového klonování. Získejte souhlas pro jakýkoli hlas klonování a nepoužívejte model k napodobování jednotlivců, generovat dezinformace, nebo spáchat podvod. openbmb / VoxCPM2 platí.
Místní rodný odvod
VoxCPM2 podporuje váhový Přesnost: .float16 pro nekvantifikovaný kontrolní bod. Jeho hlavní parametry používají FP16; AudiovAE a některé výpočty zůstávají FP32. INT8 kontrolní body jsou pro tento režim zamítnuty.
Explicitní tokenizerDirectory nahrávání používá nahrané tokenizer soubory bez jejich modifikace nebo potřeby samostatné cache. Inkrementální řeč dekóduje ohraničená příčinná okna při zachování Audioviser levé kontext.
Proslov s proudem: pravda vrací NDJSON audio události na 48 kHz, následováno dokončením nebo chybou. Zrušit requestID na /v1/ odvod / zrušit. GET /v1/ inference / schopnosti a /v1/ inference / provenance report model identity, parametr dtypes, spony aktiv, a paměťové čítače.