七大主流聲學建模技術背后,語音識別準確率如何進一步提升?
2018-09-11 來自: 廣州哆爾芬聲學技術有限公司
語音識別建模對語音識別來說是不可或缺的一部分,因為不同的建模技術通常意味著不同的識別性能,所以這是各個語音識別團隊重點優化的方向。也正是因為如此,語音識別的模型也層出不窮,其中語言模型包括了N-gram、RNNLM等,在聲學模型里面又涵蓋了HMM、DNN、RNN等模型...
簡單來說,聲學模型的任務就是描述語音的物理變化規律,而語言模型則表達了自然語言包含的語言學知識。本文由搜狗語音交互中心語音技術部負責人陳偉來為大家分享伴隨著本輪人工智能浪潮下語音識別建模技術的演進,希望能夠幫大家理清主流的識別建模脈絡以及背后的思考。
搜狗知音引擎是搜狗公司自主研發的一項專注于自然交互的智能語音技術,于2016年8月3日正式對外發布,該技術集合了語音識別、語義理解、語音交互、以及提供服務等多項功能,不僅能聽會說,還能理解會思考, 本文將結合知音引擎中語音識別建模技術的使用來為大家講解。
圖1 搜狗知音引擎
基礎概念
語音幀
考慮到語音的短時平穩特性,語音信號在前端信號處理時要進行加窗分幀的操作,識別特征都按幀來提取,具體請見圖2。(編者注:分幀后的語音信號逐幀提取語音特征用于聲學模型建模。)
圖2 語音幀的劃分
語音識別系統
語音信號經過前端信號處理、端點檢測等處理后,逐幀提取語音特征,傳統的特征類型包括MFCC、PLP、FBANK等特征,提取好的特征送至解碼儀器,在聲學模型、語言模型以及發音詞典的共同指導下,找到最為匹配的詞序列作為識別結果輸出,整體流程請見圖3。識別的公式如圖4所示,可見聲學模型主要描述發音模型下特征的似然概率;語言模型主要描述詞間的連接概率;發音詞典主要是完成詞和音之間的轉換,其中聲學模型建模單元一般選擇三音素模型,以“搜狗語音為例”,
sil-s+ou1 s-ou1+g ou1-g+ou3 g-ou3+y ou3-y+u3 y-u3+y u3-y+in1 y-in1+sil
圖3 語音識別系統流程
圖4 語音識別原理
需要注意的是,輸入特征矢量X代表語音的特征。
主流聲學建模技術
近年來,隨著深度學習的興起,使用了接近30年的語音識別聲學模型HMM(隱馬爾科夫模型)逐漸被DNN(泛指深度神經網絡)所替代,模型精度也有了突飛猛進的變化,整體來看聲學建模技術從建模單元、模型結構、建模流程等三個維度都有了比較明顯的變化,如圖5所示:
圖5 聲學建模演進總結
其中,深度神經網絡超強的特征學習能力大大簡化了特征抽取的過程,降低了建模對于專家經驗的依賴,因此建模流程逐步從之前復雜多步的流程轉向了簡單的端到端的建模流程,由此帶來的影響是建模單元逐步從狀態、三音素模型向音節、字等較大單元演進,模型結構從經典的GMM-HMM向DNN+CTC(DNN泛指深度神經網絡)轉變,演進的中間態是DNN-HMM的混合模型結構。
HMM
HMM最早創立于20世紀70年代。80年代得到了傳播和發展,成為信號處理的一個重要方向,現已成功地用于語音識別,行為識別,文字識別以及故障診斷等領域。
詳細來看,經典的HMM建模框架如下所示:
圖6 HMM建模框架
其中,輸出概率使用高斯混合模型GMM建模,如下圖所示:
DNN-HMM
2012年,微軟鄧力和俞棟老師將前饋神經網絡FFDNN(Feed Forward Deep Neural Network)引入到聲學模型建模中,將FFDNN的輸出層概率用于替換之前GMM-HMM中使用GMM計算的輸出概率,引領了DNN-HMM混合系統的風潮,很多研究者使用了FFDNN、CNN、RNN、LSTM等多種網絡結構對輸出概率進行建模,并取得了很好的效果,如圖7所示。
圖7 DNN-HMM混合建模框架
DNN-HMM建模框架中,輸入特征使用了在當前幀左右拼幀的方式來實現模型對時序信號長時相關性的建模,模型輸出則保持了GMM-HMM經常使用的trihone共享狀態(senone),中文大詞匯量連續語音識別中狀態數一般設置在1萬左右,如圖8所示。
圖8 DNN-HMM建模流程
FFDNN
FFDNN的模型結構如下所示:
圖9 FFDNN建模流程
CNN
編者注:實際上,最早CNN只應用于圖像識別,直到2012年才被用于語音識別系統。
圖10 CNN建模流程
RNN及LSTM
語音的協同發音現象說明聲學模型需要考慮到語音幀之間的長時相關性,盡管上文中DNN-HMM通過拼幀的方式對上下文信息進行了建模,但是畢竟拼接的幀數有限,建模能力不強,因此引入了RNN(循環神經網絡)增強了長時建模的能力,RNN隱層的輸入除了接收前一個隱層的輸出之外,還接收前一時刻的隱層輸出作為當前輸入,通過RNN的隱層的循環反饋,保留了長時的歷史信息,大大增強了模型的記憶能力,語音的時序特性通過RNN也得到了很好的描述。但是RNN的簡單結構在模型訓練進行BPTT(Backpropagation Through Time)時很容易引起梯度消失/爆炸等問題,因此在RNN的基礎上引入了LSTM(長短時記憶模型),LSTM是一種特殊的RNN,通過Cell以及三個門控神經元的特殊結構對長時信息進行建模,解決了RNN出現的梯度問題,實踐也證明了LSTM的長時建模能力優于普通RNN。
圖11 RNN結構
圖12 RNN到LSTM
CTC
上述的建模技術在模型訓練時需要滿足一個條件,就是訓練數據中每一幀都要預先確定對應的標注,即對應DNN輸出狀態的序號,訓練特征序列和標注特征序列必須是等長的,而為了得到標注,需要使用已有模型對訓練數據序列和標注序列進行強制對齊,但是基于大數據訓練時標注的準備比較耗費時間,同時對齊使用的模型精度往往存在偏差,訓練中使用的標注會存在錯誤。因此引入了CTC(Connectionist Temporal Classification)準則,解決了標注序列與特征序列不等長的問題,通過前向后向算法自動學習語音特征中的模型邊界,這種準則與用于時序建模的神經網絡(如LSTM)的結合可以直接用于端到端的模型建模,顛覆了語音識別使用接近30年之久的HMM框架。
CTC準則引入了blank類別,用于吸收發音單元內部的混淆性,更加突出模型與其他模型之間的差異性,因此CTC具有非常明顯的尖峰效果,圖13是使用triphone-lstm-ctc模型對內容為“搜狗語音”的語音進行識別后的輸出概率分布,可以看到大部分區域都被blank吸收,識別出的triphone對應著明顯尖峰。
圖13 CTC尖峰效果演示
可以預期,基于CTC或者引用CTC概念(如LFMMI)的端到端識別技術將逐漸成為主流,HMM框架將逐漸被替代。
其他建模技術
語言建模技術
目前RNNLM的技術已經逐步引入到語音識別中來,通過對更長歷史信息的建模,RNNLM較傳統使用的N-Gram技術對識別性能有了較好的提升,但是考慮到大詞匯量語音識別中,如果完全替換N-Gram會帶來運算量以及運算時間的大幅增加,因此在知音引擎中,RNNLM用在對N-Gram識別輸出的N-Best候選列表的重排序上。
語音喚醒技術
知音引擎中目前針對固定喚醒詞的方式,基于DNN進行端到端的喚醒詞建模,具體如下:
圖14 端到端語音喚醒流程
這種方法盡管取得了非常低的誤喚醒率,但是缺點也很明顯,喚醒詞無法自定義,因此知音引擎中,我們使用DNN提取Bottleneck Feature,用于基于HMM的喚醒模型訓練,較傳統基于MFCC的方式也取得了較好的效果。
關于未來
盡管語音識別建模能力取得了較大的提升,但是遠場、噪聲、口音、發音習慣(吞音)等問題仍然存在,很贊成吳恩達的說法,由95%的準確率發展到99%,盡管只有4%的差距,但是可能會改變人們的交互方式,將實現很少用到經常使用的轉變。
目前語音原始數據獲取的成本越來越低,工業界正在使用數萬小時的已標注數據進行模型更新,將來十萬級的訓練數據將成為可能,怎么能高效的使用數據,主要有以下幾點的考慮:
數據篩選層面:使用無監督、弱監督、半監督的數據進行訓練,同時更高效的挑選數據進行標注,知音引擎已經在使用主動學習的方法進行數據的篩選;
運算層面:基于異構計算的集群在超大數據上高效的完成模型訓練,而運算能力的升級已經從線下訓練擴展到了線上測試;
模型層面:超大數據的學習需要更強能力的模型,目前基于多種模型結構的復合結構(如CNN-LSTM-DNN)已經證明了可行性,后續基于Encoder-Attention-Decoder的序列學習框架也已經在和語音識別進行結合。
同時語音識別盡管現在可以達到很高的準確率,但是準確率從95%到99%甚至100%的這個跨越是由量變到質變的過程,也是決定語音交互能否成為主流交互方式的重要一環,但是目前語音識別的一些老問題仍然存在,技術上仍然沒有能力完全解決,因此技術之外的產品創新也很重要,可以有效彌補準確率上的缺失。
以知音引擎為例,它針對這個問題提供了語音糾錯的解決方案,針對識別中出現的錯誤可以使用自然語音的方式進行修正,比如用戶想說“我叫陳偉”,識別成了“我叫晨煒”,通過語音說出“耳東陳偉大的偉”就會改正識別結果,目前隨著多輪產品的迭代,語音修改已經具備了80%的修改成功率,并且已經應用到了知音引擎的語音交互中,同時在搜狗iOS輸入法中也集成了語音修改的能力。
編者注:總結語音識別系統的流程,總結語音識別系統的流程,聲學建模和語言建模部分是最關鍵的一環,而目前基于深度學習的建模技術已經將模型性能提升到新的階段。不過正如陳偉所說,盡管語音識別的準確率已經達到了較高的水準,但依然有很大的提升空間,那么未來還會出現什么樣的模型呢?讓我們一起期待人工智能特別是深度學習技術新成果的出現。