袁冰清,于 淦,周 霞
(1.國家無線電監(jiān)測(cè)中心上海監(jiān)測(cè)站,上海 201419;2.國家無線電監(jiān)測(cè)中心,北京 100037)
語音識(shí)別(ASR,Auto Speech Recognize),是以語音為研究對(duì)象,通過語音信號(hào)處理和模式識(shí)別讓機(jī)器自動(dòng)識(shí)別和理解人類口述的語言或者文字。語音識(shí)別是一門涉及面很廣的交叉學(xué)科,它與聲學(xué)、語音學(xué)、語言學(xué)、信息理論、模式識(shí)別理論以及神經(jīng)生物學(xué)等學(xué)科都有非常密切的關(guān)系。語音識(shí)別目前是人工智能領(lǐng)域最成熟也是落地最快的技術(shù)。如今,語音識(shí)別系統(tǒng)在現(xiàn)代社會(huì)中的應(yīng)用也越來越廣泛,特別是在人機(jī)交互方面,如智能手機(jī)、智能家居等設(shè)備中的各類語音助手(蘋果Siri,天貓精靈等);在專業(yè)領(lǐng)域的應(yīng)用也是越來越廣,比如在無線電監(jiān)測(cè)與頻譜管理中,對(duì)廣播頻段的監(jiān)測(cè),我們可以通過語音識(shí)別系統(tǒng),對(duì)監(jiān)測(cè)到的語音信號(hào)自動(dòng)識(shí)別,及時(shí)發(fā)現(xiàn)非正常廣播,比如調(diào)頻廣播中的黑電臺(tái)、調(diào)幅廣播中的FD電臺(tái),等等,這樣可以實(shí)現(xiàn)自動(dòng)監(jiān)測(cè),減少工作量。本文簡(jiǎn)單介紹語音識(shí)別原理,希望對(duì)語音識(shí)別系統(tǒng)在其他專業(yè)領(lǐng)域的應(yīng)用有所啟發(fā)。
語音識(shí)別主要包括兩個(gè)基本步驟,一個(gè)是系統(tǒng)“學(xué)習(xí)”或者“訓(xùn)練”,主要任務(wù)就是建立聲學(xué)模型及語言模型。另一個(gè)就是識(shí)別,根據(jù)識(shí)別系統(tǒng)的類型選擇合適的識(shí)別方法,提取語音的特征參數(shù),按照一定的準(zhǔn)則與系統(tǒng)模型比對(duì),經(jīng)過判決得出識(shí)別結(jié)果。實(shí)際上,在開始語音識(shí)別之前,需要對(duì)待識(shí)別的語音(一般先轉(zhuǎn)為非壓縮的純波形文件也就是俗稱的WAV文件)做預(yù)處理,把首尾端的靜音切除,降低對(duì)后續(xù)步驟造成的干擾,這個(gè)操作稱為語音端點(diǎn)檢測(cè)(VAD,Voice Activity Detection)。后續(xù)特征提取部分的目的都是把聲波信號(hào)分離成計(jì)算機(jī)能識(shí)別的信號(hào)。
首先對(duì)聲音進(jìn)行分幀,也就是把聲音切開成多個(gè)小段,每一段稱為一幀。一幀信號(hào)通常為20~50ms,宏觀上足夠短,在一個(gè)音素之內(nèi),在宏觀上足夠長(zhǎng),至少包含2~3個(gè)周期。分幀之后,波形在時(shí)域上沒有任何描述能力,必須做波形變換。首先把時(shí)域信息轉(zhuǎn)換為頻域信息,一般用離散信號(hào)的傅里葉變換FFT;再經(jīng)過三角濾波之后,得到頻譜包絡(luò);最后再做波形變換變成包含語音特征的序列。常見的波形變換的方法是提取MFCC(Mel Frequency Cepstral Coeff icient)特征[1],即根據(jù)人耳的生理特征,把每一幀波形變成一個(gè)多維向量,這個(gè)向量包含了每一幀語音的內(nèi)容信息。至此,聲音就成了一個(gè)12行(假設(shè)聲學(xué)特征是12維)、N列的一個(gè)矩陣。每一幀都用一個(gè)12維的向量表示,色塊的顏色深淺表示向量值的大小。具體過程及結(jié)果如圖1所示。這個(gè)MFCC序列就是整段語音的特征。
圖1 特征提取過程及結(jié)果
這樣待識(shí)別的語音信號(hào)變成一系列的帶有語音特征的序列,待識(shí)別語音序列跟模板中最相似的一幀匹配,保持順序,相同序列對(duì)齊,計(jì)算各幀之間的歐氏距離之和,總距離最小的就為識(shí)別結(jié)果。這種計(jì)算兩個(gè)特征序列的算法為“動(dòng)態(tài)彎算法”。
圖2 單一模板的識(shí)別算法
但是在實(shí)際的語音識(shí)別中,每個(gè)人說法的音色音調(diào)等都不一樣,導(dǎo)致同一個(gè)詞的特征模板是不一樣的,但是每個(gè)詞的可能性都服從高斯分布,因此我們可以把模板拆分成多個(gè)小段,利用高斯分布疊加擬合,也就是高斯混合模型(GMM,Gaussian Mixture Model)。這樣,對(duì)于任意一個(gè)詞(特征向量)就有一個(gè)概率密度。還是用“動(dòng)態(tài)彎”算法對(duì)齊待識(shí)別語音與模型,但是用GMM概率密度代替特征向量的歐式距離,相乘得到一個(gè)總概率,取概率最大的模型為識(shí)別結(jié)果,過程如圖3[1]所示。
GMM不考慮時(shí)序特征,但是語音識(shí)別是包含時(shí)序特征的,因?yàn)榫渥佑稍~組成,后面的詞跟前面的詞有關(guān),一個(gè)詞由幾個(gè)音素組成,后一個(gè)音素跟前面的音素也是有關(guān)系的。而語音識(shí)別的過程其實(shí)就是:把幀識(shí)別成狀態(tài),三個(gè)狀態(tài)組合成一個(gè)音素,音素再組合成單詞。因此引入隱馬爾科夫模型(HMM,Hidden Markov Model),引入轉(zhuǎn)移概率(隱態(tài)),包括當(dāng)前狀態(tài)轉(zhuǎn)移到自身或者其余狀態(tài)的概率,如下圖的0.3為轉(zhuǎn)移到下一個(gè)狀態(tài)的概率,0.7為轉(zhuǎn)移到自身狀態(tài)的概率,0.016為觀察概率,即每一幀和每一個(gè)狀態(tài)對(duì)應(yīng)的概率,由上面的GMM決定。
圖3 多個(gè)模版的高斯混合模型
圖4 HMM在狀態(tài)識(shí)別中的過程
由此,我們可以把模型完全概率化,搭建一個(gè)狀態(tài)網(wǎng)絡(luò),語音識(shí)別的結(jié)果就是從大的狀態(tài)網(wǎng)絡(luò)中找到與聲音最匹配的路徑。從概率上講,語音識(shí)別的基本方程如下[2]:
式中,W*為識(shí)別結(jié)果;W任意單詞;X待識(shí)別語音信號(hào);P(X│W)聲學(xué)模型得到(GMM+HMM);P(W)單詞的先驗(yàn)概率。
連續(xù)的語音識(shí)別也即是一句話的識(shí)別也由W*=argwmaxP(X│W)P(W)決定,只是這里的W和W^*由單詞變成句子,句子的聲學(xué)模型P(X│W)可以由單詞的聲學(xué)模型串起來。
上文介紹的傳統(tǒng)的基于GMM+HMM的語音識(shí)別系統(tǒng)一直是主流的方法。特別是在1990~2010年,語音識(shí)別的基本框架沒有變化,如圖5所示,只是對(duì)其中某些部分進(jìn)行完善和優(yōu)化。
圖5 1990~2010年語音識(shí)別基本框架
直到2006年,深度信念網(wǎng)絡(luò)(DBN,Deep Belief Network)及其相應(yīng)的非監(jiān)督貪心逐層訓(xùn)練算法,解決了深層結(jié)構(gòu)相關(guān)的優(yōu)化難題,并以此引入了深度學(xué)習(xí)網(wǎng)絡(luò)的概念。深度學(xué)習(xí)的橫空出世,到2009年被引入到語音識(shí)別領(lǐng)域,慢慢地開始蠶食GMM+HMM框架。
深度學(xué)習(xí)最開始應(yīng)用在語音識(shí)別中,是用在前端提取特征,替代MFCC。發(fā)展到后面,不再進(jìn)行特征提取,輸入為濾波器組的輸出或者直接波形輸入,而聲學(xué)模型改為深度神經(jīng)網(wǎng)絡(luò)(DNN,Deep Neural network)與HMM模型,DNN提供P(狀態(tài)|輸入),并且成品系統(tǒng)中沒有GMM,但是訓(xùn)練DNN時(shí)需要GMM+HMM系統(tǒng)提供標(biāo)準(zhǔn)答案。深度學(xué)習(xí)(Deeping Learning)常用模型卷積神經(jīng)網(wǎng)絡(luò)(CNN,Convolution Neural Network)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN,Recurrent Neural Network)代替一般的DNN用于特征提取或者聲學(xué)模型[3],又由于RNN訓(xùn)練時(shí)容易梯度消失或者梯度爆炸,導(dǎo)致RNN的記憶力有限,長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(LSTM,Long Short Term Memory Network)及其變體GRU(Gated Recurrent Unit)代替原先的RNN。這時(shí)候還保留著HMM,因?yàn)樯窠?jīng)網(wǎng)絡(luò)只進(jìn)行逐幀判別,訓(xùn)練時(shí),需要由HMM系統(tǒng)提供各音素起止時(shí)間(對(duì)齊),并且解碼時(shí),需要考慮狀態(tài)轉(zhuǎn)移概率。
傳統(tǒng)的HMM模型中,需要模板對(duì)齊;DNN的聲學(xué)模型用來輸出狀態(tài)對(duì)應(yīng)的后驗(yàn)概率,也是需要用到GMM的對(duì)齊結(jié)果,來獲得每一幀的標(biāo)簽。這就需要GMM的對(duì)齊結(jié)果比較準(zhǔn)確,而語音的邊界是不好界定的,這樣給每一幀指定一個(gè)確定的標(biāo)簽本身是值得商榷的。所以端到端的模型就是只有一個(gè)神經(jīng)網(wǎng)絡(luò),對(duì)于整個(gè)識(shí)別過程,模型的輸入就是語音特征(輸入端),輸出就是識(shí)別出的文本,相當(dāng)于一個(gè)黑盒子,只用一個(gè)損失函數(shù)作為訓(xùn)練的優(yōu)化目標(biāo),不再去優(yōu)化一些無用的目標(biāo)了。目前,有兩種主流的端到端的語音識(shí)別模型,連接時(shí)序分類算法(CTC,Connectionist temporal classif ication)和基于注意力機(jī)制(Attention Mechanism)的模型。
CTC不需要對(duì)語音模型對(duì)齊,只需要一個(gè)輸入序列和一個(gè)輸出序列即可以訓(xùn)練,直接輸出序列預(yù)測(cè)的概率,不需要外部的后處理。傳統(tǒng)的語音識(shí)別訓(xùn)練的時(shí)候需要進(jìn)行語音和音素發(fā)音對(duì)齊,每一幀都有相應(yīng)的狀態(tài)標(biāo)記,比如有5幀的輸入x1,x2,x3,x4,x5,對(duì)應(yīng)的標(biāo)注分別就是狀態(tài)a1,a2,a3,a4,a5。CTC的不同之處引入了空幀,不再進(jìn)行逐幀判別,大部分幀輸出為空,小部分輸出為音素,只求輸出音素串于標(biāo)準(zhǔn)答案相同,不要求位置對(duì)齊。多個(gè)輸出序列可以映射到一個(gè)輸出,但是假設(shè)各幀輸出是相互獨(dú)立的。跟傳統(tǒng)的基于HMM模型相比,結(jié)構(gòu)簡(jiǎn)單,沒有轉(zhuǎn)移概率,但是仍然需要詞典跟語音模型。
基于注意力機(jī)制的方法與DNN-HMM或者CTC方法相比,沒有做任何條件獨(dú)立性假設(shè),而是在概率鏈?zhǔn)椒▌t的基礎(chǔ)上直接預(yù)測(cè)后驗(yàn)概率?;谧⒁饬C(jī)制的“編碼-解碼”模型主要由編碼網(wǎng)絡(luò)、解碼網(wǎng)絡(luò)和注意力子網(wǎng)絡(luò)組成。編碼網(wǎng)絡(luò)將原始語音特征序列轉(zhuǎn)換為高層特征序列,注意力子網(wǎng)絡(luò)計(jì)算高層特征序列中每個(gè)元素的權(quán)重,并且將這些元素加權(quán)合并到一個(gè)目標(biāo)向量。解碼網(wǎng)絡(luò)把目標(biāo)向量作為輸入逐個(gè)計(jì)算輸出序列每個(gè)位置出現(xiàn)各個(gè)因素(字素)的后驗(yàn)概率,并通過解碼算法生成音素(字素)序列。其中,注意力子網(wǎng)絡(luò)計(jì)算出的權(quán)重(也被稱為注意力系數(shù))的大小能夠反向序列輸出序列的音素與輸入特征之間關(guān)聯(lián)程度的高低。該模型既不依賴先驗(yàn)對(duì)齊信息,也擺脫輸出音素序列之間的獨(dú)立性假設(shè)。兩種端到端語音識(shí)別系統(tǒng)框架如圖6[4]所示:
圖6 端到端的語音識(shí)別系統(tǒng)架構(gòu)
與傳統(tǒng)的HMM的語音識(shí)別系統(tǒng)相比,端到端的語音識(shí)別系統(tǒng)把聲學(xué)模型、發(fā)音詞典和語音模型全部融合至一套神經(jīng)網(wǎng)絡(luò)中,讓模型變得更加簡(jiǎn)潔的同時(shí)便于對(duì)參數(shù)直接優(yōu)化。端到端模型更強(qiáng)的通用性。既減少對(duì)專業(yè)語言知識(shí)的依賴,又降低語音識(shí)別系統(tǒng)搭建難度;端到端模型的訓(xùn)練數(shù)據(jù)不需要對(duì)齊信息,可直接將帶標(biāo)注的語音用于訓(xùn)練。
目前,常用的端到端語音識(shí)別模型簡(jiǎn)潔,容易訓(xùn)練和使用,在理想情況下的性能可與人媲美。但是在惡劣的條件下,識(shí)別率不盡人意,特別是遠(yuǎn)場(chǎng)、高噪聲等情況下的識(shí)別率較低。未來的語音識(shí)別系統(tǒng),一方面在前端處理的時(shí)候,降低或者去除噪聲,使語音增強(qiáng);另一方面收集大量數(shù)據(jù),讓神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)訓(xùn)練長(zhǎng)見識(shí),以適應(yīng)各種惡劣條件下的應(yīng)用場(chǎng)景。