EP.05AI 離線部署系列

聲碼器演進與端到端 TTS
從 WaveNet 到 VITS 的設計革命

Tacotron2、FastSpeech2、WaveNet、HiFi-GAN、VITS——五大模型的核心設計邏輯, 以及為什麼 TTS 最終走向端到端(End-to-End)架構。

Joseph Chen 2026 15 min read Vocoder · FastSpeech2 · HiFi-GAN · VITS

「EP.04 我們搞懂了 Transformer 的注意力機制——但 Transformer 只是『翻譯員』, 把文字轉成 Mel 頻譜。真正讓聲音從電腦裡發出來的,是聲碼器(Vocoder)。」

這篇會帶你走過五個關鍵模型的演進:從 Tacotron2 的注意力對齊、WaveNet 的逐樣本生成、 FastSpeech2 的並行推理突破、HiFi-GAN 的對抗訓練,到 VITS 的端到端統一框架。 每個模型的出現,都在解決前一個的痛點。

📖 先備知識:Mel 頻譜(Mel Spectrogram)是什麼?

TTS 的核心流程 is 「文字 → Mel 頻譜 → 波形」,這篇介紹的每個模型都圍繞這條管線做設計。 Mel 頻譜是音頻的壓縮表示:X 軸是時間,Y 軸是頻率(按人耳感知的 Mel 尺度排列), 顏色深淺代表能量強度——可以把它想像成把聲音拍成一張「熱力圖」。

為什麼不直接處理原始波形?原始音頻(24kHz)每秒有 24,000 個採樣點,資訊冗餘極高且難以學習。 Mel 頻譜把 30 秒音頻壓縮到 3,000 幀 × 80 頻道,更接近人耳實際感知聲音的方式, 是 Tacotron2、FastSpeech2、Whisper 共同採用的中間表示格式。

原始波形

24,000 數字/秒

資訊冗餘,難直接學習

Mel 頻譜

100 幀/秒 × 80 bins

TTS 聲學模型的標準格式

重建波形

聲碼器合成輸出

最終播放的音頻

TTS 模型演進總覽

TTS 的歷史可以拆成三個世代。每個世代的分水嶺,都是「推理速度」與「音質」的重新平衡。

2016WaveNet第一代:自回歸聲碼器

音質首次逼近人聲,但速度慘不忍睹(比實時慢 2000×)

2017Tacotron → Tacotron2第二代:seq2seq + 注意力

文字直接轉 Mel 頻譜,搭配 WaveNet 聲碼器,端到端訓練

2020FastSpeech2第三代:非自回歸並行合成

並行生成 Mel 頻譜,速度提升 38×,同時加入音高/能量控制

2020HiFi-GAN第三代:GAN 神經聲碼器

用對抗訓練取代自回歸,實時生成且音質接近 WaveNet

2021VITS第四代:端到端統一

文字直接輸出波形,不再需要分開訓練聲學模型和聲碼器

Tacotron2:seq2seq + 注意力對齊

Tacotron2(2018,Google)是第一個被廣泛部署的神經 TTS 系統。 它把「文字→Mel 頻譜」這一步做成一個 Encoder-Decoder 架構,並用注意力機制做對齊。

Tacotron2 架構流程

音素/字元輸入

Encoder (CBHG)

Location-Sensitive Attention

Decoder (自回歸)

Mel 頻譜

WaveNet 聲碼器

波形輸出

✅ 優點

  • • 自然度高,注意力對齊穩定
  • • 端到端訓練文字→Mel 頻譜
  • • 不需要人工設計音素規則

❌ 缺點

  • • 自回歸解碼:逐幀生成,極慢
  • • 注意力有時對齊失敗(跳字、重複)
  • • 仍需外掛 WaveNet 聲碼器

Location-Sensitive Attention 是什麼?

普通注意力每一步都從頭掃全部輸入。Location-Sensitive Attention 額外加入「上一步注意力在哪裡」作為卷積特徵, 讓注意力更傾向往前移動,避免卡住或倒退——這解決了 Tacotron1 常見的對齊崩壞問題。

WaveNet:膨脹因果卷積的聲碼器

WaveNet(2016,DeepMind)是神經聲碼器的開山之作。它直接在原始波形(raw waveform)上建模, 而不是先轉成頻率特徵,因此音質極高——但代價是速度極慢。

膨脹因果卷積(Dilated Causal Convolution)

