論文:
SpecAugment: A Simple Data Augmentation Methodfor Automatic Speech Recognition
思想:
SpecAugment是一種log梅爾聲譜層面上的數據增強方法,可以將模型訓練的過擬合問題轉化為欠擬合問題,以便通過大網絡和長時訓練策略來緩解欠擬合問題,提升語音識別效果
模型:
- 輸入特征:log梅爾聲譜
- 聲譜增強:將log梅爾聲譜的時域和頻域看作二維圖像,時間片長度為τ,頻域長度ν
- 時間扭曲,穿過圖像中心的水平直線上,(W,τ-W)范圍內的隨機點,向左或向右平移w距離,0=<w<=W
- 時間掩蔽,沿時間軸方向的[t0,t0+t)范圍內的連續時間步進行掩蔽,其中0=<t0<τ,t服從[0,T]均勻分布
- 頻率掩蔽,沿頻域軸方向的[f0,f0+f)范圍內的連續頻率通道進行掩蔽,其中0=<f0<ν,f服從[0,F]均勻分布

- 網絡框架采用LAS結構[1],encoder部分采用2conv+max_pooling(stride=2)+d層的Bi-LSTM(cell=w)+attention結構;decoder部分采用2LSTM(cell=w)
- 語言模型融合[2]:embeddng (1024 for LibriSpeech/256 for Switchboard)+2LSTM(cell=300)

- 解碼:beam search,beam width=8
訓練策略:
- 數據集:LibriSpeech 960h/Switchboard 300h
- 輸入特征:80維fbanks,batch size=512
- 學習率策略:學習率策略是一種能夠提升識別效果的重要因子,分為快速啟動-穩定-指數衰減(Sr,Si,Sf)
- 快速啟動階段(0~r),學習率lr從零開始增長到0.001
- 穩定階段(Sr~Si)學習率保持穩定
- 指數衰減階段(St~Sf): 學習率指數衰減到學習率最大值的1/100=0.00001
- 權重噪聲策略:標准差為0.075的高斯噪聲,權重噪聲有助於提升模型魯棒性,開始時間Snoise


其中1、2、3分別為模型訓練的迭代次數三只模式,由短到長,Sr為學習率快速上升階段的step,Snoise為應用權重噪聲的開始的step,Si為學習率指數衰減開始的step,Sf為指數衰減終止的step
- 均勻標簽平滑:不確定度為0.1,即正確的類別標簽置信度降低0.9,其他類別標簽置信度相應提升0.1,但是當學習率較小時,標簽平滑容易導致模型訓練不穩定,所以最好在學習率衰減之前應用權重噪聲較好
實驗效果:
實驗中的增強參數如下

- log梅爾聲譜增強、學習率/權重噪聲策略、增加LSTM深度和結點數均有助於提升識別效果;其中LAS-d-w,d為LSTM層數,w為結點數

- 不采用LM情況下,LAS-specaugment即可得到state-of-the-art效果,采用LM時進一步提升了state-of-the-art效果


- 聲譜增強的三種策略中,時間扭曲策略相比時間和頻率掩蔽策略對結果的提升最小,並且計算代價最大

結論:
- 時間扭曲有助於提升識別效果,但是相對時間和頻率掩蔽策略重要性最低,且計算代價最高
- log梅爾聲譜增強能夠將模型訓練的過擬合問題轉化為欠擬合問題,從而可以通過大模型和長時訓練予以緩解

- 標簽平滑策略容易使模型訓練不穩定,尤其當學習率較小時更為嚴重,所以標簽平滑策略最好應用在學習率快速上升和hold階段
env:
- tensorflow/pytorch
- python3
- numpy
- librosa
- matplotlib
安裝:pip3 install SpecAugment
Usage:python3 spec_augment_test_TF.py/spec_augment_test_pytorch.py
增強效果:

原始聲譜

時域和頻域掩蔽
Reference: