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?
- Pitkä muoto yhdessä solassa 90 minuuttia ääniä, joiden ääni on yhdenmukainen koko ulostulossa; ei sentinssiä.
- Monipuheinen vuoropuhelu 4 eri kaiuttimet kerralla, kukin ehdollistettu oman ääni välimuisti
- English + kiina ... vain koulutettu äänitieto on EN/ZH; muita kieliä ei tueta (tokenizer hyväksyy ne, mutta tuloste on lukematon)
- 24 kHz monoteho ... Float32 PCM, pudotus
AudioCommon.WAVWriterjaStreamingAudioPlayer - MIT lisenssi ... mallipainot ja meidän Swift portti ovat molemmat MIT; INT4 kvantitoidut johdannaiset ovat sallittuja
Arkkitehtuuri
Neljä yhteistyössä toimivaa komponenttia tuottaa 7,5 Hz:n latentin äänen kerrallaan:
| Osa | Tavaran kuvaus |
|---|---|
| Jako Qwen2 selkäranka | 24-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 instrumentti | Streaming 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-luokitus | Per-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 .
speech vibevoice-encode-voice on aidattuRealtime-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ä | Koko | HuggingFace |
|---|---|---|---|
| Realtime-0.5B | BF16 (lähde) | ~1 GB | microsoft/VibeVoice-Realtime-0.5B |
| Realtime-0.5B INT4 | Qwen2 INT4, tomaattiseri + diffuusio FP16 | ~350 Mt | aufklarer/VibeVoice-Realtime-0.5B-MLX-INT4 |
| Realtime-0.5B INT8 | Qwen2 INT8 | ~570 Mt | aufklarer/VibeVoice-Realtime-0.5B-MLX-INT8 |
| 1,5B pitkänomainen | BF16 (lähde) | ~3 GB | mikrosoft/VibeVoice-1.5B |
| 1,5B INT4 (tuotanto) | Qwen2 INT4 + kaksikoodaajat | ~1 GB | aufklarer/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-82M | Qwen3-TTS | CosyVoice3 | VibeVoice Realtime | VibeVoice 1.5B | |
|---|---|---|---|---|---|
| Paraateja | 82M | 7B | 7B | 500 M | 1,5B |
| Taustaosa | CoreML (ANE) | MLX | MLX | MLX | MLX |
| Kieli | 8 | 10+ | 10+ | Vain FI | FI + ZH |
| Äänen kloonaus | Kiinteät esiasetukset | ICL-viittaus | Nollaiskun viite | Vain valmiiksi rakennetut äänivälimuistit | Raw audio + transkriptio |
| Pitkänomainen | Lyhyt/keskisuuri | Virtaaminen | Virtaaminen | Virtaaminen | Päätä 90 min / 4 puhujaa |
... 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.