天天看點

AI浪潮下,語音識别模組化技術的演進 | 硬創公開課基礎概念主流聲學模組化技術其他模組化技術關于未來

語音識别模組化對語音識别來說是不可或缺的一部分,因為不同的模組化技術通常意味着不同的識别性能,是以這是各個語音識别團隊重點優化的方向。也正是因為如此,語音識别的模型也層出不窮,其中語言模型包括了n-gram、rnnlm等,在聲學模型裡面又涵蓋了hmm、dnn、rnn等模型...

簡單來說,聲學模型的任務就是描述語音的實體變化規律,而語言模型則表達了自然語言包含的語言學知識。本期硬創公開課邀請到了搜狗語音互動中心語音技術部負責人陳偉來為大家分享伴随着本輪人工智能浪潮下語音識别模組化技術的演進,希望能夠幫大家理清主流的識别模組化脈絡以及背後的思考。

AI浪潮下,語音識别模組化技術的演進 | 硬創公開課基礎概念主流聲學模組化技術其他模組化技術關于未來

嘉賓介紹:陳偉,搜狗公司桌面事業部專家研究員,語音互動中心語音技術部負責人,負責搜狗語音識别、語音合成、音樂檢索、聲紋識别、手寫識别等多項技術的研發工作,同時負責搜狗知音引擎語音技術的研發,緻力于通過技術和産品的創新提升語音互動品質,為使用者提供優質的語音使用體驗。

搜狗知音引擎是搜狗公司自主研發的一項專注于自然互動的智能語音技術,于2016年8月3日正式對外釋出,該技術集合了語音識别、語義了解、語音互動、以及提供服務等多項功能,不僅能聽會說,還能了解會思考, 本文将結合知音引擎中語音識别模組化技術的使用來為大家講解。

AI浪潮下,語音識别模組化技術的演進 | 硬創公開課基礎概念主流聲學模組化技術其他模組化技術關于未來

圖1   搜狗知音引擎

考慮到語音的短時平穩特性,語音信号在前端信号處理時要進行加窗分幀的操作,識别特征都按幀來提取,具體請見圖2。(編者注:分幀後的語音信号逐幀提取語音特征用于聲學模型模組化。)

AI浪潮下,語音識别模組化技術的演進 | 硬創公開課基礎概念主流聲學模組化技術其他模組化技術關于未來

 圖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

AI浪潮下,語音識别模組化技術的演進 | 硬創公開課基礎概念主流聲學模組化技術其他模組化技術關于未來

圖3   語音識别系統流程

AI浪潮下,語音識别模組化技術的演進 | 硬創公開課基礎概念主流聲學模組化技術其他模組化技術關于未來

圖4   語音識别原理

需要注意的是,輸入特征矢量x代表語音的特征。

近年來,随着深度學習的興起,使用了接近30年的語音識别聲學模型hmm(隐馬爾科夫模型)逐漸被dnn(泛指深度神經網絡)所替代,模型精度也有了突飛猛進的變化,整體來看聲學模組化技術從模組化單元、模型結構、模組化流程等三個次元都有了比較明顯的變化,如圖5所示:

AI浪潮下,語音識别模組化技術的演進 | 硬創公開課基礎概念主流聲學模組化技術其他模組化技術關于未來

圖5   聲學模組化演進總結

其中,深度神經網絡超強的特征學習能力大大簡化了特征抽取的過程,降低了模組化對于專家經驗的依賴,是以模組化流程逐漸從之前複雜多步的流程轉向了簡單的端到端的模組化流程,由此帶來的影響是模組化單元逐漸從狀态、三音素模型向音節、字等較大單元演進,模型結構從經典的gmm-hmm向dnn+ctc(dnn泛指深度神經網絡)轉變,演進的中間态是dnn-hmm的混合模型結構。

hmm最早創立于20世紀70年代。80年代得到了傳播和發展,成為信号處理的一個重要方向,現已成功地用于語音識别,行為識别,文字識别以及故障診斷等領域。

詳細來看,經典的hmm模組化架構如下所示:

AI浪潮下,語音識别模組化技術的演進 | 硬創公開課基礎概念主流聲學模組化技術其他模組化技術關于未來

