VibeVoice — 處理長音訊最好的辦法,是根本不要切它
以前要把一段一小時的會議錄音轉成逐字稿,工程師的第一個動作幾乎都一樣:切。
先寫一段程式把音檔切成 30 秒一塊,一塊一塊丟進模型,再把吐出來的文字拼回去。聽起來很合理,直到你發現拼縫處全是坑——一句話被切成兩半,前半段的語氣模型看不到,後半段就認錯字;換人講話的瞬間剛好落在切點上,兩個人的聲音被混成一個;講到第 40 分鐘冒出來的專有名詞,模型早忘了第 5 分鐘鋪陳過的上下文。你花在對齊、去重、補接縫的時間,往往比跑模型本身還久。
微軟研究院 2025 年開源的 VibeVoice,做的事情很簡單,簡單到有點反直覺:它不切。一次讀完整段。TTS 一口氣生成 90 分鐘語音,ASR 一次辨識 60 分鐘音訊,中間不切、不拼、不對齊。
為什麼「不切」以前做不到,現在做得到
不切這件事,不是有人終於想通了才去做,而是以前真的做不到。長音訊塞不進模型的上下文窗口——一分鐘的音訊如果照傳統做法編碼,token 數量大到誰的窗口都裝不下,只能切。切是被逼的,不是選的。
VibeVoice 拆掉這道牆的方式,是先問一個更底層的問題:一段音訊,到底需要多少 token 才描述得清楚?
它的答案低到嚇人。透過一個幀率只有 7.5 Hz 的 Speech Tokenizer,一分鐘的音訊只需要 450 個 token。這是什麼概念——64K 的上下文窗口,能裝下超過一小時的聲音。牆不是被撞破的,是被繞過去的:當你把描述聲音的成本壓到夠低,「一次讀完」這個以前的奢望,就變成預設值。
這裡藏著一個很值得記下來的道理。很多工程上的「不可能」,其實是「太貴」的委婉說法。你以為問題是「做不到」,真正卡住的常常是某個被當成常數的成本。把那個成本砍到十分之一,一整類原本繞著它設計的複雜方案,會突然全部失去存在的理由——切片、對齊、拼接那套工具鏈,就是這樣一夜之間變成多餘的。
它其實把語音問題,翻譯成了語言問題
VibeVoice 最聰明的一步,是它根本沒把自己當成一個語音模型在做。
想像你要教一台只會讀文字的機器聽懂人話。最直覺的做法是再造一套專門處理聲波的系統。但 VibeVoice 反過來:先把聲音壓縮成一串 token,然後直接拿 Qwen2.5 這個現成的開源大型語言模型當骨幹,讓它像讀句子一樣「讀」這串聲音 token,理解前後文的關係。最後再用一個 Diffusion Head,把語言模型算出來的隱藏狀態還原成高品質的聲音。
用一句話說清楚這個分工:語言模型負責「說什麼」,Diffusion 負責「怎麼說」。他們給這套框架取了個名字叫 Next-Token Diffusion。
為什麼這樣分很關鍵?因為「理解上下文」這件事,語言模型已經被練得爐火純青了。與其重新發明一個懂上下文的語音系統,不如把語音翻譯成語言模型看得懂的形式,直接搭它的順風車。傳統 ASR 像是把一本書撕成一頁一頁分開翻譯,翻完再訂回去;VibeVoice 像是讓一個人從頭到尾讀完整本,再開口翻譯——自然抓得到誰在跟誰對話、哪個代名詞指的是前面哪個人。
舊做法要串三個模型,它一個就給你全部
上下文完整帶來的好處,在 ASR 的輸出上看得最清楚。
過去你想要一份「誰、在什麼時候、說了什麼」的完整紀錄,得自己串三個模型:一個做語音辨識、一個做說話者分離(speaker diarization)、一個做時間對齊。每個都要調、都會出錯,錯誤還會一路累積下去。
VibeVoice 的 ASR 直接一次給你全部——它管這個叫 Rich Transcription,說話者標記、時間戳、文字內容,一個模型全包。你還可以塞一份 Hotwords 清單進去,把產品名、人名、專業術語餵給它,讓辨識更準。醫療、法律這種專有名詞滿天飛的場景,這功能省下的校對工時非常實在。它支援 50 多種語言,不用事先指定語種,連同一句話裡中英夾雜的 code-switching 都能處理。
開源不到 8 個月,拿下將近 39K GitHub Stars,論文被 ICLR 2026 收為 Oral,ASR 模型還進了 HuggingFace Transformers v5.3.0 正式版——原生支援,不用再自己接一堆膠水。
但你先別急著拿去接產品
講到這裡都很漂亮,接下來是必須誠實說清楚的另一半。
最大的一顆地雷:TTS 的推論程式碼已經被微軟從 repo 移除了。原因是被大規模濫用來做 deepfake。模型權重還在 HuggingFace 上載得到,但你得自己把推論邏輯寫出來。官方也把話講死了——僅供研究用途,不建議商業或生產環境使用,因為高品質合成語音太容易被拿去冒充和詐騙。這不是免責聲明的官腔,是它現在真實的能力邊界。
其他幾個要先知道的:中文語音品質明顯不如英文,訓練資料量的差距擺在那裡,官方只能建議你用英文標點稍微改善;所有模型都吃 NVIDIA GPU,ASR-7B 這種等級建議 A100 以上,不是隨便一張卡跑得動;多說話者是輪流講,不支援兩個人同時講話重疊;主打即時的 Realtime-0.5B 目前也主要撐英文,其他語言都還在實驗階段。
好消息是輕量版的門檻確實低——Realtime-0.5B 在一張 T4,甚至 Mac M4 Pro 上就跑得起來,首音延遲大約 200ms,可以接在任何 LLM 後面當語音輸出層。社群已經拿它做出了叫 Vibing 的智慧語音輸入法,macOS 和 Windows 都有,證明這套東西在真實產品裡是跑得動的,不只是論文裡的數字。
真正被改掉的,是你設計系統的預設假設
如果只把 VibeVoice 當成「一個更長的語音模型」,你會錯過它最值錢的部分。
它真正示範的,是一種解題的姿勢:當你面對一個看起來得靠複雜工程硬撐的問題——切片、分段、拼接、對齊——先別急著把那套流水線搭得更精巧。回頭問一句,這條流水線到底在繞過哪一個成本?那個成本是不是其實可以被直接打掉?
長音訊處理繞了很多年的那根柱子,叫做「token 太貴」。VibeVoice 把它從一分鐘幾千個 token 壓到 450 個,柱子一倒,整棟為它蓋的複雜建築跟著垮。你以後再看到任何一個「大家都這樣做」的繁瑣流程,值得養成一個習慣:先找出那個被當成天經地義的成本,然後認真想想,如果它變成十分之一,這整套流程還剩下多少是必要的。
多數時候答案會讓你意外——剩不了多少。
專案來源:VibeVoice GitHub、HuggingFace Collection、TTS 論文(ICLR 2026 Oral)。授權 MIT,官方聲明僅供研究用途。










