核心構想

多數神經語音合成系統以 50–100 Hz 將音訊 token 化,這種精細度代價高昂:90 分鐘語音會變成 135,000 個以上的 token,遠超出實用的脈絡長度。VibeVoice 的關鍵賭注是——可以用更粗的 7.5 Hz 來 token 化,再讓 diffusion 模型把聲學細節「補繪」回來。

壓縮的是時間軸,不是語意:7.5 Hz 維持對話連貫,由 diffusion head 還原 24 kHz 的聲音細節。

連續 7.5 Hz tokenizer

VibeVoice 採用連續語音 tokenizer——分為聲學(acoustic)與語意(semantic)兩條流——以 7.5 Hz 的影格率運作。正是這個低取樣率,讓長序列處理變得可行,同時保留足夠資訊還原自然語音。

為什麼 7.5 Hz 是關鍵

  • 比業界常見的 50–100 Hz 粗約 10 倍。
  • 90 分鐘音訊約 40,500 token——可放進 64K 脈絡。
  • token 變少,模型把算力花在對話連貫,而非聲學細節。

Next-token diffusion

生成管線分為兩段。大型語言模型(Qwen2.5 主幹)在 token 層級處理文字脈絡、對話理解與韻律決策;接著由 diffusion head 為每一步還原精細的 24 kHz 聲學細節。

文字 + 語者參考音
      |
      v
[ LLM 主幹 (Qwen2.5) ]   ->  7.5 Hz 的語意/韻律 token
      |
      v
[ diffusion head ]        ->  24 kHz 聲學波形

這種「分工」正是單一模型能撐起長篇多語者對話的原因:LLM 負責記住「誰在說、接下來說什麼」,diffusion head 則專注於「聽起來如何」。

同一套設計的兩種延伸:串流與邊緣

2026 年的幾次發布沒有換掉架構,而是把它往兩個方向拉伸。兩者的起點是同一個條件:7.5 Hz 的序列夠小,模型才負擔得起隨身攜帶脈絡。

串流:區塊、前瞻,與自己剛寫過的稿

一次讀完整整一小時,正是離線版能分清楚誰是誰的原因——也正是即時逐字稿做不到的事。VibeVoice-ASR-Streaming 的解法是把三樣東西交錯餵進去:一段固定長度的新音訊、一小段越過邊界的前瞻音訊,以及模型自己已經產出的文字。把自己的逐字稿再餵回去,就是語者身分能跨越區塊邊界的關鍵——所以它依然不需要獨立的語者分離流程。

chunk_frames = 22  @ 7.5 Hz  ->  每段輸出約 2.9 秒音訊
lookahead_frames = 4          ->  越過邊界前瞻約 0.5 秒

[ 音訊區塊 | 前瞻 | 已產出的文字 ]
      |
      v
[ LLM ]  ->  「語者 1:…」
      |
      +-->  文字回饋到下一個區塊

數字要老實讀:以上是官方權重實際採用的設定,描述的是「約三秒一段」的節奏,而不是次秒級延遲。它是即時逐字稿,但不是零延遲。

邊緣:兩個半邊,用不同的壓法

VibeVoice-ASR-BitNet 走的是另一條路——長度不變,但硬體需求大幅下降。它的壓縮刻意不對稱,因為模型的兩個半邊能忍受的程度差很多:VAE 聲學 tokenizer 量化到 INT8,搭配融合過的 SIMD 最佳化 kernel;自迴歸解碼器則一路壓到 BitNet 式的三元權重。漸進式的量化感知訓練讓準確度的代價維持在小幅範圍。

  • 4.62 GB -> 1.58 GB,整體約縮小 2.9 倍。
  • 只要三條 CPU 執行緒就能達到實時因子小於 1——不需要 GPU。
  • 在相近的約 1.6 GB 規模下,比 whisper.cpp 快 1.6–2.3 倍。

繼承與限制

由於主幹建立在 Qwen2.5 之上,模型會繼承其基礎行為——包含偶爾出現非預期、帶偏見或不準確的輸出。架構也是為乾淨、依序的對話而調校:它無法處理重疊發話、背景音樂或音效。

確切數據見「規格與數據」頁;負責任 AI 的指引見「限制與負責任 AI」頁。