Konekäännös · Englanninkielinen alkuperäinen

VibeVoice

Microsoft VibeVoice on englannin ja kiinan kielen teksti-puhemalli, joka on pitkämuotoinen, monikaiutin ja monipuhuja. Toisin kuin lyhyttunnistus TTS, se on suunniteltu tuottamaan podcast-pituusdialogia, äänikirjan kertomista ja monikaiuttimen kohtauksia yhdellä solalla 90 minuuttia, jopa 4 erillistä ääntä ja koko ajan yhtenäistä identiteettiä. Kaksi muunnelmaa: Realtime-0.5B matalalatenssivirtaa varten ja 1.5B pitkän lippulaivalaadun osalta.

Mitä se on?

Arkkitehtuuri

Neljä yhteistyössä toimivaa komponenttia tuottaa 7,5 Hz:n latentin äänen kerrallaan:

Osa Tavaran kuvaus
Jako Qwen2 selkäranka24-kerros Qwen2.5 dekooderi (896 piilotettu, GQA 14/2 Realtime-0.5B). Malli on jaettu: alemmat 4 kerrosta muodostavat tekstin LM, ylemmät 20 kerrosta toimivat TTS LM. Tekstiikkunat (5 kuponkia kerrallaan) virtaavat molempien läpi; syntyy puhe piilee vain TTS LM:n läpi.
σ-VAE akustinen instrumenttiStreaming conv pino, joka koodaa 24 kHz ääni 64-dim latentti 7,5 Hz:n (3200× ajallinen alas näyte) ja dekoodaa latentteja takaisin aaltomuotoon. Käytetään sekä ääni-välimuistin luominen ja lopullinen audio decode.
Diffuusiopää Pieni 4-kerroksinen DDPM-pää adaLN-modulaatiolla. Näytä jokainen puhe latenttina 20-vaiheisen DPM-Solverin kautta ilman luokitusohjeita (cfg = 1.3 oletus Realtime-0.5B, 1,5 1,5B).
EOS-luokitusPer-step binääriluokkain TTS LM:n viimeisessä piilotilassa. Kun sigmoidin todennäköisyys ylittää 0,5, sukupolvi pysähtyy.

Kieli

Microsoftin mallikorttien osalta Realtime-0.5B on vain englanti (joen yläjuoksun demoalukset yhdeksän ei-EN-äänikehotusta kokeilevana; laatu ei ole taattu). 1.5B tukee englantia ja kiinaa ; muut kielet voivat tuottaa uskottavalta kuulostavaa mutta uskotonta ääntä, ja niitä olisi pidettävä kokeellisena.

Äänentunnistus - kaksi erillistä polkua

Nämä kaksi vaihtoehtoa ovat hyvin erilaisia lähestymistapoja kaiuttimeen, ja jokaisella polulla on rajoitteita, jotka kannattaa tietää etukäteen.

Realtime-0.5B Esivalmistetut äänivälimuistit

Kaiutinidentiteetti tulee esikytketystä .safetensors äänivälimuistista, joka sisältää KV- välimuistit ja piilotetut tilat tietylle kaiuttimen käyttäjälle. Välimuistin lataaminen on välitöntä; yksi malliesimerkki voi vaihtaa ääniä halvalla sukupolvien välillä.

Realtime-0.5B-tarkastuspiste jaetaan vain päättelyyn Microsoft ei lähetä akustista kooderia, joten äänivälimuistia ei voi lyödä raw audiota vastaan tätä mallia vastaan. Microsoftin valmiiksi rakennettu .pt äänivälimuistit (Carter, Davis, Emma, Frank, Grace, Mike, Samuel Englanti, plus explorative de/fr/it/jp/kr/nl/pl/pt ääniä), litistynyt osaksi .safetensors lataa tämä kuormaaja odottaa.

1.5B:n pitkämuotoinen äänikloonaus raakaäänestä

1.5B-tarkistuspiste -kuumennusalue lähettää akustisen koodaimen, jotta se voi kloonata mielivaltaisen kaiuttimen viiteaaltomuodosta + kopion yhdellä kuvalla. Koodaus on tallennettu jokaiseen synteesipuheluun .

FYI: speech vibevoice-encode-voice on aidattu

Realtime-0.5B:n CLI-pinta offline-äänivälimuistin luomiselle epäonnistuu nopeasti osoittimella 1.5B:n raaka-audio-työvirtaan, koska koodaimen painot eivät näy 0.5ZB-tarkastuspisteessä. Ennen kuin Microsoft toimittaa ne, tämä on ainoa end-to-end-polku oman kaiuttimen kloonaukseen.

Malli

