Cloning a stemme ved 48 kHz
med VoxCPM2.
En ny TTS-modell har nettopp landet i Soniqo. Den kjører på din bærbare datamaskin, gir ut studio-kvalitet 48 kHz-lyd, og klonerer en stemme fra et enkelt kort klipp. Dette innlegget går gjennom det du kan bygge med det, de tre måtene det lar deg klone en stemme, og en vennlig titt på hvordan modellen fungerer inne.
Fire ting som endres når kloning går lokalt.
Running kloning på enheten låser opp fire egenskaper på én gang - personvern, offline bruk, ingen per-samtale kostnad og full tale eierskap. Hver av disse åpner en klasse av produkt som er vanskelig å bygge noen annen måte.
Opptak 30 sekunder av en forelderlesing. Lydbok-appen forteller så ethvert kapittel i stemmen sin - samme varme, samme aksent, lokalt generert hver sesjon.
YouTubers og podcasters holder en konsekvent stemme på 30 språk. Record en gang på engelsk, skip den samme episoden på japansk, spansk og hindi uten vokal.
Folk som står overfor stemmetap kan banke stemmen i et kort klipp og fortsette å snakke gjennom hjelpeteknologi som høres ut som dem - ikke som en generisk TTS motor.
Beskriv stemmen du vil ha - - - unge kvinne, mild og varm - - og modellen designer den uten referanseopptak. Nyttig for spillet NPCs, kiosk spør, eller A / B test merker stemmer.
Hvordan VoxCPM2 sammenlignes med ElevenLabs.
ElevenLabs er det åpenbare cloud-API-alternativet. Det er det som kjører der - og som eier stemmen etterpå.
For produkter som trenger personvernsgarantier, offline drift, eller null per telefon kostnad, on-device kloning er det eneste alternativet - hver ElevenLabs-samtale uploader lyd til sine servere.
| VoxCPM2 (Soniqo) | ElevenLabs | |
|---|---|---|
| Hvor den kjører | På brukerens enhet | Vert API |
| Lyd forlater enheten | Nei | Ja (opplastet til ElevenLabs) |
| Frakoblet bruk | Ja | Nei (krever Internett) |
| Per-samtalekostnader | Ingen | Per-karakter fakturering |
| Modelllisens | Apache 2.0, åpne vekter | Foreløpig, kun SaaS |
| Maks utgangsprøvehastighet | 48 kHz innfødt | 48 kHz (Pro-nivå og høyere) |
| Språk | 30 | 29 (Multikulær v2) · 70+ (Eleven v3) |
| Referanseklipp som kreves | 5-30 s | 1 min (Instant) · 30 min (Profesjonell) |
| Stemmedesign fra tekst | Ja | Ja |
Begge motorene når 48 kHz; begge støtter et lignende språk som spres for daglig kloning; begge eksponere stemmedesign fra en tekstbeskrivelse. Den ekte forskjellen er om lyden noensinne forlater enheten.
En modell, tre veier inn.
Modellen er den samme i alle samtaler. Hvilke endringer er hvilke argumenter du passerer - som bestemmer om du utformer en stemme fra en beskrivelse, kopierer en registrert eller bevarer en aksent.
Beskriv stemmen i naturlig språk. Modellen velger en matchende stemme og holder seg konsekvent på tvers av samtaler.
let audio = try await tts.generateVoxCPM2(
text: "Welcome to the show.",
instruct: "A young woman, gentle and warm voice."
)Pass alle 5-30 s ren tale. Modellen kopierer timbre og rytme og synteser ny tekst i den stemmen.
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
)Pass klippet OG dets transkripsjon. Modellen kan nå linje opp akustiske funksjoner med fonems - aksent og vokalvalg bære gjennom.
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
)Den samme inngangssporet, fylt med forskjellige stykker. Modellen ser aldri et flagg - den leser sekvensen.
Hvordan VoxCPM2 produserer lyd.
Fire samarbeidsmoduler. Du trenger ikke å vite noe av dette for å bruke modellen, men hvis du er nysgjerrig på hvor 48 kHz kommer fra - her er det.
Rørledningen starter med en lokal koder (LocEnc) som sikringer teksttoken og (valgfritt) referanselyd i en strøm av vektorer. Den strømmer feeds TSLM — en 28-lags MiniCPM-4 språkmodell som bestemmer hvilken lyd-patch - bør komme neste, på samme måte velger en tekst LM det neste token. En andre passerer gjennom RALM raffinererer hver patch.
Opp til dette punktet er alt en transformator. Det interessante vridet er LocDiT: i stedet for å velge fra et fast ordforråd med diskrete lydsymboler, kjører det en liten diffusjonsprosessen for å male lydlatent i hver spilleautomat. Ingen diskret kodek betyr ingen kvantiseringsflaskhals - som er det som lar sluttstadiet, AudioVAE V2, dekode rett til 48 kHz. Alle andre on-device motor i denne stabeltoppene ut på 24 kHz .
Splittingen er verdt å merke seg: den autoregressive LM er bra på å bestemme hva som skal komme neste (innhold, rytme, lengde); diffusjonshodet er flott på å male akustiske detaljer (fase, spektrum). VoxCPM2 lar hver gjøre det som det er bra på. Det er derfor modellen holder sin egen på bare 2B parametere - arkitekturen tjener den perceptuelle kvaliteten, ikke størrelsen.
Les den opprinnelige forskningen.
Tre størrelser. Velg med diskbudsjettet.
Alle tre pakker kjører den samme arkitekturen; de skiller seg bare i hvor aggressivt språkmodellen er kvantisert. int8 bunten er den anbefalte standard - den matcher oppstrøms Python rørledningen på 8-sentens runde-trip- benchmark mens den er raskere og 40% mindre enn bf16.
| Bundle | Størrelse | Beste for |
|---|---|---|
| bf16 | ~5.0 GB | Referanse / feilsøking. |
| int8 standard | ~3.0 GB | Hver dag kloner, lydbøker, podcasts. |
| int4 | ~1.9 GB | Disk-begrensede distribusjoner. |
Fra CLI.
# Voice design — no reference clip
speech speak "Welcome to the show." \
--engine voxcpm2 \
--voxcpm2-instruct "A young woman, gentle and warm voice." \
--output design.wav
# Reference cloning — 5–30 s clean clip
speech speak "This is a cloned voice." \
--engine voxcpm2 \
--voxcpm2-variant int8 \
--voice-sample speaker.wav \
--output clone.wavFortsett å lese.
Hvert CLI-flagg, hver generasjonsmodus, ansvarlig bruksnotat.
Sammenligning mellom motorer: VoxCPM2, CosyVoice3 og Qwen3-TTS ICL.
Installer Soniqo på Apple Silicon og kjør din første syntese.
Flere innlegg om tale på stedet som de lander.