圖6   hmm模組化架構

其中,輸出機率使用高斯混合模型gmm模組化,如下圖所示:

AI浪潮下,語音識别模組化技術的演進 | 硬創公開課基礎概念主流聲學模組化技術其他模組化技術關于未來

2012年,微軟鄧力和俞棟老師将前饋神經網絡ffdnn(feed forward deep neural network)引入到聲學模型模組化中,将ffdnn的輸出層機率用于替換之前gmm-hmm中使用gmm計算的輸出機率,引領了dnn-hmm混合系統的風潮,很多研究者使用了ffdnn、cnn、rnn、lstm等多種網絡結構對輸出機率進行模組化,并取得了很好的效果,如圖7所示。

AI浪潮下,語音識别模組化技術的演進 | 硬創公開課基礎概念主流聲學模組化技術其他模組化技術關于未來

圖7   dnn-hmm混合模組化架構

dnn-hmm模組化架構中,輸入特征使用了在目前幀左右拼幀的方式來實作模型對時序信号長時相關性的模組化,模型輸出則保持了gmm-hmm經常使用的trihone共享狀态(senone),中文大詞彙量連續語音識别中狀态數一般設定在1萬左右,如圖8所示。

AI浪潮下,語音識别模組化技術的演進 | 硬創公開課基礎概念主流聲學模組化技術其他模組化技術關于未來

圖8   dnn-hmm模組化流程

ffdnn的模型結構如下所示:

AI浪潮下,語音識别模組化技術的演進 | 硬創公開課基礎概念主流聲學模組化技術其他模組化技術關于未來

圖9   ffdnn模組化流程

編者注:實際上,最早cnn隻應用于圖像識别,直到2012年才被用于語音識别系統。
AI浪潮下,語音識别模組化技術的演進 | 硬創公開課基礎概念主流聲學模組化技術其他模組化技術關于未來

圖10   cnn模組化流程

語音的協同發音現象說明聲學模型需要考慮到語音幀之間的長時相關性,盡管上文中dnn-hmm通過拼幀的方式對上下文資訊進行了模組化,但是畢竟拼接的幀數有限,模組化能力不強,是以引入了rnn(循環神經網絡)增強了長時模組化的能力,rnn隐層的輸入除了接收前一個隐層的輸出之外,還接收前一時刻的隐層輸出作為目前輸入,通過rnn的隐層的循環回報,保留了長時的曆史資訊,大大增強了模型的記憶能力,語音的時序特性通過rnn也得到了很好的描述。但是rnn的簡單結構在模型訓練進行bptt(backpropagation through time)時很容易引起梯度消失/爆炸等問題,是以在rnn的基礎上引入了lstm(長短時記憶模型),lstm是一種特殊的rnn,通過cell以及三個門控神經元的特殊結構對長時資訊進行模組化,解決了rnn出現的梯度問題,實踐也證明了lstm的長時模組化能力優于普通rnn。

AI浪潮下,語音識别模組化技術的演進 | 硬創公開課基礎概念主流聲學模組化技術其他模組化技術關于未來

圖11   rnn結構

AI浪潮下,語音識别模組化技術的演進 | 硬創公開課基礎概念主流聲學模組化技術其他模組化技術關于未來

圖12  rnn到lstm

上述的模組化技術在模型訓練時需要滿足一個條件,就是訓練資料中每一幀都要預先确定對應的标注,即對應dnn輸出狀态的序号,訓練特征序列和标注特征序列必須是等長的,而為了得到标注,需要使用已有模型對訓練資料序列和标注序列進行強制對齊,但是基于大資料訓練時标注的準備比較耗費時間,同時對齊使用的模型精度往往存在偏差,訓練中使用的标注會存在錯誤。是以引入了ctc(connectionist temporal classification)準則,解決了标注序列與特征序列不等長的問題,通過前向後向算法自動學習語音特征中的模型邊界,這種準則與用于時序模組化的神經網絡(如lstm)的結合可以直接用于端到端的模型模組化,颠覆了語音識别使用接近30年之久的hmm架構。

