Traducere automată · Originalul în engleză
VoxCPM2 clonarea vocii la Mac
Rulați VoxCPM2 local pe Apple Silicon cu MLX pentru a clona o voce sau un design dintr-o descriere a textului. Acest model OpenBMB produce un discurs de 48 kHz în 30 de limbi. Ascultați exemplele, apoi încercați CLI cu înregistrarea de referință și transcrierea sa.
Probe audio · Clone a voice with the CLI · VoxCPM2 vs Qwen3-TTS
Mostre de clonare vocală
Aceste clipuri engleze provin din comparaţia publicată FLEURS. Referinţa şi speech-ul generat folosesc fraze diferite. Fiecare ieşire este un eşantion reprezentativ; media datelor comparative este de mai multe clipuri.
Reference transcription: One can only wonder what the tastature will become when something newly comes along.
Text generat: În timp ce lucra la spitalul liggins a început să investigheze travaliu prematur în timpul său liber.
Text generat: În timp ce lucra la spitalul liggins a început să investigheze travaliu prematur în timpul său liber.
Clone o voce cu CLI
Descarca Reference audio as reference.wav. Comanda foloseste transcrierea exacta; inlocuieste atat inregistrarea cat si transcrierea cand folosesti propriul esantion vocal.
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
Ce este?
- Putere 48 kHz Singurul motor pe suport de hârtie din acest stiva cu rata de eșantionare studio. Toate celelalte module TTS maxează la 24 kHz.
- Proiectarea vocii Control stil natural:
--voxcpm2-instruct "young female voice, warm and gentle"Nici unul dintre celelalte motoare nu expune asta. - Clonarea vocală clonarea cu o singură referință dintr-un clip 16 kHz; "clonarea finală" (referință audio + transcriere) pentru conservarea prozodiei.
- 30 de limbi English, Chinese, Indonezian, Japonez, Coreean, și mai mult. Auto-detectat de text.
- Apache 2.0 bază de date pentru fiecare tip de date; Swift Portul e la fel.
Arhitectură
Cinci componente care au cooperat produc o formă de undă de 48 kHz:
| Componentă | Descriere |
|---|---|
| MiniCPM-4 bază LM | 28-strat MiniCPM-4 cu LongRoPE, GQA (16 Q / 2 KV capete, 128 dim cap) și SwiGLU MLP. Condiții privind jetoanele text + latente audio. |
| LM reziduală | 8-strat MiniCPM-4 variantă fără înglobări rotative. Refiniază starea LM de bază ascunsă per plasture audio generat. |
| Estimator FSQ + DiT local | Scalar-quantized hidden states drive a 12-layer Difuzion Transformer (V2) care funcționează pe latente audio 64-dim în patch-uri de 4. CFG-zero-star Euler rezolvator, 10 timesteps implicit. |
| AudioVAE V2 | Decodor convoluțional cauzal. Reads 16 kHz audio de referință + emite 48 kHz valform (3× sus eșantion coapte în). |
| Opreşte capul. | Clasificator binar pe trepte pe starea ascunsă LM. Argmax = 1 generaţie se termină după minTokens patch-uri. |
Bundles
Actualul pachet CLI suportă bf16 și int8 pachete convertite din amonte openbmb/VoxCPM2 punct de control. Cuantizarea se aplică proiecțiilor de model lingvistic și difuzie; decodorul audio rămâne la o precizie completă.
| BundleCity in Germany | Cuantificare | Dimensiune | HuggingFace |
|---|---|---|---|
| bf16 | Niciuna (referință) | ~5.0 GB | aufklarer/VoxCPM2-MLX-bf16 |
| int8 | MLX CuantizatLinear, dimensiunea grupului 64 | ~3.0 GB | aufklater/VoxCPM2-MLX-int8 |
Excursie rotundă ASR (Qwen3-ASR 0,6B, 8-secvență ham, M-series Apple Silicon):
| Variantă | WER | RTF |
|---|---|---|
| bf16 | 2.04 % | 1.38 |
| int8 | 0.00 % | 1.02 |
| int4 (pensionat) | 4.08 % | 0.83 |
CLI implicit la bf16; alege int8 pentru o descărcare mai mică. int4 este pensionat și apare în tabel doar ca măsură istorică.
Start rapid
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
Alegeți pachetul int8 explicit:
let tts = try await VoxCPM2TTSModel.fromPretrained(
modelId: "aufklarer/VoxCPM2-MLX-int8"
)
Proiectare vocală (orientată cu structură)
Se trece o descriere stil natural; model conditii sinteza pe ea fără un eșantion audio de referinţă:
let audio = try await tts.generateVoxCPM2(
text: "Welcome to the show.",
instruct: "A young woman, gentle and warm voice."
)
Clonare vocală
Clonarea cu o singură referință dintr-un monoclip de 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 clonarea bază atât audio de referinţă şi transcrierea de potrivire astfel încât LM poate condiţiona, de asemenea, cu privire la contextul lexic, păstrarea prozodie şi accent mai fidel:
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
Steaguri: --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 pentru sinteza reproductibilă.
VoxCPM2 vs Qwen3-TTS
Rezultatele publicate în limba engleză pentru zece FLEURS de referință / perechi țintă pe model: medie WER și UTMOS, mediana RTF. Mai jos WER si RTF sunt mai bune; UTMOS prezice naturalețea și nu este un rating uman. Aceste rezultate nu stabilesc un rang universal.
| Model | WER ↓ | RTF ↓ | UTMOS ↑ |
|---|---|---|---|
| VoxCPM2 bf16 | 1.8% | 1.11 | 2.97 |
| Qwen3-TTS Baza 1.7B bf16 ICL | 2.4% | 1.70 | 3.50 |
Comparație și metodologie a clonării vocale în cinci limbi .
Culegerea între modulele speech-swift TTS
| Kokoro-82M | Qwen3-TTS | CosyVoice3 | VoxCPM2 | VibeVoice 1.5B | |
|---|---|---|---|---|---|
| Paramele | 82M | 0.6 / 1.7 B | 0.5B | 2B | 1.5B |
| Rata de eșantionare | 24 kHz | 24 kHz | 24 kHz | 48 kHz | 24 kHz |
| Platformă | CoreML (ANE) | MLX, CoreML | MLX | MLX | MLX |
| Limbi | 10 | 10 | 9 | 30 | RO + ZH |
| Proiectarea vocii | Presetări fixe | — | — | Instrucţiuni bazate | — |
| Clonare vocală | — | Referinţă ICL | Trimitere la zero | Referință + final | audio brut + transcriere |
| Forma lungă | Scurt/mediu | Streaming | Streaming | Plasturii de streaming | Până la 90 min |
... aveți nevoie de o ieșire de 48 kHz (muzica / aplicații de difuzare) sau de un design vocal natural fără un clip de referință. Pentru o formă scurtă de calitate English TTS cu descărcare mai mică, CosyVoice3 sau Qwen3-TTS sunt mai ușoare.Pentru podcast de lungă formă / audiobook în EN/ZH, VibeVoice 1.5B este construit în scop.
Utilizare responsabilă
Clonarea vocală este inclusă. Obțineți consimțământul pentru orice voce pe care o clonați și nu utilizați modelul pentru a imita persoane fizice, a genera dezinformare sau a comite fraudă. Se aplică ghidul complet de siguranță de la openbmb/VoxCPM2 .
Inference locală nativă
VoxCPM2 suportă greutateaPrecizie: .float16 pentru un punct de control nequantizat. Pentru acest mod, parametrii principali utilizați FP16; AudioVAE și unele calcule rămân FP32. INT8 punctele de verificare sunt respinse.
Tokenizer ExplicitÎncărcare Directoral folosește fișiere tokenizer înscenate fără a le modifica sau a avea nevoie de un cache separat. Decoduri de vorbire interpretative delimitate ferestre cauzale în timp ce menținerea contextului din stânga AudioVAE.
Discursul cu flux: adevărat întoarce NDJSON evenimente audio la 48 kHz, urmat de făcut sau eroare. Anulați prin cerereID la /v1/inferință/cancel. GET /v1/inference/capabilități și /v1