ICLR 2025|小米新一代Kaldi語音識別算法CR-CTC,純CTC性能實現(xiàn)SOTA
新一代 Kaldi 團隊是由 Kaldi 之父、IEEE fellow、小米集團首席語音科學家 Daniel Povey 領銜的團隊,專注于開源語音基礎引擎研發(fā),從神經(jīng)網(wǎng)絡聲學編碼器、損失函數(shù)、優(yōu)化器和解碼器等各方面重構(gòu)語音技術鏈路,旨在提高智能語音任務的準確率和效率。
目前,新一代 Kaldi 項目 (https://github.com/k2-fsa)主要由四個子項目構(gòu)成:核心算法庫 k2、通用語音數(shù)據(jù)處理工具包 Lhotse、解決方案集合 Icefall 以及服務端引擎 Sherpa,方便開發(fā)者輕松訓練、部署自己的智能語音模型。
近日,小米集團新一代 Kaldi 團隊關于語音識別算法的論文《CR-CTC: Consistency regularization on CTC for improved speech recognition》被 ICLR 2025 接收。
- 論文鏈接:https://arxiv.org/pdf/2410.05101
- 論文代碼:https://github.com/k2-fsa/icefall/pull/1766(已 merge 進 icefall 框架)
摘要
主流的自動語音識別(ASR)模型包括 CTC [1]、transducer [2] 和混合系統(tǒng) CTC/AED [3]。CTC 是其中最簡單、最便于部署的方法,但由于它的性能通常明顯落后于 Transducer 和 CTC/AED,這限制了它的實際應用。
為此,新一代 Kaldi 團隊提出了 Consistency-Regularized CTC (CR-CTC),可以讓純 CTC 模型的識別性能比肩 Transducer 和 CTC/AED。CR-CTC 在多個主流的 ASR 數(shù)據(jù)集,包括 LibriSpeech、Aishell-1、GigaSpeech 等數(shù)據(jù)集上,取得新的 SOTA 結(jié)果(不依賴外部訓練數(shù)據(jù)和外部語言模型)。
例如,在 LibriSpeech 數(shù)據(jù)集上訓練 Zipformer-L,標準 CTC 的 WER 為 2.5/5.72,CTC/AED 的 WER 為 2.09/4.59, Pruned Transducer 的 WER 為 2.00/4.38;CR-CTC 的 WER 為 2.02/4.35;CTC/AED 和 Pruned Transducer 掛上 CR-CTC 聯(lián)合訓練后,WER 可分別進一步降低到 1.96/4.08 和 1.88/3.95。
方法實現(xiàn)
如 Figure 1 所示,CR-CTC 方法非常簡單,先從同一個輸入 Mel-spectrogram x 得到兩個不同的 augmented views 和
,分別輸入?yún)?shù)共享的 encoder 模型 f,得到對應的兩個 CTC 概率分布
和
,除了計算兩個 CTC loss
和
,還引入 consistency regularization loss 來約束兩個分布的一致性:
。系統(tǒng)總體 loss 為:
其中 α 為控制正則的超參數(shù),默認設置為 0.2。
Different augmented views
我們對同一個輸入 x 的兩個 copy 獨立地使用 SpecAugment [4] 來獲得不同的 augmented views 和
。SpecAugment 包含 time warping、frequency masking 和 time masking。由于 time warping 會顯著改變輸出的時間戳,因此我們在創(chuàng)建 copy 前先應用 time warping,防止兩個分支的輸出分布在時間戳上嚴重不匹配。接著,分別對兩個 copy 獨立應用 frequency masking 和 time masking,得到了
和
。相較于普通的 ASR 系統(tǒng),我們特意使用了更大程度的 time masking。
Consistency regularization loss
我們在CTC 分布的每一幀上應用 consistency regularization,通過最小化每一對分布和
之間的雙向 KL 散度:
和
。此處,sg 表示 stop-gradient,防止這一項的梯度影響目標分布。Consistency
regularization loss 公式為:
方法解釋
論文從三個不同的角度來解釋 CR-CTC 的本質(zhì)行為:1)self-distillation;2)masked prediction;3)peak suppression。
Self-distillation
當我們在訓練中使用 dropout [5] 和 stochastic depth [6] 等模型正則技術,可以看作我們正在隱式地訓練隨機采樣的不同 sub-model,這些 sub-model 最終被集成為一個 ensemble 用于推理。與 R-Drop [7] 和 cosub [8] 類似,CR-CTC 在進行對不同 sub-model 之間的 self-distillation,監(jiān)督信號為對方提供的幀級別的 token 分布。另外,CR-CTC 使用了不同的 augmented views(以及更大程度的 time-masking),讓這些 sub-model 接觸輸入數(shù)據(jù)的不同角度的信息,加強他們預測的多樣性,這樣有利于更豐富、更完備的知識蒸餾。
Masked prediction
在 CR-CTC 中,那些覆蓋在 time masking 區(qū)域的幀,被要求著基于其他沒有被 masked 的區(qū)域,去預測對方提供的 token 分布。這個過程類似于 masked-based 自監(jiān)督模型 [9,10,11],鼓勵模型去學習非 mask 部分的上下文表征信息,并發(fā)掘模型隱式的語言建模能力。我們在 CR-CTC 中使用不同的 augmented views,減少兩邊同時被覆蓋在 time masking 區(qū)域的幀的出現(xiàn),提高這些被 masked 位置所接收的 token 分布的質(zhì)量。另外,使用更大程度的 time masking 可以加強 masked prediction 行為,進而增強模型對上下文表征信息的學習。
Peak suppression
眾所周知,CTC 通常會學習到非常尖的概率分布。如 Figure 2 (left) 所示,non-blank token 只占 1 幀,其他的都是 blank,它們的概率都非常高。這種現(xiàn)象表明模型有可能已經(jīng)過擬合了,泛化能力不強。CR-CTC 的 consistency regularization 引導著模型學習兩邊分布的平均,這使得模型學習到的 CTC 分布會更加平滑。這個 peak suppression 行為減少了在訓練數(shù)據(jù)上的過度置信,從而增強模型的泛化能力。如 Figure 2 (right) 所示,CR-CTC 學習到的分布更加平滑,概率更低,伴隨著更多 non-blank 的 repeat 出現(xiàn)。
實驗結(jié)果
論文主要使用 Zipformer [12] 作為 speech encoder 進行實驗驗證。由于 CR-CTC 訓練時需要進行兩次 forward,我們對 CR-CTC 模型的 batch size 和 epoch 數(shù)都設置為標準 CTC 模型的一半,來確保兩者訓練代價可比較。具體使用的 GPU 數(shù)量和 epoch 數(shù)在論文附錄中。
與 SOTA 模型相比較
Table 1、2、3 分別展示了不同模型在 LibriSpeech、Aishell-1、GigaSpeech 三個數(shù)據(jù)集上的表現(xiàn)(不依賴外部訓練數(shù)據(jù)和外部語言模型)。總的來說,CR-CTC 的性能顯著超越標準 CTC,和 CTC/AED 與 Transducer 模型效果相當。另外,掛上 CR-CTC 聯(lián)合訓練,可以進一步提升 CTC/AED 和 Transducer 的性能。在這三個數(shù)據(jù)集上,我們?nèi)〉昧诵碌?SOTA 結(jié)果。
消融實驗
Table 4、5、6 分別展示了 CR-CTC 關于不同解釋角度 self-distillation、masked prediction、peak suppression 的消融實驗結(jié)果,具體說明可參考論文。
與掛一個 auxiliary head 聯(lián)合訓練相比較
想要提升 CTC 系統(tǒng)的性能,一個最直接的方法便是掛一個 AED head 或者一個 Transducer head 聯(lián)合訓練。如 Table 7 所示,CR-CTC 的性能明顯超過這兩個方法,參數(shù)還更少。
在 Conformer 模型上驗證
如 Table 17 所示,使用 Conformer [13] 作為 speech encoder 時,CR-CTC 同樣可以顯著提升 CTC 的性能,并且略微超過 CTC/AED 和 Transducer。