ctc準則引入了blank類别,用于吸收發音單元内部的混淆性,更加突出模型與其他模型之間的差異性,是以ctc具有非常明顯的尖峰效果,圖13是使用triphone-lstm-ctc模型對内容為”搜狗語音”的語音進行識别後的輸出機率分布,可以看到大部分區域都被blank吸收,識别出的triphone對應着明顯尖峰。

AI浪潮下,語音識别模組化技術的演進 | 硬創公開課基礎概念主流聲學模組化技術其他模組化技術關于未來

圖13  ctc尖峰效果示範

可以預期,基于ctc或者引用ctc概念(如lfmmi)的端到端識别技術将逐漸成為主流,hmm架構将逐漸被替代。

目前rnnlm的技術已經逐漸引入到語音識别中來,通過對更長曆史資訊的模組化,rnnlm較傳統使用的n-gram技術對識别性能有了較好的提升,但是考慮到大詞彙量語音識别中,如果完全替換n-gram會帶來運算量以及運算時間的大幅增加,是以在知音引擎中,rnnlm用在對n-gram識别輸出的n-best候選清單的重排序上。

知音引擎中目前針對固定喚醒詞的方式,基于dnn進行端到端的喚醒詞模組化,具體如下:

AI浪潮下,語音識别模組化技術的演進 | 硬創公開課基礎概念主流聲學模組化技術其他模組化技術關于未來

圖14  端到端語音喚醒流程

這種方法盡管取得了非常低的誤喚醒率,但是缺點也很明顯,喚醒詞無法自定義,是以知音引擎中,我們使用dnn提取bottleneck feature,用于基于hmm的喚醒模型訓練,較傳統基于mfcc的方式也取得了較好的效果。

AI浪潮下,語音識别模組化技術的演進 | 硬創公開課基礎概念主流聲學模組化技術其他模組化技術關于未來

盡管語音識别模組化能力取得了較大的提升,但是遠場、噪聲、口音、發音習慣(吞音)等問題仍然存在,很贊成吳恩達的說法,由95%的準确率發展到99%,盡管隻有4%的差距,但是可能會改變人們的互動方式,将實作很少用到經常使用的轉變。

目前語音原始資料擷取的成本越來越低,工業界正在使用數萬小時的已标注資料進行模型更新,将來十萬級的訓練資料将成為可能,怎麼能高效的使用資料,主要有以下幾點的考慮:

資料篩選層面:使用無監督、弱監督、半監督的資料進行訓練,同時更高效的挑選資料進行标注,知音引擎已經在使用主動學習的方法進行資料的篩選; 運算層面:基于異構計算的叢集在超大資料上高效的完成模型訓練,而運算能力的更新已經從線下訓練擴充到了線上測試; 模型層面:超大資料的學習需要更強能力的模型,目前基于多種模型結構的複合結構(如cnn-lstm-dnn)已經證明了可行性,後續基于encoder-attention-decoder的序列學習架構也已經在和語音識别進行結合。

同時語音識别盡管現在可以達到很高的準确率,但是準确率從95%到99%甚至100%的這個跨越是由量變到質變的過程,也是決定語音互動能否成為主流互動方式的重要一環,但是目前語音識别的一些老問題仍然存在,技術上仍然沒有能力完全解決,是以技術之外的産品創新也很重要,可以有效彌補準确率上的缺失。 

以知音引擎為例,它針對這個問題提供了語音糾錯的解決方案,針對識别中出現的錯誤可以使用自然語音的方式進行修正,比如使用者想說“我叫陳偉”,識别成了“我叫晨炜”,通過語音說出“耳東陳偉大的偉”就會改正識别結果,目前随着多輪産品的疊代,語音修改已經具備了80%的修改成功率,并且已經應用到了知音引擎的語音互動中,同時在搜狗ios輸入法中也內建了語音修改的能力。

編者注:總結語音識别系統的流程,總結語音識别系統的流程,聲學模組化和語言模組化部分是最關鍵的一環,而目前基于深度學習的模組化技術已經将模型性能提升到新的階段。不過正如陳偉所說,盡管語音識别的準确率已經達到了較高的水準,但依然有很大的提升空間,那麼未來還會出現什麼樣的模型呢?讓我們一起期待人工智能特别是深度學習技術新成果的出現。

本文作者:程弢

繼續閱讀