因果(Causal):生成第 t 個樣本時,只能看 t 之前的樣本,不能「偷看未來」。
膨脹(Dilated):每一層的感受野以指數倍增長,用少量層數覆蓋極長的上下文。

膨脹率(Dilation Rate)視覺化

第 1 層 dilation=1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
感受野=2
第 2 層 dilation=2
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
感受野=4
第 3 層 dilation=4
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
感受野=8
第 4 層 dilation=8
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
感受野=16

紫色格子 = 當前計算節點,藍色 = 它直接看到的樣本。4 層後感受野已達 16 個樣本。

WaveNet 的致命弱點:自回歸生成

生成 1 秒的音頻需要輸出 24,000 個樣本(24kHz)。因為每個樣本依賴前一個, 無法並行——原始 WaveNet 生成 1 秒音頻需要幾十分鐘。 這導致它在 2016–2019 年只能在 Google 的伺服器上運行,無法部署到邊緣裝置。

FastSpeech2:非自回歸的並行突破

FastSpeech2(2020,微軟)直接拋棄了自回歸解碼,改用顯式預測 Duration(時長)的方式, 讓所有 Mel 幀可以同時並行生成,速度提升約 38 倍。

FastSpeech2 核心設計

1

Feed-Forward Transformer Encoder

音素序列 → 隱藏表示(每個音素一個向量)

2

Variance Adaptor(方差適配器)

同時預測:Duration(每個音素幾幀)、Pitch F0(音高曲線)、Energy(能量強度)

3

Length Regulator(長度調節器)

根據 Duration 把音素向量「複製展開」到 Mel 幀序列長度,無需注意力對齊

4

Feed-Forward Transformer Decoder

並行輸出所有 Mel 幀 → 接 HiFi-GAN 聲碼器

FastSpeech2 Length Regulator 概念(Pseudo-code)
def length_regulator(phoneme_hidden, durations):
    """
    phoneme_hidden: shape [N, hidden_dim]  # N 個音素
    durations:      shape [N]              # 每個音素對應幾個 Mel frame

    回傳 shape [sum(durations), hidden_dim] — 展開後的序列
    """
    expanded = []
    for i, d in enumerate(durations):
        # 把第 i 個音素的向量重複 d 次
        expanded.append(phoneme_hidden[i].unsqueeze(0).expand(d, -1))
    return torch.cat(expanded, dim=0)  # 全部拼接

# 舉例:音素 ['h', 'e', 'l', 'o'] duration=[2, 3, 4, 2]
# → Mel 幀序列長度 = 2+3+4+2 = 11 幀
# → 全部 11 幀同時並行解碼,不再自回歸!

38×

推理速度

比 Tacotron2 快

F0 曲線

音高控制

可精細調整語調

Duration

語速控制

直接縮放倍率

HiFi-GAN:高保真神經聲碼器

HiFi-GAN(2020,Jungil Kong et al.)用 GAN(生成對抗網路)徹底取代了 WaveNet 的自回歸生成, 實現了「實時 + 高音質」的雙重突破。它是目前部署最廣泛的聲碼器之一。

HiFi-GAN 訓練框架

🎭 Generator

輸入 Mel 頻譜 → 輸出原始波形
架構:多個 Upsampling 轉置卷積 + 殘差塊(MRF)
目標:騙過 Discriminator

📏 MPD(多週期鑑別器)

把波形以週期 p = {2,3,5,7,11} 重排成 2D
捕捉不同頻率的週期性結構

📐 MSD(多尺度鑑別器)

在原始 + 2× + 4× 下採樣波形上分別鑑別
捕捉不同時間粒度的特徵

訓練損失函數

  • GAN Loss:Generator vs Discriminator 對抗
  • Feature Matching Loss:中間層特徵對齊真實音頻
  • Mel-Spectrogram Loss:直接對比 Mel 頻譜

結果

V1 模型:推理速度是實時的 13.4×
MOS 分數比 WaveNet 高,且速度快 100 倍以上

聲碼器速度音質備註
Griffin-Lim⚡ 極快⭐⭐ 普通無需訓練,音質機械感重
WaveNet🐢 極慢⭐⭐⭐⭐⭐ 最高開創性,但無法實時
Parallel WaveNet⚡⚡ 快⭐⭐⭐⭐ 高知識蒸餾加速,Google 部署版
WaveGlow⚡⚡ 快⭐⭐⭐⭐ 高Flow-based,NVIDIA 出品
HiFi-GAN⚡⚡⚡ 極快⭐⭐⭐⭐⭐ 極高目前最主流,VITS 內建採用

