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