黃萬武 付煜琪 熊素娟
摘要:本文分析了語音識別中的兩個(gè)經(jīng)典模型的算法原理——傳統(tǒng)的隱馬爾可夫模型(HMM)和基于神經(jīng)網(wǎng)絡(luò)的解碼編碼模型(encoder-decoder)模型。
關(guān)鍵詞:語音識別;隱馬爾可夫;解碼編碼
語音識別是將自然語言中的語音序列轉(zhuǎn)換為文本序列的一個(gè)過程,它的基本思路是:給定一個(gè)聲學(xué)輸入序列O=o1,o2 ,o3 ,o4 ……,ot ,把該序列轉(zhuǎn)化成一個(gè)由單詞序列構(gòu)成的句子S=w1,w2,w3,w4,w5,……wn 。該轉(zhuǎn)換過程中,經(jīng)典的技術(shù)應(yīng)用包括傳統(tǒng)的基于統(tǒng)計(jì)的隱馬爾可夫模型和現(xiàn)代的基于神經(jīng)網(wǎng)絡(luò)模型。本文將對兩種模型的基本原理進(jìn)行分析。
1基于隱馬爾可夫算法的語音識別原理
語音識別過程涉及到兩個(gè)序列:一個(gè)可觀察到的聲學(xué)序列O和一個(gè)隱藏的狀態(tài)序列Q:聲學(xué)序列背后隱藏的文本序列。
基于隱馬爾可夫算法的語音識別本質(zhì)上是一種基于統(tǒng)計(jì)的算法,其基本思路是給定的一個(gè)語音序列O,計(jì)算出在所有的狀態(tài)序列Q中,可能性最大的那一個(gè)。先求出每個(gè)可能的狀態(tài)序列的概率P(Q|O),從中挑選概率最大的狀態(tài)序列。
對于單個(gè)的序列的概率計(jì)算,用簡單的馬爾科夫鏈算法即可以輕松地算出該序列的概率。但是對于類似語音識別、詞性標(biāo)注這樣存在一個(gè)可觀察的序列和一個(gè)隱藏的序列的現(xiàn)象進(jìn)行概率計(jì)算,要比單序列更復(fù)雜,更適合使用隱馬爾可夫模型。
隱馬爾可夫的基本參數(shù)包含5個(gè)方面:
(1)隱藏序列狀態(tài)的集合Q=(q1,q2,q3,…… ,qn)。在語音識別里,就是語音相對應(yīng)的詞語的發(fā)音組合,包含某個(gè)語言里所有詞匯的所有的發(fā)音組合,可以通過發(fā)音詞典來查找。
(2)隱藏序列狀態(tài)Q=(q1,q2,q3,……,qn)之間的轉(zhuǎn)換概率集合,也叫轉(zhuǎn)移矩陣A=(a01,a02,a03,…… an1,……,ann)。該矩陣是一個(gè)n*n的列和行均為隱藏序列狀態(tài)的矩陣。
(3)觀察似然度集合B=bi(ot),表示從狀態(tài)i生成觀察t的概率,也構(gòu)成一個(gè)矩陣。
(4)初始狀態(tài)分布,表示每個(gè)狀態(tài)在開始時(shí)候的概率。
(5)合法的接收狀態(tài)集合。
如圖1就是單詞need的HMM模型(Jurafsky,2009):
在該模型中,存在兩個(gè)序列:觀察序列(由聲譜特征矢量構(gòu)成)和單詞狀態(tài)模型(狀態(tài)轉(zhuǎn)移模式序列)。單詞need發(fā)音組合有五個(gè)狀態(tài)構(gòu)成:初始狀態(tài)start,n,iy,d,和接收狀態(tài)end。每個(gè)狀態(tài)之間的連線標(biāo)記的是狀態(tài)之間的轉(zhuǎn)換概率。其中start和end為非發(fā)射狀態(tài),其它為發(fā)射狀態(tài)。每個(gè)發(fā)射狀態(tài)上都有一個(gè)自反圈,模擬狀態(tài)的可變音延。例如o1和o2就是狀態(tài)n的音延,o3,o4,o5就是狀態(tài)iy的音延。在狀態(tài)iy后還增加了可選的路徑,模擬狀態(tài)d弱化或者消失從而直接進(jìn)入到end狀態(tài)。該模型還記錄了每個(gè)狀態(tài)下每個(gè)觀察發(fā)生的概率b(o)。
在隱馬爾可夫模型中,根據(jù)貝葉斯規(guī)則,可能的狀態(tài)序列的概率P(Q | O)= P(O | Q)*P(Q),計(jì)算出這些可能的狀態(tài)的概率,對他們進(jìn)行比較,找出最大的概率的那個(gè)序列,就是最后轉(zhuǎn)換的目標(biāo)。其中,P(Q)就是隱藏狀態(tài)之間的轉(zhuǎn)換概率,記錄在HMM模型的矩陣A中,P(Q | O)就 是觀察的似然度,記錄在HMM模型的矩陣B中。
2編碼解碼模型(encoder-decoder)
隨著基于人工神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)技術(shù)的興起,利用深度學(xué)習(xí)技術(shù)進(jìn)行語音識別逐漸成為主流的路徑,其中的編碼解碼模型(encoder-decoder)表現(xiàn)尤其突出。
如圖2所示,一個(gè)編碼解碼模型由一個(gè)編碼器和一個(gè)解碼器構(gòu)成,向一個(gè)編碼器encoder輸入序列X1,X2,X3,X4……(在語音識別中就是輸入帶有聲學(xué)特征的聲譜片段向量),編碼器對輸入序列通過多層神經(jīng)網(wǎng)絡(luò)(RNN或者Transformer等)進(jìn)行編碼,生成一個(gè)向量表征C,這個(gè)向量表征C被傳遞到解碼器,由解碼器里邊的神經(jīng)網(wǎng)絡(luò)進(jìn)行解碼,最后生成輸出序列Y1,Y2,Y3……(在語音識別中就是生成單詞序列或者字母序列)。
編碼解碼模型適合語音識別在于以下幾點(diǎn):(1)語音識別是把有著聲學(xué)特征的聲譜片段序列轉(zhuǎn)化為單詞序列。因?yàn)槁曌V片段大多是以10毫秒為單位的切片,大約每100個(gè)左右的聲譜片段最后才能映射為一個(gè)單詞,這樣輸入序列的長度和輸出序列的長度差異很大,傳統(tǒng)的隱馬爾可夫模型要求輸入序列和輸出序列等長,但是編碼解碼模型并不要求輸入輸出序列等長,因此計(jì)算方便。(2)在隱馬爾可夫模型中,需要分別計(jì)算轉(zhuǎn)換概率和觀察的似然度,計(jì)算量大,操作復(fù)雜,中間環(huán)節(jié)多。但是在編碼解碼模型中,這些中間環(huán)節(jié)的計(jì)算都不必要,只需要將輸入輸出數(shù)據(jù)對喂給編碼解碼器,對編碼解碼器進(jìn)行訓(xùn)練,編碼解碼器能經(jīng)過神經(jīng)網(wǎng)絡(luò)自動(dòng)從數(shù)據(jù)對中提取特征進(jìn)行學(xué)習(xí),從而實(shí)現(xiàn)對輸入的音頻進(jìn)行文本轉(zhuǎn)換。
整個(gè)編碼解碼模型利用交叉熵?fù)p失函數(shù)在訓(xùn)練數(shù)據(jù)集上進(jìn)行訓(xùn)練,對每一個(gè)迭代計(jì)算損失,利用反向傳播優(yōu)化整個(gè)網(wǎng)絡(luò),經(jīng)過多次迭代訓(xùn)練以后模型達(dá)到最優(yōu)狀態(tài)。
3總結(jié)
利用隱馬爾可夫模型進(jìn)行語音識別,是統(tǒng)計(jì)算法時(shí)代的經(jīng)典技術(shù),復(fù)雜卻有效。而基于深度學(xué)習(xí)技術(shù)的解碼編碼模型是深度學(xué)習(xí)技術(shù)的應(yīng)用,簡單、快捷而高效。兩種方法背后都體現(xiàn)了數(shù)學(xué)算法在解決實(shí)際問題中的應(yīng)用。
參考文獻(xiàn):
[1]Jurafsky D.,Speech and Language Processing —— An Introduction to Natural Language Processing,Computational Linguistics,and Speech Recognition,Prentice Hall,2009.
[2]Chan,W.,Jaitly,N.,Le,Q.,andVinyals,O. (2016). Listen,attend andspell: A neural network for large vocabulary conversational Speech Recognition. ICASSP.
作者簡介:
黃萬武,教授,湖北工業(yè)大學(xué)外國語學(xué)院,研究方向:計(jì)算語言學(xué),自然語言處理
付煜琪,學(xué)生,湖北工業(yè)大學(xué)外國語學(xué)院英語專業(yè)學(xué)生
熊素娟,副教授,湖北工業(yè)大學(xué)外國語學(xué)院,研究方向,應(yīng)用語言學(xué)
(*本文為湖北工業(yè)大學(xué)大學(xué)生創(chuàng)新創(chuàng)業(yè)項(xiàng)目“智能語音識別技術(shù)在大學(xué)英語口語考試自動(dòng)評分中的應(yīng)用”的成果之一,項(xiàng)目編號:S201910500090;本文為湖北省教育廳人文社科重點(diǎn)項(xiàng)目“英語作文自動(dòng)評分系統(tǒng)中“算法+語言規(guī)則”相結(jié)合的理論與實(shí)踐研究”項(xiàng)目成果之一,項(xiàng)目編號:18Y069)