簡單粗暴而有效的改圖:自動語音識別資料擴增的“一條野路”
神經網路的調參無疑是一個巨大的工程。
如何在調參之前擁有更佳的表現?千辛萬苦調好了但卻過擬合,如何擁有更好的泛化能力?這無疑是人肉調參的必經之痛。一個通用的認知是,訓練資料會限制模型表現的上限,能擁有更好的訓練資料,無疑成功了一大截兒。
近日,Daniel S. Park 等人在自動語音識別(Automatic Speech Recognition,ASR)模型訓練上,找到了一種簡單卻強大的資料增強方法——SpecAugment。 該操作另闢蹊徑,將原始語音資料生成的梅爾倒譜圖直接進行影象變換,擴增訓練資料,化腐朽為神奇,結果很棒。
啥是自動語音識別
自動語音識別,即依託深度神經網路模型將語音自動識別為文字輸入,無論是 Siri 助手還是微軟小冰,抑或佔據生活一部分的微信,都有它的身影,相信這個時代的你也早已習慣用語音轉輸入解放雙手。
傳統 ASR 模型的原始輸入資料一般先經過預處理,將收集的音波轉化為頻譜圖如梅爾倒頻譜,也即梅爾頻率倒譜系數(Mel Frequency Cepstrum Coefficient,MFCC,一定程度上模擬了人耳對聲音的處理特點)的譜圖。
圖 | 音波轉化為梅爾倒頻譜圖結果示意圖(來源:Daniel S. Park,et al./ Google Brain)
梅爾倒譜的一般流程是將聲音訊號進行傅立葉轉換得到頻譜,再進行取對數以及取逆傅立葉變換。
傳統 ASR 模型擴增資料一般是將收集到的音波進行改變加速、減速、加背景噪音等變換來進行資料集的豐富,最後,這種擴增後的音訊也要轉化為頻譜圖。
然而,直接改變頻譜圖進行資料擴增,能否提升模型表現?畢竟,影象領域的擴增手段十分豐富,直接將頻譜作為影象用一定手段進行變換結果如何?
Daniel S. Park 等人的 SpecAugment 方法證明,這是一個簡單易行的好路子,可以實現線上訓練,計算成本低廉無需額外資料,還能使 ASR 任務 LibriSpeech 960h(語音識別技術的最權威主流的開源資料集,包括近 1000 小時的英文發音和對應文字)和 Switchboard 300h(交換機電話語音語料庫)比目前最佳模型的表現更好。
SpecAugment 的“出彩”之處
首先,在模型訓練之前將輸入資料——音訊資料的梅爾倒譜,進行影象處理,這也是 SpecAugment 這條野路出彩的基礎。即對梅爾倒頻譜的橫軸一段時間步長的頻譜進行左或右扭轉翹曲、或者掩蔽一段時長的譜圖(時間遮蔽,對縱向進行掩蔽)、或是某些梅爾頻率的訊號(頻率遮蔽,對橫向進行掩蔽),得到了一系列的擴增樣本。
這樣的處理使得模型能夠學習到時間軸上發生損失變形的音訊、部分頻率缺失的音訊,以及丟失部分語音片段的音訊的特點,增加了訓練模型對這些資訊的處理能力,也增強模型的泛化能力。
圖 | 梅爾倒頻譜的擴增變換手段:從上到下依次為沒有應用增強、一定時間步長的扭曲,頻率遮蔽和時間遮蔽。(來源:Daniel S. Park,et al/ Google Brain)
模型訓練
輸入資料處理完畢後,訓練語音識別模型,這裡採用 LAS(Listen Attend and Spell networks)模型。LAS 模型主要是由 Listener 和 Speller 兩個子模型組成,其中 Listener 是一個聲學編碼器(Encoder,收集資料,相當於“聽”),Speller 是一個基於注意力機制的解碼器(Decoder,將收集的特徵翻譯成字元,相當於“說”)
訓練 SpecAugment 的 Listener 子模型:輸入的梅爾倒譜首先經兩層卷積神經網路(CNN),經最大池化且步幅為 2,得到的結果輸入到 BLSTM(雙向長短期交替記憶模型)中,產生尺寸為 d x w 的基於注意力機制的特徵。
訓練 SpecAugment 的 Speller 子模型:將上一步驟中基於注意力機制產生的特徵向量輸入到一個二層 RNN(Recurrent Neural Network)模型中,訓練集中的文字已用 WPM(Word Piece Model)進行了 token 處理,利用集束搜尋(Beam Search),集束寬為 8,得到 token 表示的預測文字(token 處理即分詞處理,之後進行詞嵌入,自然語言處理利用詞嵌入來將詞向量化表示)。至此,實現語音轉文字過程。
提升表現
比較訓練集擴增前後訓練出的 LAS 模型在測試集上的詞錯誤率(Word Error Rate,WER ),不改變任何超引數,測試結果錯詞率顯著降低,可見無需調參,擴增訓練集效果明顯。
圖 | 擴增訓練集與否的兩個模型在資料集 LibriSpeech 上有噪音測試集和無噪音測試集的表現。(來源:Daniel S. Park,et al/ Google Brain)
對於過擬合問題,雖然訓練集上利用擴增的模型表現與無擴增相差並不是很多,但在開發集上,WER 有明顯的降低,說明模型泛化能力提升,可以預測未訓練過的資料,過擬合得到解決。
圖 | 擴增訓練集與否的兩個模型在訓練集、有噪音開發集和無噪音開發集集上的表現(來源:Daniel S. Park,et al/ Google Brain)
這個模型啥水平?
1)優於現有最佳 ASR 模型
擴增訓練集後調整模型引數以及適當訓練迭代,使得模型表現達到最佳,在資料集 LibriSpeech 960h 和 Switchboard 300h 有無噪音的測試集上,擴增模型表現與現有最佳模型的錯詞率結果對比發現,擴增方法明顯取勝。無論是傳統 ASR 模型(如 HMM)還是端到端的神經網路模型(如 CTC/ASG),採用 SpecAugment 方法訓練後的 LAS 模型表現都明顯更好。
圖 | LibriSpeech 960h 和 Switchboard 300h 資料集上不同模型的表現(來源:Daniel S. Park,et al/ Google Brain)
2)優於利用語言模型的 ASR 模型
引入利用大量純文字語料庫訓練的語言模型(Language Models,LMs)能夠使 ASR 模型效果大大提升,因為可以用語料庫中的大量資訊使模型功能更強,這也是 ASR 任務的一個通用做法。語言模型一般是獨立訓練的,使用 ASR 模型時需要佔據一定記憶體進行儲存,這使其難以在小型裝置上應用。而 SpecAugment 模型的優勢是,即使不利用語言模型也優於現有引入語言模型的 ASR 模型。這意味著語言模型的大記憶體問題,有了解決之路。
圖 | LibriSpeech 960h 和 Switchboard 300h 資料集上不同 ASR 模型引入語言模型有否的表現(來源:Daniel S. Park,et al/ Google Brain)
總結,利用改變頻譜圖的方式擴增音訊資料樣本,訓練出的 ASR 模型表現極佳,優於現有最好模型,甚至超過引入語言模型,很好用。
-End-
參考:
語料庫:
http://www.openslr.org/12/
https://catalog.ldc.upenn.edu/LDC97S62
文獻:
https://arxiv.org/pdf/1508.01211.pdf
https://arxiv.org/abs/1904.08779
https://arxiv.org/pdf/1904.03288.pdf
https://arxiv.org/pdf/1810.11352.pdf
https://arxiv.org/pdf/1805.03294.pdf
https://arxiv.org/pdf/1609.03193.pdf
http://www.speech.cs.cmu.edu/15-492/slides/03_mfcc.pdf
https://ieeexplore.ieee.org/abstract/document/7050699
概念解釋(wiki)
https://en.wikipedia.org/wiki/Language_model
https://en.wikipedia.org/wiki/Spectrogram
https://en.wikipedia.org/wiki/Word_error_rate
https://en.wikipedia.org/wiki/Hidden_Markov_model
-End-
關注 DeepTech
發現改變世界的新興科技
(微訊號:deeptechchina)
▼