魚 昆,張紹陽,侯佳正,張少博
(長安大學(xué) 信息工程學(xué)院,西安 710064)
語音是采用一定語言規(guī)則通過人體發(fā)聲器官發(fā)出的有規(guī)律的聲音信號.語音識別(Auto Speech Recognition,ASR)是研究如何將語音信息轉(zhuǎn)化成文本信息.語音的研究領(lǐng)域可以細分為語音識別、語音合成、聲紋識別.其涉及到信號處理,自然語言處理等.在發(fā)展過程中經(jīng)歷了3 個階段.一是孤立詞識別,二是連接詞識別,如連續(xù)數(shù)字或連續(xù)單詞,三是大詞匯量下連續(xù)語音識別.
自上世紀(jì)50年代開始,著手于最簡單的數(shù)字識別任務(wù),語音識別領(lǐng)域進入研究者的視野.到80年代,研究者們采用統(tǒng)計分析的方法使連續(xù)語音識別成為可能.在我國,50年代末有研究者采用電子管電路,對英語中的元音進行嘗試識別.90年代,清華大學(xué)和中科院自動化所等單位在漢語聽寫機原理樣機的研制方面取得有效成果[1].進入21世紀(jì),深度學(xué)習(xí)的發(fā)展極大促進了語音識別技術(shù).2017年,微軟宣布了其在Switchboard 詞錯率(Word Error Rate,WER)降至5.1%[2],這意味一定條件下機器已經(jīng)可以像人類專業(yè)速記員一樣識別詞語了.2018年阿里巴巴語音識別模型DFSMN 采用開源框架Kaldi 進行構(gòu)建,在Fisher (FSH)數(shù)據(jù)集上測試詞錯率僅為9.4%[3].百度的模型在其自建的中文數(shù)據(jù)集上訓(xùn)練并測試,WER 低至7.93%,取得良好的效果[4].但是在復(fù)雜多變的應(yīng)用場景中,識別準(zhǔn)確率會大大下降.因此,語音識別領(lǐng)域還有許多問題需要繼續(xù)研究和解決.
早在1952年,首先研究了特定說話人孤立數(shù)字,是由貝爾實驗室的Davis 等進行的[5].1956年,RCA 實驗室的奧爾森通過帶通濾波器,實現(xiàn)了一些單音節(jié)詞的識別[1].1959年,Fry和Denes 等通過頻譜分析,對語音的特征進行提取,然后采用模式匹配的方法,識別元音和輔音[1].
一般認為,人們在10-30 ms的時段內(nèi),語音是穩(wěn)定的,因此它是一個短時的時不變信號.一般的特征提取方法有:線性預(yù)測編碼參數(shù)(LPCC),感知線性預(yù)測系統(tǒng)(PLP),梅爾頻率倒譜系數(shù)(MFCC)等.
1980年,Davis 等在前人研究的基礎(chǔ)上,做了大量生理心理學(xué)實驗,得到了一組經(jīng)驗公式[6],頻率轉(zhuǎn)換公式為:
對每幀信號進行變換,采用信號處理中的短時傅
里葉變換:
其中,w(n)為窗函數(shù).
RCA 實驗室的Martin 等在1960年代末提出了時間歸正的相關(guān)方法.同時蘇聯(lián)的Vintsyuk 也提出了采用動態(tài)規(guī)劃方法來解決對齊問題[7].最終在70年代,日本學(xué)者Sakoe 給出了動態(tài)時間歸正(Dynamic Time Warping,DTW)算法,也稱動態(tài)時間彎折、動態(tài)時間規(guī)整,其將時間和距離計算結(jié)合起來,采用動態(tài)規(guī)劃的思想進行歸正[8].
假設(shè)首先根據(jù)統(tǒng)計得來某個語音的模板,其特征矢量序列為X={x1,x2,x3,···,xI},輸入語音特征矢量序列為Y={y1,y2,y3,···,yJ},I≠J.遞推公式為:
其中,d[i][j]=(y[j]?x[i])2表示xi和yj之間的歐式距離,dtw[i][j]表示DTW 距離,當(dāng)算出dtw[I][J]時遞推結(jié)束.
70年代末,Buzo 等[9]提出了矢量量化(VQ),并將其成功應(yīng)用.首先采用統(tǒng)計方法,將某個語音對應(yīng)的多個信號劃為一組,用中心矢量作為代表值.這樣,就將d維無限空間劃分為K個區(qū)域邊界,每個區(qū)域稱為一個包腔,當(dāng)待識別的輸入信號的矢量給定時,將其與這些包腔的邊界進行比較,當(dāng)輸入信號屬于某個包腔時,就被量化為此包腔的中心矢量值.包腔的中心稱為碼字,碼字的組合稱為碼本.一般采用K-means 算法或LBG 算法獲得碼字.采用歐氏距離(均方差距離)度量.這種技術(shù)主要用于孤立詞的語音識別.
從1980年代開始,CMU 使用VQ/HMM (Hidden Markov Model)實現(xiàn)了一個語音識別系統(tǒng)SPHINX.可以實現(xiàn)997 詞的非特定人連續(xù)語音識別[10].隱馬爾可夫模型是在70年代由Baum和Baker 等建立和應(yīng)用的[11].
HMM 具有無后效性的特征,參數(shù)包含初始概率和概率轉(zhuǎn)移矩陣,HMM 中的觀察變量和狀態(tài)通過一組概率分布相聯(lián)系.這個隱變量和觀察值的對應(yīng)的統(tǒng)計規(guī)律,用高斯混合模型(Gaussian Mixture Model,GMM)表示.K 階高斯混合模型是由k個高維聯(lián)合高斯分布加權(quán)求和而得:
其中,N(x|μk,Σk)稱為混合模型中的第k個分量,πk稱為混合系數(shù),滿足:
對于語音來講,同一個音素可能在不同情態(tài)下的發(fā)音方式區(qū)別很大,語音特征區(qū)別也就很大,因此需要用多中心的分布來對應(yīng)一個HMM 中的狀態(tài),因此兩者結(jié)合起來,就形成了GMM-HMM 方法.它由一組參數(shù)描述:N,狀態(tài)數(shù)目;π,初始狀態(tài)概率;A,狀態(tài)轉(zhuǎn)移概率矩陣;B,觀察值概率分布.
GMM-HMM的訓(xùn)練分為兩步,首先是求GMM的參數(shù),語音字典建立后,語音和音素狀態(tài)建立了多對一的對應(yīng)關(guān)系.將同一個音素狀態(tài)的所有語音的特征進行分別提取,用這些數(shù)據(jù)建立一個GMM 來對這個音素狀態(tài)進行擬合.重復(fù)這一過程,將所有的音素狀態(tài)分別建模.第二步是對HMM 中的參數(shù)π和A進行估計(訓(xùn)練),即給定一個觀察值序列O=o1,o2,···,oT,確定一個λ=(π,A,B),使P(O|λ)最大.一般使用Baum-Welch算法進行,類似于EM 算法,利用遞歸的思想,使P(O|λ)取得最大值,最后得到模型參數(shù)組 λ=(π,A,B).至此,GMM-HMM 模型的訓(xùn)練完成.
使用Viterbi 算法進行預(yù)測.即給定觀察值序列O=o1,o2,···,oT,和模型λ=(π,A,B),確定一個最佳狀態(tài)序列Q′=q′1,q′2,···,q′T.定義δt(i)為時刻t狀態(tài)為i的所有單個路徑 (i1,i2,···,it)中概率的最大值,φt(i)為時刻t狀態(tài)為i的所有單個路徑(i1,i2,···,it?1,i)中概率最大的第t-1 個節(jié)點.
1980年代,人工神經(jīng)網(wǎng)絡(luò)(ANN)被引入到語音識別[2].但是由于計算能力的限制和人工神經(jīng)網(wǎng)絡(luò)的理論不完備,采用人工神經(jīng)網(wǎng)絡(luò)方法的語音識別并沒有更加蓬勃的發(fā)展起來.
1.5.1 引入DNN 到語音識別
2006年,Hinton 等提出了深度置信網(wǎng)絡(luò)(DBN)[12],貪婪的逐層無監(jiān)督學(xué)習(xí)算法是其核心.通過先使用DBN 來對多層感知機進行預(yù)訓(xùn)練,然后通過反向傳播算法來進行微調(diào),提供了一種解決深層網(wǎng)絡(luò)優(yōu)化過程中過擬合和梯度消失問題的有效途徑.Deng 等促成了這一實踐的成功[13].他們使用深度神經(jīng)網(wǎng)絡(luò)DNN(Deep Neural Network)代替?zhèn)鹘y(tǒng)的GMM-HMM 系統(tǒng)中的GMM,以音素狀態(tài)為建模單位,提出了DNN-HMM的識別方法(如圖1),顯著降低了誤識率,使其進入到真實用戶可以接受的范圍[14].和GMM-HMM 相比,DNN替換了GMM,語音信號的狀態(tài)與觀察值的對應(yīng)采用深度神經(jīng)網(wǎng)絡(luò)來進行建模擬合.
圖1 DNN-HMM 結(jié)構(gòu)圖
DNN的輸入可以是MFCC 特征,也可以是更底層的濾波器組(Filter BanK,FBK)聲學(xué)特征.輸出矢量的維度對應(yīng)到HMM的狀態(tài)的個數(shù).
1.5.2 CNN
使用CNN 來進行語音識別,主要是將卷積層和池化層堆疊起來以獲取更高級別的特征,這些層的頂部,有一個標(biāo)準(zhǔn)的全連接層,代表HMM 狀態(tài),它對網(wǎng)絡(luò)中訓(xùn)練出來的特征進行整合.LeCun 等首先提出了沿時間軸進行卷積的語音數(shù)據(jù)CNN[15].這樣可以獲得相對較小的時間偏移,獲得具有魯棒性的特征.
Abedel-Hamid 等[16]通過沿頻率軸而不是時間軸應(yīng)用卷積和最大池化,實現(xiàn)了重大的提升.發(fā)現(xiàn)沿頻率軸的卷積會產(chǎn)生對小頻移具有較高的魯棒性,這對于說話者或情緒變化具有較好的適應(yīng)能力.越來越多的研究人員在時間軸和頻率軸上探索了卷積的方法.
這些探索和試驗表明,在DNN-HMM 模型中,CNN的性能優(yōu)于完全連接的DBN.這是由于DBN 以任何順序解釋輸入,但實際上語音的特征與頻率和時間上緊密相關(guān),權(quán)重共享使得CNN 可以捕獲這些局部相關(guān)性.其次,權(quán)重共享和合并有助于CNN 捕獲等變差異并獲得更好的魯棒性及穩(wěn)定性.而對于DBN,若要在較小的頻率和時間偏移上捕獲此類不變性,需要大量的參數(shù).
Sainath 等[17]證明,對于大型詞匯任務(wù),CNN的性能比DBN 更好.這些實驗進行了細致的優(yōu)化手段,包括超參數(shù)調(diào)整,有限的權(quán)重分配和序列訓(xùn)練.Chan 等[18]對低資源語言基于CNN的聲學(xué)模型進行的研究得出,在低資源語言條件下,CNN 能比DBN 提供更好的魯棒性和更好的泛化性能.
1.5.3 RNN
語音信號是一種時序信號,模型如果能夠?qū)ζ鋾r序動態(tài)信息進行有效表示,將大大提升效果.DNN-HMM的系統(tǒng)中聲學(xué)模型是DNN和HMM的混合.而RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))通過在隱層上增加反饋連接,當(dāng)前時刻的輸入分為兩部分,一是當(dāng)前時刻輸入序列產(chǎn)生的輸入,這部分和普通的前饋神經(jīng)網(wǎng)絡(luò)是一樣的,傳遞的神經(jīng)網(wǎng)絡(luò)獲取的特征表示,二是由上一時刻保留的記憶信息,產(chǎn)生的輸入.通過這種機制,RNN 可以利用到之前的信息.
蔣大偉跟著跑到鄭馨身旁,問:怎么回事?鄭馨委屈地:你別問了!我們走!蔣大偉說:錢還沒要呢?怎么又要走?鄭馨說:我說過,我不想見他!蔣大偉不解地:到底怎么回事?你還隱藏著什么?鄭馨大聲地:我再說一遍!你不要再問了!蔣大偉也大聲地:我必須問!我辛辛苦苦拉你來要錢,說了不到兩句就要走!你到底是想要錢還是不想要錢?搞了半天你不是辭職的,是被開除的,你這不是玩我嗎?鄭馨突然爆發(fā)地:閉嘴!你知道什么?就是那個該死的王運豐,他想占我便宜,天天騷擾我威脅我,我才神情恍惚出錯的!他想用趕我走逼我就范!現(xiàn)在明白了吧?
研究人員對HMM-RNN 混合模型進行了實驗[19],但結(jié)果與基于DBN的CNN 聲學(xué)模型無法相提并論.Graves 等[20]提出CTC (Connectionist Temporal Classification)損失函數(shù),使神經(jīng)網(wǎng)絡(luò)能夠?qū)W習(xí)字符序列和未分段語音之間的對齊關(guān)系,從而避免了使用HMM來進行強制對齊,實驗中,在TIMIT 數(shù)據(jù)集上表現(xiàn)優(yōu)于HMM-RNN 混合方式.文獻[21]在HMM-RNN的基礎(chǔ)上,提出使用深度雙向LSTM 作為其聲學(xué)模型,并在TIMIT 數(shù)據(jù)集中取得了較好結(jié)果.文獻[22]中對這種聲學(xué)模型的進行了進一步的研究,通過使用上下文相關(guān)的語音單元,使用LSTM 輸出空間的上下文相關(guān)狀態(tài)和采用分布式訓(xùn)練方式等方法,取得了一些進展.
1.5.4 端到端技術(shù)
傳統(tǒng)的語音識別模型通常包含聲學(xué)模型(Acoustic Model,AM)、發(fā)音詞典(Lexicon)和語言模型(Language Model,LM)三部分組成.每一部分都需要單獨的學(xué)習(xí)訓(xùn)練,端到端(end-to-end)的機制可以使得模型的訓(xùn)練摒棄發(fā)音詞典和語言模型,真正實現(xiàn)直接從語音轉(zhuǎn)錄成文本.端到端主要有兩種實現(xiàn),其中一種是上文提到的CTC.另一種是基于注意力機制(attention)的編碼器-解碼器(encoder-decoder)模型,由Chorowski 等于2014年首先應(yīng)用到語音中的音素識別上面[23].
如圖2所示的CTC 方法最為常用,是對RNN的一種改進.一般來說,輸入特征序列與音素的對齊關(guān)系并不確定,而且,按照劃分,音素序列長度遠遠小于語音按照10-30 ms 分幀后的序列長度,然而,RNN 模型中的標(biāo)注序列和輸入序列必須是對應(yīng)的.這樣的結(jié)果就是不管是基于DNN-HMM 模型還是RNN-HMM 模型都得首先采用GMM-HMM 訓(xùn)練進行強制對齊.CTC 在標(biāo)注符號集中加入了一個空白符號(blank),它意味著此幀沒有預(yù)測值輸出.因而在模型的預(yù)測輸出中就包含了很多空白符號,一個音素對應(yīng)的一整段語音中只有一個尖峰被識別器確認,其他都被識別為空白,結(jié)果相當(dāng)于自動的切分了音素邊界,實現(xiàn)了將空白符號和連續(xù)出現(xiàn)的狀態(tài)進行了消除,就能得到最終預(yù)測的字符序列.Hannun 等[24]采用了帶有雙向遞歸層的5 層RNN,經(jīng)過CTC 損失訓(xùn)練以及語言模型來糾正,在Switchboard 數(shù)據(jù)集上獲得了當(dāng)時最好的結(jié)果.同時他們還提出了一些優(yōu)化方案.Amodei 等[4]在這基礎(chǔ)上,使用有13 個隱層(包含卷積層)的模型取得了更好的結(jié)果.
圖2 CTC 方法
Attention 機制最先應(yīng)用于機器翻譯中,并在機器翻譯中取得了較好的效果.其主要思想就是通過編碼器(encoder)將原序列轉(zhuǎn)換成一個固定長度的隱層表示,然后解碼器(decoder)再根據(jù)這個隱層表示生成解碼序列,生成解碼序列過程中考慮當(dāng)前解碼輸出與隱層表示中哪一部分最相關(guān),這部分就是注意力機制,其結(jié)構(gòu)如圖3.
在這個模型結(jié)構(gòu)中,每一個條件概率的輸出定義為:
其中,yi表示第i時刻解碼輸出標(biāo)記,X表示編碼器輸入,yi?1表示上一時刻解碼輸出,si表示i時刻的隱層狀態(tài),ci表示上下文向量.其中si計算公式為:
上下文向量ci是編碼器輸出隱變量hi的加權(quán)和.
其中,αij即注意力權(quán)重.其計算過程如下:
其中,eij=score(si?1,hj),表示注意力機制的打分結(jié)果,實際上相當(dāng)于一個相關(guān)性計算,具體的分?jǐn)?shù)計算有多種方式,其反映了上一時刻隱層狀態(tài)si?1與向量表示hj之間的相關(guān)性.
圖3 Attention 基礎(chǔ)結(jié)構(gòu)
Encoder-decoder 結(jié)構(gòu)是針對序列到序列的問題提出的,一般采用RNN 及其變體(LSTM 等),目前常用的就是采用Bi-LSTM 作為encoder.由于decoder是對上一時刻輸出的依賴,對于decoder的改進較難,但對encoder的研究取得了一定的進展.
Facebook 在2017年提出ConvS2S 結(jié)構(gòu),把卷積結(jié)構(gòu)首先引入機器翻譯問題中,并且一度獲得最好的效果[25].由于沒有時序結(jié)構(gòu),因此需要在embedding的基礎(chǔ)上面增加位置信息,模型中將position embedding(pi)與原來的embedding(wi)直接進行相加,因此模型的輸入序列為e={e1,···,em},其中ei=wi+pi.Decoder 在每一時刻的輸入g={g1,···,gm},同樣由兩部分組成,分別是上一時刻輸出的word embedding 以及對應(yīng)的position embedding.Decoder 中第l 個block的輸出定義為encoder 中第l 個block的輸出定義為通過堆疊卷積結(jié)構(gòu),能夠擴大感受野的面積,越高層結(jié)構(gòu)獲得的上下文信息越多.模型中使用了殘差連接和GLU (Gated Linear Units).不同于一般的encoder-decoder 結(jié)構(gòu),這里的注意力機制使用了multi-step attention,在decoder的每層中都計算注意力機制分?jǐn)?shù).
ConvS2S 將CNN 引入到Seq2Seq 中,這樣既可以處理序列變長的問題,又可以實現(xiàn)在序列不同位置的并行計算.RNN的另一個缺陷在于,對于一個長度為n的序列,要建立長時相關(guān),需要經(jīng)過O(n)次運算,而對于卷積核寬度為k的多層CNN 來說,則需要O(n=k)次運算.
受限于LSTM的計算速度問題,常見的Seq2Seq結(jié)構(gòu)都采用的是淺層結(jié)構(gòu),Zhang 等[26]受Very Deep CNN 在ASR 任務(wù)中的優(yōu)秀表現(xiàn)啟發(fā),提出使用更深層的網(wǎng)絡(luò)來進行序列編碼,代替淺層encoder.使用了Network-in-Network(NiN),Batch Normalization(BN),Residual Networks(Res-Nets)和Convolutional LSTM(ConvLSTM)等方法構(gòu)建模型.借鑒NiN 中的1×1卷積,來增加網(wǎng)絡(luò)的深度和模型的表征能力.BN和ResNets 方法有助于訓(xùn)練更深層的結(jié)構(gòu).ConvLSTM中使用卷積操作代替LSTM 內(nèi)部的內(nèi)積操作.實驗在WSJ數(shù)據(jù)集上進行,結(jié)果顯示模型獲得了WER為10.53%.
Chan 等[27]提出新的ASR 結(jié)構(gòu),即LAS (Listen,Attend and Spell).主要包含兩部分,Listener是金字塔型的循環(huán)網(wǎng)絡(luò)編碼器,接受濾波后的頻譜作為輸入.Speller是基于注意力機制的循環(huán)網(wǎng)絡(luò)解碼器,以之前的字符和聲音序列為條件預(yù)測字符.提高了編碼的速度,每層都會將時間步減少一半.
這里的金字塔結(jié)構(gòu)采用每層合并上一層相鄰的2 或3 個時間步,其中character distribution是前饋網(wǎng)絡(luò)結(jié)構(gòu).
對于attention 機制的探索也是一個重要的研究方向.Attention的核心思想就是計算當(dāng)前要解碼序列需要的輸入信息與上下文信息之間的相關(guān)性.相關(guān)性的計算就是:eij=score(si?1,hj).
文獻[28]中直接進行計算,這種方式?jīng)]有考慮兩個向量位于不同的特征空間,直接計算打分結(jié)果.常見的有:
文獻[29]指出打分過程應(yīng)參考上一時刻的注意力權(quán)重,那么打分過程成為:score(su?1,αu?1,ht).
Hard-attention是文獻[30]在image caption generation任務(wù)中提出的.常見的注意力機制是經(jīng)過Softmax 層輸出之后有不同的權(quán)重,是一個向量,里面元素都是范圍在[0,1]之間的小數(shù),和為1.而采用hard-attention 之后,注意力向量中的元素只有一個是1,其余的都是0,也就是在每一個時間步,模型只關(guān)注一個位置.向量是One-hot 形式.
而soft-attention 更常見一些,即注意力向量中的不同位置的權(quán)重值不同,這樣的soft-attention是光滑的且是可微的.文獻[30]中還對注意力機制進行了微調(diào).β=σ(fβ(su?1))
其中,,用來調(diào)節(jié)上下文向量在LSTM中的比重.
文獻[29]中考慮為了使得hu中的元素更加具有區(qū)分性,可以考慮把權(quán)重換成矢量 αu,t.文獻[28]中提到global-attention和local-attention,global 就是在decoder 計算注意力權(quán)重的每一時刻都考慮全部的上下文信息,賦予不同位置的上下文信息不同的權(quán)重,并加權(quán)求和.一方面這樣有很大的計算量,另一方面在語音識別中,兩種序列時序一致,注意力只需要集中在時序?qū)?yīng)的位置,因此采用local-attention 有助于實現(xiàn)sequence-to-sequence.Local 方式就是上下文向量的計算每次都只關(guān)注到幾個源隱藏狀態(tài).它是可微的,因此更加容易訓(xùn)練,分為local-m (local monotonic alignment)和local-p (local predictive alignment)兩種計算方式.pt是關(guān)注的焦點,距離中心pt越遠,其位置上的源隱藏狀態(tài)對應(yīng)的權(quán)重則被壓縮的越厲害.
文獻[31]最先提出了Multi-Head Attention (MHA).MHA 在傳統(tǒng)注意力機制的基礎(chǔ)上擴展了多個head,每個head 能夠生成不同的注意力分布.這個允許每個head 在對應(yīng)編碼器輸出的時候,可以扮演不同的角色.這種方式能夠幫助解碼器更容易的從編碼輸出中檢索出所需要的信息.傳統(tǒng)的single-head attention 更加依賴于編碼器提供清晰的隱層表示以使得Decoder 能夠挑選出重要的信息.MHA 趨向于分配一個head 去關(guān)注語句的開頭,語句的開頭往往包含大部分的背景噪聲.為了確保MHA 在訓(xùn)練過程中確定能夠關(guān)注到不同的位置,一些研究者在損失函數(shù)中增加正則項,以確保多個MHA 之間存在差異.
純attention 方法雖然取得了不錯的效果,但是在訓(xùn)練過程中存在著明顯的收斂速度慢,震蕩幅度大等問題.這很大程度上在于一開始attention 注意范圍太廣,難以收斂.文獻[29]提出使用CTC 輔助attention模型的訓(xùn)練,實驗表明這種方法能夠極大的提高模型的收斂速度.模型成功的關(guān)鍵在于在損失函數(shù)中引入CTC Loss:
在CTC 輔助訓(xùn)練的情況下,原本需要9 個epoch才能收斂的模型在5 個epoch的時候已經(jīng)收斂了.在解碼階段,如果對應(yīng)于attention的decoder 中非OOV(Out Of Vocabulary)的詞匯,則使用對應(yīng)的輸出.如果最大概率的輸出是OOV 標(biāo)記,則使用CTC 中的結(jié)果進行代替.為了實現(xiàn)混合解碼,CTC 部分除了增加blank,還應(yīng)該增加一個詞邊界標(biāo)記wb.
Transformer是最初在機器翻譯領(lǐng)域中獲得了成功.其解決的問題主要是提高encoder的并行度.其中關(guān)鍵的點就是self-attention和MHA 兩種機制.Selfattention是每個詞都要和所有的詞計算attention,可以捕獲長距離的依賴關(guān)系.MHA 中不同head 學(xué)習(xí)不同的子空間語義,關(guān)注編碼器輸出的不同部分.
其中,Q表示query,K表示key,V表示value,在selfattention 時候,Q=K=V=inputs.
同時,經(jīng)過對attention的一系列探索,一些優(yōu)化手段被總結(jié)出來:采用大的建模單元,如子詞或詞等,這樣的建模單元更加穩(wěn)定并且有助于語言建模.文獻[32]采用label smoothing 方法來避免模型對于預(yù)測結(jié)果過于自信.文獻[33]使用最小化詞錯誤率的方式進行區(qū)分性訓(xùn)練.模型除了訓(xùn)練和推理過程訓(xùn)練時通常使用CE,而在評價階段使用WER 等.
近兩年,雖然在學(xué)術(shù)領(lǐng)域語音識別已經(jīng)取得了接近極限的實驗結(jié)果,但研究人員對端到端語音識別的研究仍然在不斷拓展和嘗試.文獻[34]采用深層Transformer,認為其具有的高學(xué)習(xí)能力能夠超越以前的端到端方法,甚至可以比肩傳統(tǒng)的混合系統(tǒng).對編碼器和解碼器使用48 個Transformer 層訓(xùn)練,使用隨機殘差連接,極大地提高了模型泛化性能和訓(xùn)練效率.文獻[35]提出Jasper 模型,其使用了一維卷積,批量歸一化,ReLU 激活,dropout和殘差連接,同時引入了一個稱為NovoGrad的分層優(yōu)化器.通過實驗,最多使用了54 個卷積層的模型系取得了良好的結(jié)果.文獻[36]針對于在線應(yīng)用問題,認為BLSTM 雖然代表了端到端ASR的先進技術(shù),但不適合流應(yīng)用程序,因此提出時延LSTM (TDLSTM)和并行時延LSTM(PTDLSTM)流,它們都限制了時延大小,保證了在線應(yīng)用的效果.
1.5.5 復(fù)雜噪聲環(huán)境下的語音識別
語音識別系統(tǒng)往往受到噪聲干擾,使其性能大大下降.在前端添加可以把目標(biāo)說話人的聲音和其它干擾分開的處理過程,就可以提高語音識別系統(tǒng)的魯棒性,從而提高準(zhǔn)確率,因而這已成為ASR 系統(tǒng)中無法缺少的一環(huán).這種對語音進行去噪、分離、解混響的任務(wù)統(tǒng)稱為語音分離.根據(jù)干擾的不同可對領(lǐng)域進行細分,當(dāng)干擾為非語音噪聲時,稱為語音增強;當(dāng)其為其他說話人的語音時,稱為多說話人分離,當(dāng)其為目標(biāo)說話人自身的反射波時,稱為解混響.
傳統(tǒng)的語音分離方法有譜減法、維納濾波法、卡爾曼濾波法等.深度學(xué)習(xí)方法流行后,研究人員采用了DNN、LSTM和CNN 等進行模型構(gòu)建,取得了良好的效果.文獻[37]采用GAN 作為模型,將生成器全部設(shè)置為卷積層,減少了參數(shù)和訓(xùn)練時間,判別器負責(zé)向生成器提供生成數(shù)據(jù)的真?zhèn)涡畔?從而使模型參數(shù)逐漸向生成純凈語音方向變化.訓(xùn)練目標(biāo)一般包括兩類,一類是基于Mask的方法,另一類是基于頻譜映射方法.基于Mask 方法主要有理想二值掩蔽(IBM)和理想比率掩蔽(IRM),都是根據(jù)聽覺感知特性,將音頻信號分成不同的子帶,根據(jù)不同的信噪比,將能量設(shè)置為0、1 或者相應(yīng)比率.頻譜映射采用譜特征,讓模型通過有監(jiān)督學(xué)習(xí),使其自己能夠?qū)W習(xí)到有干擾譜和無干擾譜之間的映射關(guān)系[38].文獻[39]在CHiME-5 挑戰(zhàn)數(shù)據(jù)集上取得了良好的成績.其首先進行多通道解混響與增強,再進行單通道去噪,采用調(diào)整的波束成型方法和說話人相關(guān)訓(xùn)練,測試達到了60%WER的效果.文獻[40]結(jié)合了頻譜特征和空間特征訓(xùn)練網(wǎng)絡(luò),從估計的方向和特定的頻譜中提取目標(biāo)語音,可以不需要已知麥克風(fēng)數(shù)量和位置.采用目標(biāo)語音的時頻單元估計方向,結(jié)合深度聚類及采用置換不變訓(xùn)練目標(biāo)函數(shù)的Chimera++網(wǎng)絡(luò),集成時頻掩蔽的波束成型技術(shù),使系統(tǒng)有了強大的分離隨機排列的麥克風(fēng)場景語音和解混響能力.
對于語音識別和端到端系統(tǒng)來說,學(xué)界已經(jīng)研究的相當(dāng)深入,當(dāng)前主要的研究熱點在于,一方面是將已經(jīng)成熟的機器視覺和自然語言處理方向的方法理論遷移到語音領(lǐng)域,一方面是繼續(xù)深挖已有端到端技術(shù)下的各種微調(diào)和優(yōu)化手段,不斷提升識別性能和魯棒能力.當(dāng)前主要的挑戰(zhàn)有兩方面,一是技術(shù)方面的,另一個則是數(shù)據(jù)和工具方面的.
從技術(shù)方面來說,首先,attention 應(yīng)用到ASR 中,和原來應(yīng)用在機器翻譯領(lǐng)域不同,ASR 問題語音信號和文本序列之間存在著明顯的時序?qū)?yīng)關(guān)系,需要考慮如何在模型中應(yīng)用這種時序?qū)?yīng)關(guān)系幫助我們進行模型訓(xùn)練.同時,翻譯問題中文本中存在著明顯的詞邊界,其encoder 能夠提供更加清晰的隱層表示,對于ASR,需要考慮怎么獲取更加清晰和更加有區(qū)分性的隱層表示.其次,相比于傳統(tǒng)AM,LM,發(fā)音詞典獨立的模型結(jié)構(gòu),attention 方法在建模語言之間的關(guān)聯(lián)關(guān)系方面存在著缺陷,怎樣能夠在不增加整體語音語料和語言模型的情況下,提高模型對于表征單詞之間聯(lián)系的能力.第三,隨著建模單元的逐漸增加,怎么更加高效的解決諸多未登錄詞問題.因此,目前CTC和attention方法可能都不是最優(yōu)的端到端建模的方法,探索新的建模方法也是未來的重點之一.
從數(shù)據(jù)和工具方面來說,深度語音識別的實踐存在阻礙.一是高質(zhì)量數(shù)據(jù)集較難獲取,語音數(shù)據(jù)的收集和標(biāo)注費時費力,只有大企業(yè)才有獲得這些數(shù)據(jù)的入口,而更多的研究者在進行研究時因為數(shù)據(jù)問題而無法得到較好結(jié)果,只能轉(zhuǎn)向傳統(tǒng)的GMM-HMM 方法;二是深度語音識別的框架和工具還有待更新和簡化,這樣才會將技術(shù)壁壘進一步消除,使得更多的研究者能將語音識別應(yīng)用到更廣闊的場景;三是當(dāng)前識別的評價指標(biāo)的指向不夠泛化和實用,往往在一個數(shù)據(jù)集上表現(xiàn)好的模型不一定在其他數(shù)據(jù)集上同樣優(yōu)秀.
因此,當(dāng)前深度語音識別研究的主要趨勢就是不斷深入研究端到端模型及其各種優(yōu)化方法,同時,探索用于遷移學(xué)習(xí)的工具和數(shù)據(jù)策略,使得語音識別也能像機器視覺領(lǐng)域那樣遍地開花,大大提高整個社會的人工智能化水平.
本文簡要介紹了語音識別技術(shù)發(fā)展歷史并詳細闡述了語音識別中端到端技術(shù)的進展,同時分析了當(dāng)前語音識別所面臨的挑戰(zhàn)與趨勢.在現(xiàn)有深度語音識別的研究基礎(chǔ)上,應(yīng)當(dāng)繼續(xù)探索端到端技術(shù)的潛力,并著力解決數(shù)據(jù)和框架工具等影響實踐的障礙,從而使其能更廣泛更方便的應(yīng)用到實際任務(wù)中.