語音識別算法閱讀之DFSMN


論文:
思想:
  對於大詞匯量語音識別,往往需要更深的網絡結構,但是當FSMN[1]或cFSMN[2]的結構很深時容易引發剃度消失和爆炸問題;於是本文對cFSMN結構進一步改進,對序列記憶模塊之間引入skip-connection,保證信息在更深的層之間傳播,緩解剃度消失和爆炸的問題;此外,語音相鄰幀之間會存在一定的信號重疊,帶來了一定的冗余信息,論文在序列記憶模塊引入stride,通過設置合適的stride來跨幀建模,減少了冗余信息;實驗結果表明,DFSMN通過skip-connection能夠更好的利用深度結構來提升識別效果;尤其是在低幀率情況下,相對於BLSTM具有更加明顯的優勢。
模型:論文在cFSMN基礎上,對序列記憶模塊之間引入skip-connection,從而能夠利用較深的網絡結構;從整體上看,DFSMN仍然是純粹的前饋網絡;
  • 隱藏層:全連接結構,激活函數ReLU
  • 線性映射層:低秩的線性映射矩陣,相當於無激活的全連接
  • 序列記憶模塊:包含三部分,一部分來源於上一層序列記憶模塊的輸出;第二部分來源於線性映射層的輸出;第三部分即本層的FSMN結構,對歷史和未來的時序信息進行建模,整合成固定維度的編碼;三部分相加之后經過線性映射輸入到下一層隱藏層
 s 1和s 2分別為歷史和未來時間步的跳躍步長stride,采樣跳幀建模來去除相鄰幀之間的冗余信息
 H為映射函數,一般采樣恆等映射
 序列記憶模塊的延遲τ計算公式為:
 L為網絡中序列記憶模塊的層數,N2為未來的時間片長度,s2為跨幀步長,因延遲只於未來的時間片有關,所以延遲計算與歷史時序無關
訓練:
  • 數據集:
  1. 英文:Switchboard (SWB) and Fisher (FSH) 2000h;測試集:Hub5e00 1831utts;采樣率8k;輸入特征72維fbank(24fbank+1階差分+2階差分)
  2. 中文:20000h,采樣率16k,輸入特征80維log fbank
  • 英文基線系統:
  1. 輸入特征:72fbank
  2. DNN-HMM

    輸入特征的上下文窗(7+1+7)

    6*hidden layer(2048,ReLU)

  1. BLSTM-HMM

    3*BLSTMP(1024forward,1024backward,512線性映射)

  1. cFSMN

    3*72-4×[2048-512(20,20)]-3×2048-512-9004;4層cFSMN(2048全連接(ReLU)+512線性映射+歷史和未來時間片長度20),3層全連接(2048,ReLU),1層線性映射層,輸出單元9004

  1. DFSMN

    3*72-Nf×[2048-512(N1;N2;s1;s2)]-Nd×2048-512-9004;Nf和Nd分別表示cFSMN和全連接層數,N1,N2,s1,s2分別代表歷史時間片個數、未來時間片個數、歷史跨幀步長、未來跨幀步長;其中N1=N2=20,Nd=3固定

  1. 訓練策略:學習率0.00001,momentum0.9;DNN,DFSMN mini-batch 4096;BLSTM mini-batch 16
  • 中文基線系統(5000h)
  1. 輸入特征:80維fbank
  2. 低幀率:30ms/幀
  3. LFR-CD-LCBLSTM-HMM

    3*BLSTM(500forward+500backward)+2全連接(2048,ReLU)+softmax

    建模單元:CD-state

      Nc= 80、Nr= 40

      輸入特征的上下文窗(0+1+0)

    建模單元:CD-phone

      Nc= 27、Nr= 13

    輸入特征的上下文窗(8+1+8)

注:在LCBLSTM[3],語音按照chunks進行非重疊切分, N c代表當前chunks的連續語音幀數、Nr表示Nc后的未來連續語音幀數,用來完成第Nc幀的反向LSTM memory cell state初始化
  1. LFR-cFSMN:

    3*80-Nf×[2048-512(20,20)]-2×2048-512;Nf=6或8或10

    建模單元:CD-state

      輸入特征的上下文窗(1+1+1)

    建模單元:CD-phone

      輸入特征的上下文窗(5+1+5)

  1. LFR-DFSMN:

      11∗80-Nf×[2048-512(N1;N2;s1;s2)]-Nd×2048-512-9841;N1= 10,N2=5,s1= 2,s2= 2,Nd= 2;Nf=8或10

  1. 建模單元:上下文狀態(14359)/上下文音素(9841)
  • 中文基線系統(20000h)
  1. LFR-DFSMN

      11*80−10×[2048−512(5;N2; 2; 1)]-2×2048-512-9841;

  1. LFR-LCBLSTM

      Nc= 27、Nr= 13

      3*BLSTM(500forward+500backward)+2全連接(2048,ReLU)+softmax

實驗結果:
  • DFSMN結構能夠較好的利用深度結構,當網絡層數增加時,模型的識別效果能夠進一步提升;此外,當模型深度達到一定程度時(cFSMN=8),繼續增加模型深度,效果提升不明顯,但並沒有出現下降的情況,也間接證明了skip-connection能夠在深度結構中緩解剃度消失和爆炸問題
  • 在Switchboard英文數據集上,模型參數類似情況下,DFSMN取得了最好的識別結果
  • 在5000小時低幀率(30ms/幀)中文識別任務中,當DFSMN采樣上下文音素作為建模單元時取得了最好的識別結果,相比於以上下文狀態作為建模單元的基線系統LCBLSTM帶來了20%的效果提升;另外,從實驗結果看,以上下文音素作為建模單元要優於上下文狀態
  • 在模型訓練速度方面,LFR-DFSMN相比於LRF-LCBLSTM可以實現3倍以上的訓練加速;同時擁有更好的識別結果
  • 對於LFR-DFSMN,減少序列記憶模塊中未來時間片的個數和跨幀步長,能夠降低輸出延遲時間,當輸出延遲降低時會造成字錯率的輕微上升;當輸出延遲為5幀(5*30=150ms)時,相比於LRF-LCBLSTM依然擁有16.64%的絕對識別效果提升;以上表明,LFR-DFSMN系統能夠在較低延遲的情況下,取得了較好的識別結果,能夠較好的滿足流式語音識別的要求

總結:

  本文提出了一種深度的cFSMN網絡,該網絡在cFSMN之間引入skip-connection,從而能夠較好的利用較深的網絡結構來提升模型識別效果;此外,序列記憶模塊在進行時序建模時,論文引入了跳幀上下文時序建模,能夠有效去除相鄰幀之間的冗余;實驗結果表明,相比於LCBLSTM,DFSMN結構能夠在低幀率和低延遲的情況下,依然能夠取得17%左右的效果提升;同時訓練速度方面提升3倍以上
Reference:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM