微調 Wav2Vec2-BERT 以應對低資源語音辨識

Meta 的 Wav2Vec2-BERT 是一個多功能的音訊模型,可針對低資源語言的自動語音辨識 (ASR) 進行微調,提供高效能的替代方案,取代像 Whisper 這樣的自回歸模型。透過使用連接時序分類 (CTC),Wav2Vec2-BERT 能在資源匱乏的語言上達到與 Whisper-large-v3 相似的字詞錯誤率 (WER) 表現,同時運行速度快 10 到 30 倍,且資源效率提升 2.5 倍。

Wav2Vec2-BERT 架構與預訓練

Wav2Vec2-BERT 是一個擁有 580M 參數的模型,作為 Meta Seamless Communication 系列 AI 翻譯模型的基礎元件而開發。它是原始 Wav2Vec2 模型的重要演進,首次展示了在低資源環境下的語音辨識遷移學習。

Key pre-training statistics include:

  • 資料量:在 450 萬小時的未標記音訊資料上進行預訓練。
  • 語言覆蓋:涵蓋超過 143 種語言。
  • 比較:此規模遠大於 XLS-R(在 128 種語言上有 50 萬小時)以及 MMS(在超過 1,400 種語言上有 50 萬小時)。

相較於自回歸模型的優勢

雖然 Whisper 被廣泛視為語音辨識的最先進技術,但在「資源匱乏」語言(如蒙古語或馬拉雅拉姆語)上仍面臨特定限制,歷史上其字詞錯誤率超過 100%。此外,Whisper 的自回歸特性使其本質上較慢,特別是對於在其訓練集較少出現的語言,因為它必須為每個單詞產生更多的標記。

相較之下,Wav2Vec2-BERT 以單次通過的方式進行語音辨識。此非自回歸方法提供三大主要好處:

  1. 推論速度:比 Whisper-large-v3 快 10 到 30 倍。
  2. 資源效率:提升 2.5 倍的資源效率。
  3. 適應性:可輕鬆適應任何字母系統,且只需極少量資料即可達到具競爭力的表現。

低資源語音辨識的微調流程

為了將 facebook/w2v-bert-2.0 檢查點調整至特定語言(例如使用 Common Voice 16.0 資料集的蒙古語),採用以下流程:

資料前處理

  • 文字正規化:將轉錄文字轉為小寫,並去除不對應聲學單位的特殊字元(例如標點符號)。
  • 詞彙建構:從訓練與測試集的不同字母中建立詞彙表。會移除冗餘字元(如蒙古語資料集中的拉丁字母),以縮小詞彙大小,對 CTC 演算法有益。
  • 特殊標記:詞彙表包含單詞分隔符號 (|)、未知標記 ([UNK]) 與填充/空白標記 ([PAD]),這些對 CTC 對齊至關重要。
  • 音訊處理:將原始音訊重新取樣至 16 kHz,以符合模型的預訓練分布。

技術實作

  • 特徵擷取SeamlessM4TFeatureExtractor 將原始音訊振幅值映射為對數梅爾頻譜圖。
  • 分詞器Wav2Vec2CTCTokenizer 處理字元標記與標籤 ID 之間的映射。
  • 訓練目標:模型使用連接時序分類 (CTC) 進行微調,使網路能將輸入序列映射至不同長度的輸出序列,且不需明確對齊。

訓練結果與擴展技巧

在以約 14 小時驗證過的蒙古語訓練資料進行示範性微調時,Wav2Vec2-BERT 的字詞錯誤率 (WER) 與 Whisper-large-v3 競爭(後者在相同任務上達到 33.3% 的 WER)。

擴大訓練的專家技巧

  • 詞彙剪枝:移除極低頻率的字元,以防止資料標註錯誤目標導致的損失尖峰。
  • 時間解析度:每個 CTC 標記的理想持續時間介於 10ms 至 35ms 之間。若訊號片段過長(例如 30-60ms),損失曲線可能會爆炸。加入卷積適配層以對編碼器隱藏狀態進行子抽樣可解決此問題。
  • 防止訓練不足
    • 保持 5% 至 15% 的 warm-up 比例,並增加 epoch 數,以確保語言模型頭的權重與預訓練模型對齊。
    • 調整 AdamW 的 $ beta_{2}$(通常介於 0.95 至 0.98)以平滑損失曲線。

Sources