Bundle Määrä KokoHuggingFace
Realtime-0.5BBF16 (lähde)~1 GBmicrosoft/VibeVoice-Realtime-0.5B
Realtime-0.5B INT4Qwen2 INT4, tomaattiseri + diffuusio FP16~350 Mtaufklarer/VibeVoice-Realtime-0.5B-MLX-INT4
Realtime-0.5B INT8Qwen2 INT8~570 Mtaufklarer/VibeVoice-Realtime-0.5B-MLX-INT8
1,5B pitkänomainenBF16 (lähde)~3 GBmikrosoft/VibeVoice-1.5B
1,5B INT4 (tuotanto)Qwen2 INT4 + kaksikoodaajat~1 GBaufklarer/VibeVoice-1.5B-MLX-INT4

Kvantisaatiossa käytetään MLX ryhmä-viisaasti affine quantity (32-group). Upotus, normit, akustiset tokenizer-konvolutionit ja EOS-luokitus pysyy niiden lähded-tyypissä.

Nopea aloitus

import VibeVoiceTTS

let tts = try await VibeVoiceTTSModel.fromPretrained()
try tts.loadVoice(from: "/path/to/voice_cache/en-Mike_man.safetensors")
let pcm = try await tts.generate(text: "Hello world.")
// pcm: [Float] at 24 kHz mono

Pitkä muoto 1.5B (eri API)

1.5B:llä on erilainen arkkitehtuuri (yhtenäistetty Qwen2 LM, kaksoiskoodaajat, LM-poletinnäytteenotto), joten se toimittaa erillisenä luokana VibeVoice15BTTSModel.

let tts = try await VibeVoice15BTTSModel.fromPretrained()
let pcm = try await tts.generate(
    text: "Long English script.",
    referenceAudio: refSamples,    // [Float] mono speech, any rate
    referenceTranscript: "",
    sampleRate: 24000
)

Ei ääni välimuistia tarvitaan malli koodaa viiteääni kautta molemmat acoustic_tokenizer (64-dim) ja semantic_tokenizer (128-dim, ASR-koulutettu) ja summat ne audio pikaisia asemia. Generation ajaa LM poletin näytteenotto haarautunut <speech_diffusion> / <speech_end> / teksti ... hajoaa akustisen latentin vain silloin, kun LM lähettää puheen merkki.

ASR-varmennettu M2 Max INT4 (RTFx 1.48): syöte "Hei maailma. Tämä on yksi kohta viisi miljardia VibeVoice versio Microsoftin tekstin puhemalli.", Nemotron litisti ulostulon nimellä "Hei, maailma, tämä on yksi piste viisi miljardia kautta äänen muunnelma mikrosoft texas puheen malli" .. jokainen sisältösana täsmää, vain akustiset substituutiot ovat VibeVoice → äänen kautta sekä teksti osoitteeseen → texas.

Vaihda ääniä sukupolvien välillä

try tts.loadVoice(from: "en-Mike_man.safetensors")
let a = try await tts.generate(text: "First speaker line.")
try tts.loadVoice(from: "en-Emma_woman.safetensors")
let b = try await tts.generate(text: "Second speaker line.")

KLI

Realtime-0.5B muunnetulla Microsoftin äänimuistilla (englanti):

speech vibevoice "Hello world." \
    --voice-cache voice_cache/en-Mike_man.safetensors \
    --output hello.wav

1.5B pitkä muoto, jossa raaka reference audio + transkripti (kloonaus mielivaltainen puhuja, Englanti tai Kiina):

speech vibevoice "Long paragraph ..." \
    --long-form \
    --reference-audio voice.wav \
    --reference-transcript "what was actually said in voice.wav" \
    --max-tokens 4000 \
    --output episode.wav

Liput: --steps (DPM-Solverin vaiheet), --cfg (ohjaus), --model / --tokenizer ohittaa HuggingFace IDs, --long-form siirtyäksesi 1,5B-esiintymään, --verbose ajoituksen osalta.

Valinnat speech-swift TTS -moduulien välillä

Kokoro-82MQwen3-TTSCosyVoice3VibeVoice RealtimeVibeVoice 1.5B
Paraateja82M7B7B500 M1,5B
TaustaosaCoreML (ANE)MLXMLXMLXMLX
Kieli810+10+ Vain FIFI + ZH
Äänen kloonaus Kiinteät esiasetuksetICL-viittausNollaiskun viite Vain valmiiksi rakennetut äänivälimuistitRaw audio + transkriptio
Pitkänomainen Lyhyt/keskisuuriVirtaaminenVirtaaminenVirtaaminenPäätä 90 min / 4 puhujaa
Valitse VibeVoice, kun...

... tarvitset pitkän muodon, multi-kaiuttimen, tai podcast / audiobook lähtö Englanti tai Kiina, johdonmukainen ääni-identiteetti yli minuuttien audio. Lyhytmuotoinen monikielinen TTS, Qwen3-TTS tai CosyVoice3 iOS-alkuisille lyhyille lauseille, Kokoro on pienin vaihtoehto.