VITS:端到端的終極方案

VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech,2021,Kakao) 是目前最被廣泛採用的開源 TTS 架構。它的核心突破是:文字直接輸出波形,不再需要分開訓練聲學模型和聲碼器

VITS 為什麼是「端到端」?

傳統 2-stage 管線

文字/音素

Acoustic Model (FastSpeech2)

Mel 頻譜

Vocoder (HiFi-GAN)

波形

❌ 兩套模型分開訓練,誤差累積

VITS 端到端

文字/音素

Prior Encoder (Text → latent)

MAS 對齊 (無需手動標注)

Flow Decoder + HiFi-GAN Generator

波形

✅ 單一模型,聯合最佳化

VITS 的三個核心技術

1. 條件變分自編碼器(CVAE)

訓練時:音頻 → Posterior Encoder → 潛在變數 z(VAE 的 reparameterization trick)。推理時:文字 → Prior Encoder → 估計 z 的分布,從中採樣。

2. Normalizing Flow(規範化流)

把複雜的潛在分布轉換成簡單高斯分布(可逆映射)。讓 Prior Encoder 能夠精確估計 Posterior 的分布,縮小 KL Divergence。

3. Monotonic Alignment Search(MAS)

不用人工標注音素時長。用動態規劃自動找出文字與 Mel 幀之間的單調對齊路徑,與模型聯合訓練。這解決了 FastSpeech2 需要外部 MFA 對齊工具的問題。

VITS 損失函數組合(訓練目標)
# VITS 同時最佳化四種損失
total_loss = (
    # 1. 重建損失:Mel 頻譜與真實值的 L1 距離
    mel_loss * 45.0

    # 2. KL Divergence:Prior 與 Posterior 分布對齊
    + kl_loss * 1.0

    # 3. Duration 預測損失
    + duration_loss * 1.0

    # 4. GAN 對抗損失(Generator)
    + generator_adv_loss * 1.0

    # 5. Feature Matching 損失(來自 HiFi-GAN)
    + feat_match_loss * 2.0
)
# 同時訓練 Discriminator (MPD + MSD)
# → 一個模型,五種訊號,端到端聯合最佳化

五大模型完整對比

📊 MOS(Mean Opinion Score)是什麼?

MOS 是語音品質的主觀評分標準,由真人聽眾評分(範圍 1–5 分,5 分最好)。 因為 TTS 的目標是「聽起來像人聲」,客觀指標(如 SNR 信噪比)難以完整衡量主觀自然度, 因此業界以 MOS 作為音質比較的基準。4.0 以上即達到接近自然人聲的水準; VITS 的 4.7 已在部分評估中超過真人語音錄音的得分。

模型年份類型推理速度音質 (MOS)訓練難度現況
WaveNet2016自回歸聲碼器🐢 極慢4.6/5已被取代
Tacotron22018seq2seq 聲學🐢 慢4.5/5教學用
FastSpeech22020非自回歸聲學⚡⚡ 快4.4/5中高仍廣泛使用
HiFi-GAN2020GAN 聲碼器⚡⚡⚡ 極快4.5/5主流聲碼器
VITS2021端到端⚡⚡⚡ 極快4.7/5⭐ 目前最佳

本篇重點回顧

🌊WaveNet:膨脹因果卷積開創神經聲碼器,音質極高但自回歸生成速度慘不忍睹。
🗣️Tacotron2:seq2seq + Location-Sensitive Attention,首個實用的神經 TTS,仍需外掛聲碼器。
FastSpeech2:Duration Predictor + Length Regulator,並行生成快 38×,還能控制語速音調。
🎭HiFi-GAN:MPD + MSD 多尺度鑑別器,GAN 訓練實現實時高保真聲碼器,目前最主流。
🏆VITS:CVAE + Flow + MAS + HiFi-GAN,端到端聯合訓練,音質最高且速度最快,現為業界標準。

下一篇:EP.06 將進入嵌入式部署實戰—— 這麼好的模型,怎麼壓縮到邊緣裝置上跑?Pruning、Quantization、知識蒸餾的取捨是什麼?

TTS
WaveNet
FastSpeech2
HiFi-GAN
VITS
Neural Vocoder
GAN
EP.05