一、引 言
我們都知道,語音命令的訓練樣本之間是存在很大差異的,譬如,男女聲發(fā)音之間、不同發(fā)音人之間、甚至于同一個人在不同時段發(fā)音之間,都可能存在較大差異。在差異性較大的訓練樣本集上,訓練的模型很難對所有樣本都有好的建模效果。我們將ANN/HMM混合模型應用于語音識別,取得了較好的效果。但從實驗結果我們也可以看到這種差異造成的識別率并不理想的情況。
由此,我們提出了一種多重ANN/HMM混合模型,為每個待識別命令建立一個多重(多鏈)的結構,以期能夠改善由于樣本差異降低識別率的情況。在多重混合模型中,我們將重點討論如何將多重模型整合到一起,及其競爭學習機制。
二、多重ANN,HMM混合模型
在多重ANN/HMM混合模型中,每個待識別命令都由多個ANN/HMM來一起為它建模。假設每個模式對應M個ANN/HMM,我們稱該模型是M重的,則每個待識別模式的多重ANN/HMM模型結構如下:
如圖l所示的M重ANN/HMM混合模型,AHi(1≤i≤M)表示M重模型中的第i重,每一重都為ANN/HMM識別模式,在這里我們稱它為子識別模式。若待識別模式有K個,可計算得整個識別系統(tǒng)共需要M×K個子識別模式,即M×K個ANN/HMM混合模型。由于每個子識別模式都是一個通過預測網絡(PNN)來預測觀測概率矩陣的隱馬爾可夫鏈,所以我們也可簡稱多重混合模型為多鏈模型。
模型建立好之后,在識別的時候,數(shù)據(jù)特征輸入給每一個鏈,每個鏈都將得出一個平均誤差Ei(i=1,2,?,M),各個鏈通過競爭,將平均誤差最小的那個Ei作為該模型的最終結果。
即,其中,E為模式最終的平均誤差。
三、競爭學習機制
前面我們已經提到,采用多重ANN/HMM模型的目的是為了區(qū)分開差異樣本,提高模型的建模精度。下面我們就來介紹一下實現(xiàn)這一目的的原理以及多重ANN/HMM混合模型的訓練算法。
我們期待建立的多重模型的各個鏈的作用是互補的。例如,對于待識別命令“放大”,它的第一個鏈能夠對樣本中某些發(fā)音相近的部分很好的建模,而第二個鏈則能夠對發(fā)音相近的另一部分進行很好的建模,以此類推。這樣,進來的某一個樣本,總可以找到多重模型中的一個鏈對它的建模效果比較好。這就是“適者生存,優(yōu)勝劣汰”的道理。下面給出了一個示例圖:
如上圖所示,整個圓代表全部訓練樣本,假設我們的重數(shù)M=5,則訓練的過程是將全部樣本按相近性分成五個部分,分別作為5個鏈的訓練樣本集,例如圖中紅色的代號為4的部分代表第4個鏈的訓練樣本集。
問題是:如果人為來進行分割的話,則缺乏通用性和方便性,同時也可能是不客觀的。那么,如何讓訓練算法自身來解決這個問題呢?
于是,我們提出了一種競爭學習方法,該方法的基本思想是:每次將訓練樣本數(shù)送給各個鏈,經計算各自得出一個平均誤差,誤差最小的那個鏈我們認為它在所有鏈中能夠最好地表示該樣本,因此,它在競爭中勝出,如圖1所示,我們將這個競爭結果反饋回來,最終將這個樣本劃歸給該鏈。
四、競爭學習算法
整個多重ANN/HMM混合模型的訓練算法如下:
1.初始化i=1;集合S(k)=NULL(k=1,2,?,M);初始化5個鏈的權值矩陣,循環(huán)控制變量loop與樣本總量F_NUM;
2.如果i>loop,退出算法;否則,j=l,轉步驟3);
3.如果j>F_NUM,轉步驟7);否則,轉步驟4);
4.第j個樣本Fj經過AHk(k=1,2,?,M),計算出各鏈的平均誤差
5.求出平均誤差最小的,將巧加入S(k);
6.j加1,轉步驟3);
7.用s(k)中的數(shù)據(jù)采用第二章中的訓練算法訓練第k個鏈,其中k從1到M;
8.i加1,轉步驟21
在該算法中,各個鏈通過自己適應的競爭機制,得到與自己相適應的訓練樣本子集,而從樣本的角度出發(fā),它們也總能找到對自己建模精度最高的那個鏈,繼續(xù)訓練該鏈,使其獲得更精確的建模效果。
五、實 驗
我們定義了5個待識別語音命令:放大、縮小、全屏、上移、下移。五個女性參與發(fā)音,每人為每個命令發(fā)音60次,其中,40次作為訓練樣本,20次作為識別樣本。實驗所用數(shù)據(jù)的采樣率是16KHz,幀長為25ms,幀移為12,5ms,這里的一幀是指一段語音數(shù)據(jù)。我們采用的是Mel頻率到普系數(shù)(MelFre-quency Cepstrum Coefficient一簡稱MFCC)。
方便多重ANN/HMM混合模型同ANN/HMM時序模型的比較,我們選取了同參考文獻[1][2]相同的實驗數(shù)據(jù)。只是我們只取MFCC自身的12維特征加上1個短時能量共13維特征,而不再使用一階、二階差分,這是由于我們使用的ANN實際上是一種預測網絡PNN,這里實現(xiàn)用前兩幀數(shù)據(jù)預測當前幀數(shù)據(jù),可以近似的代替一階、二階差分。
采用上面的實驗數(shù)據(jù),重數(shù)M從1取到5的實驗結果見表1和圖3。
在圖3中,當M=2時,識別率有些微下降,這是由于采用兩個鏈并不能很好地區(qū)分開所有樣本,而對每個鏈而言,訓練樣本數(shù)卻少了幾乎1/2,識別率也就不會太高。系統(tǒng)在M從3到5的識別率是逐步升高的,在M=5時達到了93.2%。M>5的實驗我們沒有做,但可以看見:如果M過大,完全超出樣本差異性范疇,也就是樣本之間的差異并不需要這么多的子模型去區(qū)分,這樣M的增加不但無法更好地對待識別對象進行建模,還可能在很大程度上影響建模效果。
總體上同參考文獻[2]中的實驗結果的平均識別率85.8%相比較,競爭學習機制下的多重ANN/HMM混合模型的平均識別率可達到96.4%,有了顯著提高。
參考文獻
[1]劉明宇,ANN/HMM混合模型在語音識別中的應用[J],自動化技術與應用,2009(6)
[2]劉明宇ANN/HMM混合模型中狀態(tài)數(shù)的自適應確定方法研究[J]自動化技術與應用,2009(7)