Strojový překlad · Anglický originál
VibeVoice
Microsoft VibeVoice je dlouho-forma, multireproduktor text- to- řeč model pro angličtinu a čínštinu. Na rozdíl od short-utterance TTS, je navržen tak, aby generoval podcast- length dialog, audiokniha vyprávění, a multireproduktor scény v jednom průsmyku - až 90 minut až do 4 různé hlasy a konzistentní identitu po celé. Dvě varianty loď: Realtime-0.5B pro streaming s nízkou latencí a 1.5B pro dlouhotvarovou vlajkovou kvalitu.
Co to je?
- Long- form in one pass - až do 90 minut zvuku s konzistentními hlasy po celém výstupu; žádné předsudky
- Víceřečnický dialog - 4 zřetelné reproduktory najednou, každý podmíněný vlastní hlasovou cache
- Angličtina + čínština - vyškolená audio data jsou pouze EN / ZH; ostatní jazyky nejsou podporovány (tokenizer je přijímá, ale výstup je nesrozumitelný)
- 24 kHz mono výstup - Float32 PCM, drop- in pro
AudioCommon.WAVWriteraStreamingAudioPlayer - MIT licence - modelové závaží a náš Swift port jsou jak MIT; kvantifikované deriváty INT4 jsou povoleny
Architektura
Čtyři spolupracující komponenty produkují zvuk jeden 7,5 Hz latentní najednou:
| Součást | Popis |
|---|---|
| Split Qwen2 páteř | 24- vrstva Qwen2.5 dekodér (896 skrytá, GQA 14/2 pro Realtime-0.5B). Model je rozdělen: spodní 4 vrstvy tvoří text LM, horní 20 vrstvy běží jako TTS LM. Textová okna (5 žetony najednou) průtok oběma; generované latenty řeči průtok pouze přes TTS LM. |
| σ-VAE akustický tokenizer | Vysílání conv stack, který kóduje 24 kHz audio na 64- dim latent při 7,5 Hz (3200 × time downsamplu) a dekóduje latenty zpět do vlnové délky. Používá se pro tvorbu hlasových cache a finální audio dekódování. |
| Difuzní hlava | Malé 4-vrstva DDPM hlava s adaLN modulací. Vzorky každé řeči latentní prostřednictvím 20-step DPM-řešitel s bezklasifikovatelným vedením (cfg = 1.3 výchozí hodnota Realtime-0.5B, 1.5 pro 1.5B). |
| Klasifikace EOS | Per- step binární klasifikátor na posledním skrytém stavu TTS LM. Když pravděpodobnost sigmoid překročí 0.5, generace se zastaví. |
Jazyky
Podle modelů karet Microsoft: Realtime-0.5B je pouze angličtina (předního demo lodí devět non-EN hlas vyzývá jako průzkumný; kvalita není zaručena). 1.5B podporuje anglicky a čínsky; jiné jazyky mohou produkovat věrohodně znějící, ale nevěrný zvuk a měl by být považován za experimentální.
Hlasová identita - dvě odlišné cesty
Obě varianty mají velmi odlišné přístupy k nastavení reproduktoru, a každá cesta má omezení stojí za to vědět dopředu.
Realtime-0.5B - představěné hlasové cache
Reproduktor identita pochází z předem vypočteného .safetensors hlasová cache obsahující kondicionovací KV cache a skryté stavy pro konkrétní reproduktor. Načítání cache je okamžité; jedna modelová instance může mezi generacemi levně měnit hlasy.
Kontrolní bod Realtime-0.5B je distribuován inference- only - Microsoft nedodává akustický kodér, takže hlasové cache nelze vyrazat ze syrového zvuku proti tomuto modelu. Podporovaný zdroj je jedním z Microsoft je předkonstruován .pt Hlasové kelímky (Carter, Davis, Emma, Frank, Grace, Mike, Samuel pro angličtinu, plus průzkumný de / fr / it / jp / kr / nl / pl / pt hlasy), zploštělý do .safetensors Rozvržení, které tento nakladač očekává.
1.5B long- form - hlasklonování ze syrového zvuku
Kontrolní stanoviště 1.5B dělá odesílat akustický kodér, takže může klonovat libovolný reproduktor z referenční vlny + přepis v jednom záběru. Kódování je uvedeno na každém volání syntézy - není žádný samostatný hlasový-cache soubor spravovat.
speech vibevoice-encode-voice je uzavřenýPovrch CLI pro tvorbu hlasových cache proti Realtime-0.5B selže rychle s ukazovátkem na rawworkflow 1.5B, protože v kontrolním bodu 0.5Z nejsou přítomny závaží kódéru. Dokud je Microsoft nepošle, je to jediná koncovka pro klonování vlastního reproduktora.
Vzor
| BundCity in New York USA | Kvantizace | Velikost | HuggingFace |
|---|---|---|---|
| Realtime-0.5B | BF16 (zdroj) | ~ 1 GB | microsoft / VibeVoice-Realtime-0.5B |
| Realtime-0.5B INT4 | Qwen2 INT4, tokenizer + difuze FP16 | ~ 350 MB | aufklarer / VibeVoice-Realtime-0.5B-MLX-INT4 |
| Realtime-0.5B INT8 | Qwen2 INT8 | ~ 570 MB | aufklarer / VibeVoice-Realtime-0.5B-MLX-INT8 |
| 1.5B dlouhá forma | BF16 (zdroj) | ~ 3 GB | microsoft / VibeVoice-1.5B |
| 1.5B INT4 (výroba) | Qwen2 INT4 + duální enkodéry | ~ 1 GB | aufklarer / VibeVoice-1.5B-MLX-INT4 |
Kvantifikace používá MLX group- wise affine quant (32- group). Vložení, normy, akusticko-tokenizer konvoluce, a EOS klasifikátor zůstat v jejich zdrojovém dtype.
Rychlý start
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
Dlouhotrvající forma 1.5B (jiná API)
1.5B má jinou architekturu (sjednocený Qwen2 LM, duální kodéry, LM token vzorkování), takže se přepravuje jako samostatná třída - VibeVoice15BTTSModel. Reference audio + text jít v jednom hovoru:
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
)
Žádný hlasový cache need - model kóduje referenční zvuk pomocí obou acoustic_tokenizer (64- dim) a semantic_tokenizer (128-dim, ASR- vyškolený) a shrnuje je na zvukových pozicích. Generace běží LM token vzorkování rozvětvené na <speech_diffusion> / <speech_end> / text - difuzuje akustický latent pouze v případě, že LM emituje příznak řeči.
ASR- ověřeno na M2 Max INT4 (RTFx 1.48): pro vstup "Ahoj, svět. Toto je jedna z pěti miliard VibeVoice varianty Microsoft textu na model řeči.", Nemotron přepsal výstup jako "Ahoj světe, tohle je 1 bod 5 miliard přes hlasovou variantu mikroměkkého texaského modelu řeči." - každý obsah slovo odpovídá, pouze akustické substituce jsou VibeVoice → prostřednictvím hlasu a text na → texas.
Prohodit hlasy mezi generacemi
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.")
CLI
Realtime-0.5B s konvertovanou hlasovou cache Microsoft (anglicky):
speech vibevoice "Hello world." \
--voice-cache voice_cache/en-Mike_man.safetensors \
--output hello.wav
1.5B long- form se syrovým referenčním audio + přepis (klonování libovolného reproduktoru, anglicky nebo čínsky):
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
Vlajky: --steps (kroky řešitele DPM-), --cfg (pokyny), --model / --tokenizer přepsat ID HuggingFace, --long-form přepnout na preset 1.5B, --verbose na načasování.
Výběr mezi moduly speech-swift TTS
| Kokoro-82M | Qwen3-TTS | CosyVoice3 | VibeVoice Realtime | VibeVoice 1.5B | |
|---|---|---|---|---|---|
| Params | 82M | 7B | 7B | 500 M | 1.5B |
| Backend | CoreML (ANE) | MLX | MLX | MLX | MLX |
| Jazyky | 8 | 10+ | 10+ | Pouze EN | EN + ZH |
| Klonování hlasu | Pevné předvolby | Odkaz na ICL | Odkaz na Zeroshot | Pouze hlasové cache | Raw audio + přepis |
| Dlouhá forma | Krátká / střední | Streaming | Streaming | Streaming | Až do 90 min / 4 reproduktorů |
... potřebujete dlouhou formu, multireproduktor, nebo podcast / audiobook výstup v angličtině nebo čínštině, s konzistentní hlasovou identitou přes minuty audio. Pro short-forma vícejazyčné TTS, Qwen3-TTS nebo CosyVoice3 Pro iOS- rodné krátké řeči, Kokoro je ta nejmenší možnost.