Konekäännös · Englanninkielinen alkuperäinen
VoxCPM2 äänikloonaus Mac
Suorita VoxCPM2 paikallisesti Apple Silicon MLX kloonataksesi äänen tai suunnitellaksesi yhden tekstikuvauksesta. Tämä OpenBMB-malli tuottaa 48 kHz:n puheen 30 kielellä. Kuuntele esimerkkejä, kokeile sitten CLI-ohjelmaa viitenauhoituksella ja sen transkriptiolla.
Ääninäytteet · Kääntä CLI · VoxCPM2 vs Qwen3-TTS
Äänen kloonausnäytteet
Nämä englanninleikkeet ovat peräisin julkaistusta FLEURS -vertailusta. Viite ja generoitu puhe käyttävät eri lauseita. Jokainen tuotos on yksi edustava näyte; vertailumittareiden keskiarvo on useita leikkeitä.
Reference transkripti: Voit vain ihmetellä, mikä näppäimistöstä tulee, kun jotain uudempaa tulee.
Generoitu teksti: Kun hän työskenteli sairaalassa, Liggins alkoi tutkia ennenaikaista työtä vapaa-aikanaan.
Generoitu teksti: Kun hän työskenteli sairaalassa, Liggins alkoi tutkia ennenaikaista työtä vapaa-aikanaan.
Kloonaa ääni CLI:n kanssa
Lataa Reference audio referenssiksi.wav. Komento käyttää tarkkaa transkriptiotaan; korvaa sekä nauhoituksen että transkription, kun käytät omaa ääninäytettäsi.
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
Mitä se on?
- 48:n lähtö Kaikki muut TTS-moduulin maksimit ovat 24 kHz.
- Äänen suunnittelu ... .. luonnonkielen tyylin ohjaus:
--voxcpm2-instruct "young female voice, warm and gentle". Mikään muista moottoreista ei paljasta tätä. - Äänen kloonaus 16 kHz:n leikkeen yhden vertailukloonaaminen; "viimeinen kloonaus" (viiteääni + transkripti) prosodynaamisen säilyvyyden varmistamiseksi.
- 30 kieltä englanti, kiina, indonesia, japani, korea ja paljon muuta.
- Apache 2,0 ... Mallipainot perivät ylävirtaan ulottuvan avoimen sivun lisenssin; Swift -portti on sama.
Arkkitehtuuri
Viisi yhteistyössä toiminutta osaa tuottaa 48 kHz:n aaltomuodon:
| Osa | Tavaran kuvaus |
|---|---|
| MiniCPM-4 perus LM | 28-kerros MiniCPM-4 LongRoPE:llä, GQA:lla (16 Q / 2 KV:n päätä, 128 päätä, ja SwiGLU MLP:llä. |
| LM-jäännös | 8-kerros MiniCPM-4 variantti, jossa ei ole pyöriviä upotuksia. Refleksit perus LM piilotettu tila per luotu audio laastari. |
| FSQ + paikallinen diT-estimaattori | Scalar-määrälliset piilotilat ajaa 12-kerroksinen diffuusio Muuntaja (V2) toimii 64-dim ääni latentteja laastarit 4 CFG-nolla-tähden Euler ratkaisija, 10 aikaaskelia oletus. |
| AudioVAE V2 | Syyllinen konvolutionaalinen dekooderi. Luetaan 16 kHz referenssiääni + säteilee 48 kHz aaltomuotoa (3× ylös näyte paistettu). |
| Pysäytä | Per-askel binääriluokitus LM piilotettu tila. Argmax = 1 päättyy sukupolven jälkeen minTokens laastarit. |
Bundles.
Nykyinen CLI tukee bf16 ja int8 nippuja, jotka on muunnettu yläjuoksulta openbmb/VoxCPM2 tarkastuspiste. Kvanttisointia sovelletaan kielimalliin ja diffuusio-ennusteisiin; audiodekooderi pysyy täysin tarkkuudella.
| Bundle | Määrä | Koko | HuggingFace |
|---|---|---|---|
| bf16 | Ei mitään (viite) | ~5,0 GB | aufklarer/VoxCPM2-MLX-bf16 |
| int8 | MLX QuantizedLinear, ryhmän koko 64 | ~3,0 GB | aufklarer/VoxCPM2-MLX-int8 |
Pyöreän matkan ASR (Qwen3-ASR 0.6B, 8-senttivaljakko, M-sarjan Apple Silicon):
| Variantti | WER | RTF |
|---|---|---|
| bf16 | 2.04 % | 1.38 |
| int8 | 0.00 % | 1.02 |
| int4 (eläkkeellä) | 4.08 % | 0.83 |
CLI:n oletusarvot bf16; valitse int8 pienemmästä ladannasta. int4 jää eläkkeelle ja näkyy taulukossa ainoastaan historiallisena mittauksena.
Nopea aloitus
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
Valitse int8 nippu selkeästi:
let tts = try await VoxCPM2TTSModel.fromPretrained(
modelId: "aufklarer/VoxCPM2-MLX-int8"
)
Äänen suunnittelu (ohjeistukseen perustuva)
Ohita luonnollisen kielen tyyli kuvaus; malli olosuhteet synteesi ilman viite audio näyte:
let audio = try await tts.generateVoxCPM2(
text: "Welcome to the show.",
instruct: "A young woman, gentle and warm voice."
)
Äänen kloonaus
Yhden vertailukloonaaminen 16 kHz:n monoliittileikkeestä:
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
)
Lopullinen kloonaaminen ... läpäise sekä referenssiääni ja matching transkript, jotta LM voi myös ehdollistaa leksical context, säilyttäen prosodia ja aksentti enemmän uskollisesti:
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
)
KLI
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
Liput: --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 toistettavissa olevan synteesin osalta.
VoxCPM2 vs Qwen3-TTS
Julkaistu englanninkielisiä tuloksia kymmenen FLEURS referenssi-/kohdeparin mallista: keskiarvo WER ja UTMOS, mediaani RTF. Lower WER and RTF ovat parempia; UTMOS ennustaa luonnollisuutta eikä ole ihmisen luokitus. Nämä tulokset eivät määritä universaalia sijoitusta.
| Malli | WER ↓ | RTF ↓ | UTMOS ↑ |
|---|---|---|---|
| VoxCPM2 bf16 | 1.8% | 1.11 | 2.97 |
| Qwen3-TTS Perus 1.7B bf16 ICL | 2.4% | 1.70 | 3.50 |
Täysi viiden kielen vertailu ja menetelmä .
Valinnat speech-swift TTS -moduulien välillä
| Kokoro-82M | Qwen3-TTS | CosyVoice3 | VoxCPM2 | VibeVoice 1.5B | |
|---|---|---|---|---|---|
| Paraateja | 82M | 0.6 / 1.7 B | 0.5B | 2B | 1,5B |
| Näytteenottotaajuus | 24 kHz | 24 kHz | 24 kHz | 48 kHz | 24 kHz |
| Taustaosa | CoreML (ANE) | MLX, CoreML | MLX | MLX | MLX |
| Kieli | 10 | 10 | 9 | 30 | FI + ZH |
| Äänisuunnittelu | Kiinteät esiasetukset | — | — | Ohjeisiin perustuva | — |
| Äänen kloonaus | — | ICL-viittaus | Nollaiskun viite | Viite + lopullinen | Raw audio + transkriptio |
| Pitkänomainen | Lyhyt/keskisuuri | Virtaaminen | Virtaaminen | Laastarit | Päätä 90 min |
...Tarvitset 48 kHz:n ulostulon (musiikki- ja lähetyssovellukset) tai luonnollisen kielen äänisuunnittelun ilman referenssileikkeitä. Jotta maksimaalinen lyhytmuotoinen englanti TTS pienemmällä latauksella, CosyVoice3 tai Qwen3-TTS ovat kevyempiä. Pitkämuotoista podcastia / äänikirjaa varten EN/ZH:ssa VibeVoice 1.5B on tarkoitus rakennettu.
Vastuullinen käyttö
Äänen kloonaus on mukana. Saat suostumuksen kaikille ääni kloonaat ja älä käytä mallia esittää yksilöitä, tuottaa vääriä tietoja, tai syyllistyä petoksiin. openbmb/VoxCPM2 sovelletaan.
Paikallinen syntyperäinen päätelmä
VoxCPM2 tukee painoaPuhtaus: .float16 kvantitatiivisen tarkistuspisteen osalta. Sen pääparametrit käyttävät FP16; AudioVAE ja jotkin laskelmat pysyvät FP32. INT8 tarkastuspisteet hylätään tässä tilassa.
Eksplicity tokenizerDirector Lataaminen käyttää lavastettu tokeneizer tiedostoja muuttamatta niitä tai tarvitset erillisen välimuistin. Incremental puhe decodes rajoittaa syy-ikkunat säilyttäen AudioVAE vasemmalle yhteydessä.
Puhe virralla: tosi palauttaa NDJSONin äänitapahtumat 48 kHz:ssä, minkä jälkeen on tehty tai virhe. Peruuta pyynnöstäID osoitteessa /v1/ference/cancel. GET /v1/ferenssi/voimakkuus ja/v1