專利名稱:漢語連續(xù)語音識別系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及一種漢語連續(xù)語音識別系統(tǒng),尤其是一種采用基于段長分布的隱含馬爾可夫模型的漢語連續(xù)語音識別系統(tǒng)。
背景技術:
語音識別就是從人的語音波形中提取信息并確定其語言含義的過程。語音識別作為一門交叉學科,涉及到了信號處理、統(tǒng)計模式識別、人工智能、計算機科學、語言學和認知科學等眾多學科。語音識別技術大致可以分為以下幾類語音信號檢測和特征提取技術,語音信號發(fā)生機理和數(shù)學模型建立,語音識別單元選擇,訓練和識別搜索算法,語言模型處理技術,語法和語義分析技術等等。
隱含馬爾可夫模型(Hidden Markov Model-HMM)是目前非特定人語音識別的最重要的方法,HMM模型是語音產(chǎn)生機理的一種符合自然的描述,早在1913年A.A.Markov就提出了將Markov模型用于字符串的匹配,HMM數(shù)學理論方面的工作主要由Baum等人所完善,70年代中期Baker和Jelinik等人首次把HMM用于語音識別,當時他們研究的是連續(xù)語音的識別問題。隨著語音識別的研究由連續(xù)語音轉(zhuǎn)向孤立詞和70年代末80年代初矢量量化(Vector quantification-VQ)技術的出現(xiàn),Rabiner和Levinson等人把HMM用于與人無關的孤立詞識別獲得了成功,隨著語音識別研究工作的深入開展,HMM語音識別方法愈來愈受到人們的重視,但與此同時,人們也愈來愈認識到經(jīng)典HMM語音識別模型在一些重要方面存在嚴重缺陷,這就是第一、經(jīng)典HMM是一個齊次的Markov模型,狀態(tài)轉(zhuǎn)移概率與狀態(tài)駐留長度無關,與語音的實際過程不符;第二、經(jīng)典HMM模型用于大詞匯表的識別系統(tǒng)時,其模型的訓練量是災難性的;第三、無法自適應,從而對于進一步提高系統(tǒng)的識別率將是困難的;第四、模型的存儲量太大。
由于上述方面的缺陷,導致采用經(jīng)典HMM模型的語音識別系統(tǒng)的識別率低下,同時因為系統(tǒng)運算量和存儲量巨大使得系統(tǒng)工作效率不高,自我學習能力降低,系統(tǒng)開發(fā)成本偏高,難以普及到廣泛的應用當中去。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出了一種采用基于段長分布的隱含馬爾可夫模型的漢語連續(xù)語音識別系統(tǒng),該語音識別系統(tǒng)比現(xiàn)有語音識別系統(tǒng)的識別率有顯著提高,更重要的是該語音識別系統(tǒng)的訓練算法比經(jīng)典HMM的Baum-Welch訓練算法要快近二個數(shù)量級,存儲量也小得多,解決了所謂的訓練災難,同時提高了系統(tǒng)學習能力,從而可以在使用過程當中不斷地提高語音識別率。
為達到上述目的,本發(fā)明是這樣實現(xiàn)的本發(fā)明包括語音采集裝置、前端處理模塊、特征提取模塊、基音特征提取模塊、聲調(diào)識別模塊、訓練模塊、聲學層識別模塊、拼音文法理解模塊、語言理解模塊九個部分,該聲學層識別模塊采用以狀態(tài)的段長概率來表示的隱含馬爾可夫模型,即基于段長分布的隱含馬爾可夫模型,簡稱DDBHMM模型,該模型的段長服從具有凸性的分布,其中,該模型中的狀態(tài)與語音中的音素或音節(jié)等語音單元相對應,而這些語音單元讀音的語音信號特征作為對應語音單元的觀測量;該訓練模塊的訓練方法步驟如下對訓練模塊輸入一個或多個包含有若干特定詞的讀音樣本文件,該文件中的每句話的一系列幀的特征向量以幀為單位,通過訓練模塊中的訓練搜索算法,對每幀語音信號中的每個詞的每個狀態(tài)進行搜索比較,得到語音信號特征矢量的矢量量化碼本(VQ碼本)和該特定詞的DDBHMM模型參數(shù),輸入給聲學層識別模塊;所述的漢語連續(xù)語音識別系統(tǒng)的語音識別方法步驟如下通過語音采集裝置接收人們的語音信號,對于輸入的語音信號進行前端處理,并進行MFCC語音特征(基于Mel倒譜系數(shù)的語音特征,Mel-Frequency CepstralCoefficients)序列的提取,得到的該MFCC語音特征序列被送入聲學層識別模塊,通過聲學層識別模塊的搜索算法,產(chǎn)生拼音格形式的識別結(jié)果,同時,語音信號的基音特征矢量也被提取出來,送入聲調(diào)識別模塊,聲調(diào)識別模塊利用基音特征信息和拼音的分割點信息,得到拼音的聲調(diào)信息并加入到拼音格中,接著,通過拼音文法理解模塊對拼音格進行修剪,精簡后的音節(jié)格被送入語言理解模塊,轉(zhuǎn)化為拼音圖和詞圖,并在詞圖中進行搜索,得到最后的理解結(jié)果。
對語音信號的前端處理包括先進行語音信號檢測,濾去確認為靜音或雜聲的信號,然后進行包括高頻預加重、加窗、分幀的預處理操作。
該基于段長分布的隱含馬爾可夫模型是一個六狀態(tài)的模型。
該基于段長分布的隱含馬爾可夫模型是一個段間不相關的模型。
所述的具有凸性的分布是均勻分布或者高斯分布。
所說的VQ碼本數(shù)量為857,音節(jié)總數(shù)為1254。
訓練模塊中的訓練搜索算法步驟如下首先獲得該狀態(tài)對應的初始碼本,計算出該特征向量對狀態(tài)的概率,接著計算上一時刻該狀態(tài)的路徑在原地駐留的似然距離,然后對于新加入的此幀信號的特征向量進行最佳路徑的匹配,即找到它到原駐地的最佳狀態(tài)路徑,此后進入下一幀的搜索,直到一句話的訓練結(jié)束,然后統(tǒng)計和修改初始碼本的DDBHMM模型參數(shù),完成本句話的訓練和碼本參數(shù)統(tǒng)計后,接著再進行輸入文件的下一句話的訓練和碼本參數(shù)統(tǒng)計,累加各句話訓練后得到的概率,以得到當前文件經(jīng)訓練得到的概率,并將本次訓練過的每個文件得到的概率累加到本次訓練得到的總概率中,判斷本次訓練與上一次訓練后得到的總概率是否相等,不相等則進入下一次的循環(huán)訓練,相等則訓練結(jié)束。
計算上一時刻該狀態(tài)的路徑在原地駐留的似然距離的方法是,對該狀態(tài)上一時刻到原駐地的最佳路徑隊列中的每個單元,計算相對于本碼本的狀態(tài)駐留概率和狀態(tài)轉(zhuǎn)移概率,然后累加即可。
訓練時對于新加入的此幀信號的特征向量進行最佳路徑的匹配的方法分為兩種情況一是該特征向量所對應的幀所處的狀態(tài)與上一個特征向量所對應的幀所處的狀態(tài)屬于同一個字,處理的方法為復制前一時刻本狀態(tài)到原駐地的最佳路徑,并計算這條路徑到原駐留地的總的概率,然后將新增加的路徑加入到當前狀態(tài)的幸存路徑的雙向列表中,具體加入的操作過程為首先看此幸存狀態(tài)路徑隊列是否為空,若是,則令幸存路徑雙向列表的指針都指向此路徑;否則,則將此新加的路徑加到幸存路徑隊列的隊尾,接著對似然距離進行排序,比較各條在不同的時刻進入此狀態(tài)的路徑,若先進入本狀態(tài)的路徑在概率上若不比后進入本狀態(tài)的路徑占優(yōu),則該先進入本狀態(tài)的路徑被刪除,按此方法沿著幸存路徑隊列向前推進,直到隊頭;二是該特征向量所對應的幀處在某一個字的第一個狀態(tài),這又分為兩種情況此狀態(tài)對應的字不是第一個字,則也應該復制以前的最佳路徑,分配新的路徑,鏈接最佳路徑并計算出該狀態(tài)累加似然距離,然后將新增加的路徑加入到當前狀態(tài)的幸存路徑的雙向列表中;此狀態(tài)對應的是第一個字,則直接分配路徑,記錄進入當前路徑的時刻,計算該路徑在原駐地的似然距離,然后將此路徑加入到當前狀態(tài)的幸存路徑的雙向列表中。
所說的初始碼本的參數(shù)的統(tǒng)計,其步驟為在統(tǒng)計的時候是每個狀態(tài)對應一個碼本,對于給定的本句話的一系列特征向量,從這句話對應的幸存路徑的最后一個字開始,對每個字的每個狀態(tài)分別進行統(tǒng)計,包括獲取每個狀態(tài)的段長、計算每個狀態(tài)的持續(xù)時間,然后統(tǒng)計出該字對應碼本的段長的均值和方差,用與當前的狀態(tài)相對應的特征向量的值統(tǒng)計出該狀態(tài)的碼本各參數(shù)的均值,對于方差的統(tǒng)計,根據(jù)事先定義的標志來確定,這個標志表明系統(tǒng)對速度和精度的偏好,當它的值為1時,表明偏好速度,只統(tǒng)計碼本的方差;否則,表明偏好精度,則要計算各個特征之間的協(xié)方差矩陣,做完上述統(tǒng)計以后,則進入下一個字的各狀態(tài)的碼本的特征的統(tǒng)計,直到本句話統(tǒng)計完成。
聲學層識別模塊工作方式如下首先調(diào)入經(jīng)過訓練得到的碼本及其DDBHMM模型參數(shù),對于輸入的MFCC語音特征向量,獲得其幀數(shù),計算出該特征向量對所有碼本的概率,對每一幀輸入連續(xù)語音識別器進行幀同步識別,在使用幀同步識別方法得到一系列的路徑以后,獲取當前幀的最佳字串路徑;累加每句話的路徑概率,得到整句話的累加概率;直到整句話結(jié)束,通過回溯得到最優(yōu)路徑以及路徑上各個音節(jié)的候選,并保存為識別結(jié)果。
所述的幀同步識別方法為,在此語音識別器中,對每一幀到來的特征向量采用搜索算法進行識別,對于到來的這幀信號,根據(jù)位置的不同分為兩種情況一、此特征向量是某一句話中的第一幀信號,則它對應的狀態(tài)對任何字而言都是第一個狀態(tài),因此計算出該特征向量對所有的候選字的第一個狀態(tài)對應的碼本的概率,為此特征向量分配一條新的狀態(tài)路徑,然后設置進入當前路徑的時刻為當前幀的標號、設置當前路徑的概率為該特征向量對所有的候選字的第一個狀態(tài)對應的碼本的概率、記錄當前路徑的字的標號,將段長值設為1,計算出當前路徑的狀態(tài)駐留概率,將兩個概率,即該特征向量對所有的候選字的第一個狀態(tài)對應的碼本的概率和當前路徑的狀態(tài)駐留概率求和,即得到該路徑的完全概率,最后將此路徑加到當前狀態(tài)的幸存路徑的雙向列表中,返回;二、此特征向量對應的不是一句話的第一幀信號,處理的方法為將最優(yōu)狀態(tài)路徑的指針設為空,若此次識別是連續(xù)語音的識別,則需要考慮當前幀產(chǎn)生的最優(yōu)字輸出結(jié)果,搜索出最佳的狀態(tài)路徑,搜索方法為從每個字對應的最后一個狀態(tài)開始搜索,找到該字的最佳幸存狀態(tài)路徑隊列的頭指針,若頭指針為空,則表示沒有與該字對應的最佳狀態(tài)路徑序列,直接返回;若不為空,則比較各個字的識別器的輸出概率,得到最大的那一個,然后記錄字間跳轉(zhuǎn)的位置,即當前幀的標號,返回最佳字的狀態(tài)路徑隊列的頭指針,這就是搜索到的最佳路徑,在得到最佳的字的狀態(tài)路徑以后,若不為空,則復制該最優(yōu)路徑,若該路徑對應的字不是第一個字,則要增加對前導字的引用,并使最優(yōu)路徑指針指向該新分配的狀態(tài)路徑;處理完每一幀的特征向量,則對當前所有可能的路徑進行剪枝。
當對情況二,即此特征向量對應的不是一句話的第一幀信號,對于狀態(tài)間的跳轉(zhuǎn),分為兩種情況,即字內(nèi)狀態(tài)跳轉(zhuǎn)和字間狀態(tài)跳轉(zhuǎn),處理的方法分別為對字內(nèi)狀態(tài)跳轉(zhuǎn)的情況,則為當前狀態(tài)分配一個新的路經(jīng),具體方法是取得前一狀態(tài)路徑,為本幀特征向量創(chuàng)建新的路徑并復制前一狀態(tài)路徑、設置進入當前路徑的時刻,計算新的狀態(tài)路徑的完全概率,最后將新增加的路徑加入到當前狀態(tài)的幸存路徑的雙向列表中;字間跳轉(zhuǎn)的情況字間的跳轉(zhuǎn)只有在連續(xù)語音識別時才存在,對孤立字的識別時,此時不用執(zhí)行任何操作;對連續(xù)語音識別的情況,不用獲取前一狀態(tài)的最佳路徑而直接創(chuàng)建新的路徑并鏈接該路徑、增加前一字的最佳路徑的引用,計算出新的狀態(tài)路徑到原駐留地的完全概率,即狀態(tài)駐留概率和路徑概率之和,最后將新增加的路徑加入到當前狀態(tài)的幸存路徑的雙向列表中。
獲取當前幀的最佳字串路徑的方法為對每一句話產(chǎn)生的各條幸存的路徑,對所有的字逐一比較找出其中似然距離最大的那一個,就得到最佳字串狀態(tài)路徑。
對當前所有可能的路徑進行剪枝的步驟為從當前狀態(tài)的狀態(tài)幸存路徑隊列的隊尾開始,對似然距離進行排序,若先進入本狀態(tài)的路徑在概率上若不比后進入本狀態(tài)的路徑占優(yōu),則該先進入本狀態(tài)的路徑被刪除,采用此種方法向前推進,刪除其中所有不可能成為最佳的路徑,直到幸存狀態(tài)路徑隊列的隊頭。
在本發(fā)明中,搜索最優(yōu)路徑的過程是一個幀同步算法,在對每一幀進行搜索時,進行剪枝和排序,最后獲得最優(yōu)路徑。在連續(xù)語音識別中采用此方法進行最優(yōu)路徑搜索的計算量可以比全搜索的方法下降2個數(shù)量級以上,存儲量也大大減少。對本發(fā)明的非特定人連續(xù)語音實驗結(jié)果表明,本發(fā)明的DDBHMM語音識別模型比經(jīng)典的HMM模型的誤識率降低了12.9%,展示了DDBHMM的良好的性能;另外,本發(fā)明提出的訓練模塊很容易自適應,方法是由系統(tǒng)使用人讀預先設計好的文本,以其特征修改HMM模型參數(shù)后再進行識別。這種自適應能力還體現(xiàn)在其實時性,在使用時并不一定需要專門念自適應文本,而是在使用過程中自動進行的,這就使得系統(tǒng)在使用中能自我學習、自我完善。因此,本發(fā)明與現(xiàn)有漢語連續(xù)語音識別技術相比,速度快,存儲量小是本發(fā)明的極大優(yōu)點,因此不但識別率有顯著提高,而且還降低了本發(fā)明的開發(fā)成本,完全可以在一般的微機(如PC機)上應用。
圖1為基于段長分布的隱含馬爾可夫模型示意圖;圖2為基于段長分布的隱含馬爾可夫模型狀態(tài)序列示意圖;圖3為本發(fā)明實施例的總體流程框圖;圖4為圖1所示實施例的訓練模塊流程框圖;圖5為圖4所示“訓練模塊中對每個文件進行訓練”模塊的進一步描述流程框圖;圖6為圖5所示“依次對文件中的每句話進行訓練”模塊的進一步描述流程框圖;圖7為圖6所示“統(tǒng)計碼本的參數(shù)”模塊的進一步描述流程框圖;圖8為圖6所示“對相應的語音段進行訓練”模塊的進一步描述流程框圖;圖9為圖1所示實施例的聲學層模塊流程框圖;圖10為圖9所示的聲學層模塊中“幀同步語音識別”模塊的進一步描述流程框圖;圖11為圖10所示的流程框圖中“對每個字進行幀同步識別”模塊的進一步描述流程框圖。
具體實施例方式
以下結(jié)合附圖和具體實施例對本發(fā)明做進一步的闡述如圖1、2所示,本發(fā)明提出了一種用段長概率來表示的HMM模型(隱含馬爾可夫模型),顯然這是一個非齊次馬爾可夫模型。將這個非齊次馬爾可夫模型用于語音識別,并且把模型中的狀態(tài)與語音中的音素或音節(jié)等語音單元對應起來,而把這些語音單元讀音的語音信號特征作為對應語音單元的觀測量,我們就得到了一個基于段長分布的HMM模型(Duration DistributionBased Hidden Markov Models),簡稱為DDBHMM。在DDBHMM中只需要兩個參數(shù)λ=(B,D)。這里矩陣B是特征觀測概率矩陣B=[b1(o),b2(o),…bN(o)],矩陣D是狀態(tài)的段長概率矩陣D=[d1(τ),d2(τ),…dN(τ)],這里τ表示段長,服從概率分布di(τ)(0≤τ≤Dmax,i=1,2…N),N是模型狀態(tài)的個數(shù)。
為了計算DDBHMM模型產(chǎn)生觀測矢量O=[o1,o2,…,oT]的概率,我們設S=[s1,s2,…,sT]為觀測矢量O所對應的系統(tǒng)的狀態(tài)序列,Ti為系統(tǒng)在狀態(tài)i的段長,用ti=Σk=liTk(1≤i≤N)]]>表示狀態(tài)序列s1…sT的分割點(t0=0,tN=T)。于是對于給定的DDBHMM模型λ有p(O,S/λ)=p(s1···sT)·b(o1···oT/s1···sT)]]>=a1,1(1)Πi=lNΠk=2Tiai,i(k)·ai,i+1(Ti+1)·Πi=lNb(oTi-1+1···oTi/o1···oTi-1)]]>=Πk=lNPk(Tk/T1···Tk-1)b(oTk-1+1···oTk/o1···oTk-l)---(1)]]>這是一個相當一般化的描述它既包容了狀態(tài)段長之間的相關,也包含了幀間特征之間的相關,而且段長分布函數(shù)Pk(τ)(k=1,2,…,N)可以取任何形式。因此DDBHMM模型具備了很強的對語音的描述能力。
假設觀測矢量是段(狀態(tài))間不相關的,則觀測矢量概率就可以寫成P(O,S/λ)=Πk=lNPk(Tk)bk(otk-1+1···otk)---(2)]]>DDBHMM模型是非齊次的HMM模型,由于非齊次馬爾可夫鏈是有后效過程,不能使用諸如Viterbi、Baum-Welch等基于Bellman動態(tài)規(guī)劃理論的解碼算法和參數(shù)重估算法,需要有完全新的、高效的模型訓練和解碼算法。DDBHMM模型應用的關鍵是構造高效的最優(yōu)分割算法,即在某一模型λ下快速地找到一種分割(t1,t2,…,tN)使函數(shù)式(2)取值最大。函數(shù)式(3)所示的算法是一種基于最優(yōu)狀態(tài)路徑的識別算法。在模型訓練時,則是對指定的訓練模型λ求出最佳的狀態(tài)路徑,然后再對模型參數(shù)進行分段訓練。
λ^=argmax(λ;S)P(O,S/λ)]]>=atgmax(λ;t1,t2,···,tN)Πk=lNPk(Tk)bk(otk-1+1···otk)]]>=argmaxλmax(t1,t2,···,tN)Πk=lNPk(Tk)bk(otk-1+1···otk)---(3)]]>為了獲得函數(shù)式(3)中的最佳分割點t1,t2,…,tN,可以構造如下的模型訓練和識別算法。
定義Lk(t,n)為k時刻由狀態(tài)(n-1)進入狀態(tài)n的路徑在t時刻(t≥k)的累積似然比值。
Lk(t,n)=Σi=0n-1{lnPi(Ti)+Σm=ti-l+1tilnbi(Oti)}+Σm=ktlnbn(Om),]]>I(t,n)=Lk(t,n)+lnPn(t-tn-1)=Lk(t,n)+lnPn(t-k+1)]]>n=1,···N;t=1,···T---(4)]]>則λ^=arg{maxλmax(t1,···,tN)I(T,N)}---(5)]]>為了求解(3)式的最優(yōu)路徑問題,需求出每一時刻進入每個狀態(tài)的最佳路徑??梢宰C明引理1設lgPn(τ)是定義域D(即τ∈D)中的上凸函數(shù),若j≤k≤t,Lj(t,n)+lnPn(t+1-j)≤Lk(t,n)+lnPn(t+1-k)(6)則t’>t有Lj(t’,n)+lnPn(t’+1-j)≤Lk(t’,n)+lnPn(t’+1-k)(7)引理1成立的唯一條件是關于段長概率分布的凸性假設,它包含了一大類有用的分布(例如均勻分布、三角分布、指數(shù)分布、正態(tài)分布、Reilygh分布、余弦分布等均滿足引理假設),從而這一條件在實際應用中總是成立的,所以引理1的假設不會成為算法應用的限制。
引理1表明,如果進入狀態(tài)n的某條路徑在(t+1)時刻向(n+1)狀態(tài)轉(zhuǎn)移時不比其它更晚進入的路徑占優(yōu),則在以后任何時刻(t’+1)(t’>t)從n狀態(tài)向(n+1)狀態(tài)轉(zhuǎn)移時都不可能成為占優(yōu)者,從而在t時刻就可以把它刪除而不會影響算法的最優(yōu)性。在搜索算法中,我們通過只保留幸存路徑,來保證最優(yōu)的路徑不被錯誤地剪枝掉。幸存路徑的定義如下對于任意的k,當j<k≤t,在j時刻進入狀態(tài)n的路徑在t(t>j)時刻均有Lj(t,n)+lgPn(t+1-j)>Lk(t,n)+lgPn(t+1-k) (8)則稱該路徑是幸存路徑。
根據(jù)引理1,如果我們在每一幀時刻,對狀態(tài)路徑都進行上式的比較并且只保留每個狀態(tài)下的幸存路徑,則可以大大減少最優(yōu)搜索的路徑數(shù)目。據(jù)此容易推出引理2引理2設t時刻狀態(tài)n有m條幸存路徑,對應的進入n狀態(tài)的時間為tn(0)<tn(1)<…<tn(m-1),累積似然比為Ltn(0)(t,n),Ltn(1)(t,n),···,Ltn(m-1)(t,n),]]>則有Ltn(j)(t,n)+lgPn(t+1-tn(j))>Ltn(j+1)(t,n)++lgPn(t+1-tn(j+1)),]]>j=0,1,…,m-2 (9)這就是說,越早進入的幸存路徑在下一個時刻的轉(zhuǎn)移中具有越大的優(yōu)先權,從而在(t+1)時刻由狀態(tài)n向狀態(tài)(n+1)轉(zhuǎn)移的最佳路徑總是第0條,對應的累加似然比值為Ltn(0)(t,n)。引理2保證了最佳路徑總是最早進入當前狀態(tài)的幸存路徑。因此可以推出如下定理定理1在T時刻滿足式(3)的最佳路徑是T時刻狀態(tài)N所對應的所有幸存路徑中最早進入狀態(tài)N的路徑。
在DDBHMM模型中,搜索最優(yōu)路徑的過程是一個幀同步算法。在對每一幀進行搜索時,用引理1和引理2進行剪枝和排序,最后由定理1保證最優(yōu)路徑的獲得。在連續(xù)語音識別中采用此方法進行最優(yōu)路徑搜索的計算量可以比全搜索的方法下降2個數(shù)量級以上。
圖3是本發(fā)明的一個實施例,它包括有語音采集裝置、前端處理模塊、特征提取模塊、基音特征提取模塊、聲調(diào)識別模塊、訓練模塊、聲學層識別模塊、拼音文法理解模塊、語言理解模塊九個部分,該訓練模塊和聲學層識別模塊采用基于段長分布的隱含馬爾可夫模型(DDBHMM模型),該段長服從高斯分布,并且段間不相關。其中,該模型中的狀態(tài)與語音中的音素或音節(jié)等語音單元相對應,并且每個字的狀態(tài)為六個,而這些語音單元讀音的語音信號特征作為對應語音單元的觀測量。對訓練模塊輸入一個或多個包含有若干特定詞的讀音樣本文件,該文件中的每句話的一系列幀的特征向量以幀為單位,通過訓練模塊中的訓練搜索算法,對每幀語音信號中的每個詞的每個狀態(tài)進行搜索比較,得到一個語音信號特征矢量的VQ碼本和該特定詞的DDBHMM模型參數(shù),輸入給聲學層識別模塊;本發(fā)明的語音識別方法步驟如下通過語音采集裝置接收人們的語音信號,對于輸入的語音信號進行前端處理,并進行MFCC語音特征(基于Mel倒譜系數(shù)的語音特征,Mel-Frequency Cepstral Coefficients)序列的提取,得到的該MFCC語音特征序列被送入聲學層識別模塊,通過聲學層識別模塊的搜索算法,產(chǎn)生拼音格形式的識別結(jié)果,同時,語音信號的基音特征矢量也被提取出來,送入聲調(diào)識別模塊,聲調(diào)識別模塊利用基音特征信息和拼音的分割點信息,得到拼音的聲調(diào)信息并加入到拼音格中,接著,通過拼音文法理解模塊對拼音格進行修剪,精簡后的音節(jié)格被送入語言理解模塊,轉(zhuǎn)化為拼音圖和詞圖,并在詞圖中進行搜索,得到最后的理解結(jié)果。
上述訓練模塊中的訓練搜索算法是這樣實現(xiàn)的,如圖4至圖8所示首先,初始化訓練模塊,包括打開系統(tǒng)要使用的批處理命令文件;讀取初始語音訓練碼本文件名;讀取輸出語音訓練碼本的文件名;讀取段長加權系數(shù),并設置段長加權系數(shù);從批處理命令文件中讀取本程序使用的訓練的文件數(shù)量,此值應該在0到200之間,并檢驗訓練文件的數(shù)量是否符合要求;從上述批處理命令文件中讀取用來訓練的語音文件、語音描述文件和語音端點文件的文件名,到此,批處理命令文件的命令參數(shù)讀取完畢,關閉該文件;打開語音描述文件,并為每個語音描述文件在內(nèi)存中分配相應的內(nèi)存鏡像,具體的步驟為打開文件后,獲取文件的長度,然后在內(nèi)存中分配相應大小的緩沖區(qū),最后移動文件指針到數(shù)據(jù)的起始地點,讀入文件中的數(shù)據(jù)到內(nèi)存緩沖區(qū)中,關閉該文件。進入下一個文件數(shù)據(jù)到內(nèi)存緩沖區(qū)鏡像的建立,直到所有文件執(zhí)行完畢;顯示訓練文件的數(shù)量和文件名;顯示初始語音訓練碼本文件名和輸出語音碼本文件名;設置保存上一輪訓練結(jié)束時的概率的變量為0;加載原始訓練碼本,即按照碼本數(shù)量等于857和單詞總數(shù)等于1254生成碼本對象,創(chuàng)建對象的過程中,完成的操作包括設置碼本的數(shù)量、設置詞的總數(shù)、在內(nèi)存中分配碼本的緩沖區(qū)和碼本的臨時緩沖區(qū)、分配保存碼本的段長值的數(shù)組、分配存儲每個特征對碼本概率的數(shù)組、分配記錄每個狀態(tài)所對應的碼本號的二維數(shù)組和碼本所對應的特征向量的數(shù)量的數(shù)組(各碼本對應的特征向量對此數(shù)組中相應于該碼本的值的平均即為碼本的各參數(shù));從記錄狀態(tài)到碼本的映射的文件中讀入每個狀態(tài)對應的在該文件中的碼本號,存儲到二維數(shù)組中;從初始化語音訓練文件中讀入各碼本參數(shù)的初始值;設置段長加權系數(shù);其次,創(chuàng)建DDBHMM語音訓練器,在創(chuàng)建過程中,完成的操作包括設置使用的碼本的指針,設置用來訓練的詞的數(shù)量和詞表中每部分的詞的數(shù)量的指針。同時初始化幸存路徑的雙向隊列的指針為空和本狀態(tài)中幸存路徑的數(shù)量(為0值);然后,開始循環(huán)訓練,次數(shù)最多為200次,訓練時對每個文件一次進行,具體的步驟如下獲取每一輪訓練開始的時刻,將其顯示出來,并保存在文件中;設置每一輪訓練的概率Probability的初值,為0;清除碼本緩沖區(qū),開始對每個語音文件進行分別的訓練,步驟為獲取當前數(shù)據(jù)文件在內(nèi)存鏡像中的地址;計算與該文件對應的語音描述文件中拼音的數(shù)量,讀取的方法是用文件的有用的數(shù)據(jù)區(qū)的大小除以每個結(jié)構體的大??;創(chuàng)建特征管理器,用于特征讀取管理,創(chuàng)建的過程中,完成的操作為在內(nèi)存中完成語音特征文件的內(nèi)存鏡像,同時計算語音特征文件中存儲的語音的個數(shù),并創(chuàng)建語音特征緩沖區(qū)。創(chuàng)建語音端點文件的內(nèi)存鏡像,同時獲取語音端點文件的內(nèi)容;獲取當前文件中語音的數(shù)量,并檢驗拼音的數(shù)量和語音的數(shù)量是否相等,不相等則返回,相等則繼續(xù)執(zhí)行;設置每個文件訓練的初始概率為0;依次對文件中的每一個語音(每句話)進行訓練,訓練的方法為獲取與當前這句話所對應的特征向量的幀數(shù);設置訓練器中訓練的碼本號參數(shù),其中有詞表索引中詞的數(shù)量,內(nèi)存鏡像中當前語音存儲區(qū)的地址;初始化各個字的狀態(tài),其設置的值與創(chuàng)建語音存儲訓練器的類的構造函數(shù)相同;對相應的語音段進行訓練,并獲得該句話的經(jīng)訓練后得到的概率。訓練中,對傳入的與某句話相應的一系列幀的特征向量進行訓練。在此過程中,以幀為單位進行搜索比較。具體的方法為
對此段語音中的每個詞的每個狀態(tài)進行搜索比較。在獲取當前狀態(tài)對應的碼本號后,計算出該特征向量對狀態(tài)的概率StateProb。
計算上一時刻本狀態(tài)的路徑在原地駐留的似然距離,計算方法為找到本狀態(tài)上一時刻到原駐地的最佳路徑的隊列的尾指針,對隊列中的每個單元計算相對于本碼本的狀態(tài)駐留概率CurTraceDurationProb和狀態(tài)轉(zhuǎn)移概率PathProb然后累加即可。
訓練時對于新加入的此幀信號的特征向量進行最佳路徑的匹配,即找到它到原駐地的最佳狀態(tài)路徑。分為兩種情況此特征向量所對應的幀所處的狀態(tài)與上一個特征向量所對應的幀所處的狀態(tài)屬于同一個字,即此時狀態(tài)號HmmStateNo>0。處理的方法為復制前一時刻本狀態(tài)到原駐地的最佳路徑,并計算這條路徑到原駐留地的總的概率,然后將新增加的路徑加入到當前狀態(tài)的幸存路徑的雙向列表中。具體加入的操作過程為首先看此幸存狀態(tài)路徑隊列是否為空,若是,則令幸存路徑雙向列表的指針都指向此路徑;否則,則將此新加的路徑加到幸存路徑隊列的隊尾。接著對似然距離進行排序,考慮到引理1的內(nèi)容,比較各條在不同的時刻進入此狀態(tài)的路徑,若先進入本狀態(tài)的路徑在概率上若不比后進入本狀態(tài)的路徑占優(yōu),則該先進入本狀態(tài)的路徑被刪除,按此方法沿著幸存路徑隊列向前推進,直到到隊頭;此特征向量所對應的幀處在某一個字的第一個狀態(tài)即此時狀態(tài)號HmmStateNo=0。這又分為兩種情況第一、此狀態(tài)對應的字不是第一個字,則也應該復制以前的最佳路徑,分配新的路徑,鏈接最佳路徑并計算出該狀態(tài)累加似然距離,然后將新增加的路徑加入到當前狀態(tài)的幸存路徑的雙向列表中。加入的方法同于上述加入方法。
第二、此狀態(tài)對應的是第一個字,則直接分配路徑,記錄進入當前路徑的時刻,計算該路徑在原駐地的似然距離。然后將此路徑加入到當前狀態(tài)的幸存路徑的雙向列表中,加入的方法同上。至此,對當前幀的搜索結(jié)束,進入下一幀的搜索,直到一句話的訓練結(jié)束;累加各句話訓練后得到的概率WordProb,以得到整個文件經(jīng)訓練得到的概率FileProbability;統(tǒng)計碼本的參數(shù),統(tǒng)計的過程中,傳遞的參數(shù)為一整句話的所有的特征向量。在統(tǒng)計的時候則是每個狀態(tài)對應一個碼本。對于給定的一系列特征向量,首先找到這句話對應的幸存路徑的頭指針,然后從幸存路徑的最后一個字開始逐個的進行統(tǒng)計。統(tǒng)計的步驟為獲取該字的標號及進入某個狀態(tài)的時刻,對每個字的6個狀態(tài)分別進行統(tǒng)計。包括獲取碼本號和每個狀態(tài)的段長、計算每個狀態(tài)的持續(xù)時間。
計算出對應碼本的臨時緩沖區(qū)地址,然后統(tǒng)計其段長的均值和方差。
用與當前的狀態(tài)相對應的特征向量的值統(tǒng)計出該狀態(tài)的碼本各參數(shù)的均值。對于方差的統(tǒng)計,根據(jù)事先定義的標志DIAG_CODE_BOOK_FLAG來確定,這個標志表明系統(tǒng)對速度和精度的偏好,當它的值為1時,表明偏好系統(tǒng)計算速度,只統(tǒng)計碼本的方差;否則,表明偏好系統(tǒng)計算精度,則要計算各個特征之間的協(xié)方差矩陣。做完上述工作以后,則進入下一個字的各狀態(tài)的碼本的特征的統(tǒng)計,直到本句話統(tǒng)計完成。最后,返回本條路徑的到原駐地的似然距離,進入下一句話的訓練搜索和個狀態(tài)碼本參數(shù)的統(tǒng)計,到本文件中所有語音進行完畢;累加當前文件經(jīng)訓練后得到的概率FileProbability到Probability中;釋放特征管理器占用的資源;顯示和保存該文件的循環(huán)選優(yōu)的次數(shù),文件編號,訓練后得到該文件的概率FileProbability和訓練過的文件得到的概率的總和Probability;修改碼本的參數(shù)和保存碼本到碼本輸出參數(shù)文件中;獲得此輪訓練結(jié)束的時刻,并顯示該輪訓練結(jié)束的時刻和保存該輪訓練結(jié)束的時刻到文件中;判斷兩次訓練后得到的總的概率是否相等,不相等則進入下一次的循環(huán)訓練,相等則訓練結(jié)束;最后,釋放碼本對象,訓練算法結(jié)束。
本實施例中聲學層識別模塊是這樣實現(xiàn)的,如圖9至圖11所示首先是初始化聲學層識別模塊打開語音識別批處理命令文件,從該批處理命令文件中讀取詞的狀態(tài)的文件名;讀取碼本文件名;讀取待識別的文件的數(shù)量;檢驗待識別的語音文件的數(shù)量是否在0和本系統(tǒng)最大識別文件數(shù)之間,是則繼續(xù);否則退出系統(tǒng);獲取聲學層識別模塊中使用的識別文件名、識別拼音文件名、端點文件名和識別結(jié)果輸出文件名,到此,批處理命令文件讀取完畢,關閉批處理命令文件;顯示待識別的文件的數(shù)量,顯示識別文件的文件名、識別拼音文件的文件名、端點文件的文件名和識別結(jié)果輸出文件的文件名;打開用于將1254個有調(diào)音節(jié)轉(zhuǎn)化成408個無調(diào)音節(jié)的文件,然后讀取該文件的內(nèi)容,確定有調(diào)音節(jié)到無調(diào)音節(jié)的轉(zhuǎn)化關系;讀取拼音文件的內(nèi)容,并將其賦給字符串數(shù)組;初始化每個文件的字的識別率、音節(jié)的識別率、總的字的識別率和總的音節(jié)的識別率;設置識別字的數(shù)量的初值為0;加載語音識別碼本,初始化碼本,其碼本的數(shù)量和字的數(shù)量分別為857和1254;從字的狀態(tài)集文件中讀入每個字的每個狀態(tài)對應的碼本編號;從碼本文件中加載語音識別碼本,即從碼本參數(shù)文件中讀入每個碼本的參數(shù),包括特征向量的均值、方差或協(xié)方差矩陣、段長的均值和方差;獲取段加權系數(shù),該系數(shù)來自于碼本參數(shù)文件;顯示碼本文件名和段長加權系數(shù)的值;創(chuàng)建連續(xù)語音識別器,碼本為上面創(chuàng)建的碼本的指針指向的碼本;接著,在得到需要的相應的參數(shù)和建立好上述語音識別器后,對每個待識別文件逐一進行識別,對每個文件識別的步驟為創(chuàng)建與待識別文件組相對應的語音識別結(jié)果輸出文件;創(chuàng)建特征管理器,同時從待識別文件和端點文件中讀取相應的語音特征;獲取當前語音文件中的句子的數(shù)量,并將此句子的數(shù)量寫入保存結(jié)果的文件中;獲取該文件訓練開始的時刻,設置文件的初始概率為0,以一句話為單位開始進行識別,具體過程為獲取該句話中特征向量的幀數(shù),初始化語音識別器,計算出該特征向量對所有碼本的概率,對每一幀進行幀同步識別,識別方法為,在此幀同步語音識別器中,對每一幀到來的特征向量采用搜索方法進行識別,對于到來的這幀信號,根據(jù)位置的不同分為兩種情況一、此特征向量是某一句話中的第一幀信號,則它對應的狀態(tài)對任何字而言都是第一個狀態(tài),因此計算出此特征向量對所有的候選字的第一個狀態(tài)對應的碼本的概率StateProb。為此特征向量分配一條新的狀態(tài)路徑,然后設置進入當前路徑的時刻為當前幀的標號、設置路徑的概率PathProb為StateProb、記錄當前路徑的字的標號。將段長值設為1,計算出路徑的狀態(tài)駐留概率CurTraceDurationProb,將兩個概率StateProb和CurTraceDurationProb求和,即得到該路徑的完全概率。最后將此路徑加到當前狀態(tài)的幸存路徑的雙向列表中,返回;二、特征向量對應的不是一句話的第一幀信號,處理的方法為將最優(yōu)狀態(tài)路徑的指針設為空,若此次識別是連續(xù)語音的識別,則需要考慮當前幀產(chǎn)生的最優(yōu)字輸出結(jié)果。搜索出最佳的狀態(tài)路徑,搜索方法為從每個字對應的最后一個狀態(tài)開始搜索,找到該字的最佳幸存狀態(tài)路徑隊列的頭指針,若頭指針為空,則表示沒有與該字對應的最佳狀態(tài)路徑序列,直接返回;若不為空,則比較各個字的識別器的輸出概率,得到最大的那一個。然后記錄字間跳轉(zhuǎn)的位置,即當前幀的標號,返回最佳字的狀態(tài)路徑隊列的頭指針,這就是我們搜索到的最佳路徑。在得到最佳的字的狀態(tài)路徑以后,若不為空,則復制該最優(yōu)路徑。若該路徑對應的字不是第一個字,則要增加對前導字的引用,并使最優(yōu)路徑指針指向該新分配的狀態(tài)路徑。對于狀態(tài)間的跳轉(zhuǎn),分為兩種情況,即字內(nèi)狀態(tài)跳轉(zhuǎn)和字間狀態(tài)跳轉(zhuǎn),處理的方法分別為對字內(nèi)狀態(tài)跳轉(zhuǎn)即狀態(tài)號HmmStateNo>0的情況,則為當前狀態(tài)分配一個新的路經(jīng),具體方法是獲得前一狀態(tài)路徑的隊列的頭指針,為本幀特征向量創(chuàng)建新的路徑并復制前一狀態(tài)路徑、設置進入當前路徑的時刻,計算新的狀態(tài)路徑的完全概率,最后將新增加的路徑加入到當前狀態(tài)的幸存路徑的雙向列表中;字間跳轉(zhuǎn)即狀態(tài)號HmmStateNo=0的情況。因為字間的跳轉(zhuǎn)只有在連續(xù)語音識別時才存在,對孤立字的識別時,不用執(zhí)行任何操作。對連續(xù)語音識別的情況,不用獲取前一狀態(tài)的最佳路徑而直接創(chuàng)建新的路徑并鏈接該路徑、增加前一字的最佳路徑的引用,計算出新的狀態(tài)路徑到原駐留地的完全概率(為狀態(tài)駐留概率和路徑概率之和),最后將新增加的路徑加入到當前狀態(tài)的幸存路徑的雙向列表中;處理完每一幀的特征向量,則對當前所有可能的路徑進行剪枝。剪枝函數(shù)執(zhí)行的操作為在獲得當前狀態(tài)的狀態(tài)幸存路徑隊列的指針后,從此隊列的尾部開始,對似然距離進行排序,由前述的引理1可知若先進入本狀態(tài)的路徑在概率上若不比后進入本狀態(tài)的路徑占優(yōu),則該(先進入本狀態(tài)的)路徑被刪除,采用此種方法向前推進,刪除其中所有不可能成為最佳的路徑,直到幸存狀態(tài)路徑隊列的隊頭,達到剪枝的目的;在使用幀同步識別器得到一系列的路徑以后,獲取當前幀的最佳字串路徑,獲取的方法為對每一句話產(chǎn)生的各條幸存的路徑,由于它的最后一個字肯定是所有可能的候選字中的某一個,故對所有的字逐一比較找出其中似然距離最大的那一個,就得到我們所說的最佳狀態(tài)路徑;累加每句話的路徑概率PathProb,得到整句話的累加概率,直到整句話結(jié)束,通過回溯得到最優(yōu)路徑以及路徑上各個音節(jié)的候選,并保存為識別結(jié)果。
顯示這句話識別出的結(jié)果,并將此結(jié)果保存到存儲結(jié)果的文件中;最后,釋放碼本和語音識別訓練器,語音識別過程結(jié)束。
以上所述的是本發(fā)明的一個精度優(yōu)選實施例,如果系統(tǒng)對速度要求較高,可以將上述實施例中的段長分布由高斯分布改為均勻分布,這樣系統(tǒng)的計算量大大降低,而識別精度雖然有所降低,但還是比現(xiàn)有技術要優(yōu)越。
從上面的說明可以看出,本發(fā)明不但提出了具有國際領先水平的基于段長分布的HMM(DDBHMM)模型,而且給出了比經(jīng)典HMM模型傳統(tǒng)算法更優(yōu)越、而且具有實用性的訓練算法和識別算法。可以廣泛應用到計算機語音識別輸入、電話語音合成、連續(xù)語音聲控電話交換機、機器翻譯等技術項目和產(chǎn)品中去。
權利要求
1.一種漢語連續(xù)語音識別系統(tǒng),其特征在于所述的漢語連續(xù)語音識別系統(tǒng)包括語音采集裝置、前端處理模塊、特征提取模塊、基音特征提取模塊、聲調(diào)識別模塊、訓練模塊、聲學層識別模塊、拼音文法理解模塊、語言理解模塊九個部分,該聲學層識別模塊采用以狀態(tài)的段長概率來表示的隱含馬爾可夫模型,即基于段長分布的隱含馬爾可夫模型,簡稱DDBHMM模型,該模型的段長服從具有凸性的分布,其中,該模型中的狀態(tài)與語音中的音素或音節(jié)等語音單元相對應,而這些語音單元讀音的語音信號特征作為對應語音單元的觀測量;該訓練模塊的訓練方法步驟如下對訓練模塊輸入一個或多個包含有若干特定詞的讀音樣本文件,該文件中的每句話的一系列幀的特征向量以幀為單位,通過訓練模塊中的訓練搜索算法,對每幀語音信號中的每個詞的每個狀態(tài)進行搜索比較,得到語音信號特征矢量的矢量量化碼本(VQ碼本)和該特定詞的DDBHMM模型參數(shù),輸入給聲學層識別模塊;所述的漢語連續(xù)語音識別系統(tǒng)的語音識別方法步驟如下通過語音采集裝置接收人們的語音信號,對于輸入的語音信號進行前端處理,并進行MFCC語音特征(基于Mel倒譜系數(shù)的語音特征,Mel-Frequency CepstralCoefficients)序列的提取,得到的該MFCC語音特征序列被送入聲學層識別模塊,通過聲學層識別模塊的搜索算法,產(chǎn)生拼音格形式的識別結(jié)果,同時,語音信號的基音特征矢量也被提取出來,送入聲調(diào)識別模塊,聲調(diào)識別模塊利用基音特征信息和拼音的分割點信息,得到拼音的聲調(diào)信息并加入到拼音格中,接著,通過拼音文法理解模塊對拼音格進行修剪,精簡后的音節(jié)格被送入語言理解模塊,轉(zhuǎn)化為拼音圖和詞圖,并在詞圖中進行搜索,得到最后的理解結(jié)果。
2.如權利要求1所述的漢語連續(xù)語音識別系統(tǒng),其特征在于對語音信號的前端處理包括先進行語音信號檢測,濾去確認為靜音或雜聲的信號,然后進行包括高頻預加重、加窗、分幀的預處理操作。
3.如權利要求1所述的漢語連續(xù)語音識別系統(tǒng),其特征在于該基于段長分布的隱含馬爾可夫模型是一個六狀態(tài)的模型。
4.如權利要求1所述的漢語連續(xù)語音識別系統(tǒng),其特征在于該基于段長分布的隱含馬爾可夫模型是一個段間不相關的模型。
5.如權利要求1所述的漢語連續(xù)語音識別系統(tǒng),其特征在于所述的具有凸性的分布是均勻分布或者高斯分布。
6.如權利要求1所述的漢語連續(xù)語音識別系統(tǒng),其特征在于所說的VQ碼本數(shù)量為857,音節(jié)總數(shù)為1254。
7.如權利要求1所述的漢語連續(xù)語音識別系統(tǒng),其特征在于訓練模塊中的訓練搜索算法步驟如下首先獲得該狀態(tài)對應的初始碼本,計算出該特征向量對狀態(tài)的概率,接著計算上一時刻該狀態(tài)的路徑在原地駐留的似然距離,然后對于新加入的此幀信號的特征向量進行最佳路徑的匹配,即找到它到原駐地的最佳狀態(tài)路徑,此后進入下一幀的搜索,直到一句話的訓練結(jié)束,然后統(tǒng)計和修改初始碼本的DDBHMM模型參數(shù),完成本句話的訓練和碼本參數(shù)統(tǒng)計后,接著再進行輸入文件的下一句話的訓練和碼本參數(shù)統(tǒng)計,累加各句話訓練后得到的概率,以得到當前文件經(jīng)訓練得到的概率,并將本次訓練過的每個文件得到的概率累加到本次訓練得到的總概率中,判斷本次訓練與上一次訓練后得到的總概率是否相等,不相等則進入下一次的循環(huán)訓練,相等則訓練結(jié)束。
8.如權利要求7所述的漢語連續(xù)語音識別系統(tǒng),其特征在于計算上一時刻該狀態(tài)的路徑在原地駐留的似然距離的方法是,對該狀態(tài)上一時刻到原駐地的最佳路徑隊列中的每個單元,計算相對于本碼本的狀態(tài)駐留概率和狀態(tài)轉(zhuǎn)移概率,然后累加即可。
9.如權利要求7所述的漢語連續(xù)語音識別系統(tǒng),其特征在于訓練時對于新加入的此幀信號的特征向量進行最佳路徑的匹配的方法分為兩種情況一是該特征向量所對應的幀所處的狀態(tài)與上一個特征向量所對應的幀所處的狀態(tài)屬于同一個字,處理的方法為復制前一時刻本狀態(tài)到原駐地的最佳路徑,并計算這條路徑到原駐留地的總的概率,然后將新增加的路徑加入到當前狀態(tài)的幸存路徑的雙向列表中,具體加入的操作過程為首先看此幸存狀態(tài)路徑隊列是否為空,若是,則令幸存路徑雙向列表的指針都指向此路徑;否則,則將此新加的路徑加到幸存路徑隊列的隊尾,接著對似然距離進行排序,比較各條在不同的時刻進入此狀態(tài)的路徑,若先進入本狀態(tài)的路徑在概率上若不比后進入本狀態(tài)的路徑占優(yōu),則該先進入本狀態(tài)的路徑被刪除,按此方法沿著幸存路徑隊列向前推進,直到隊頭;二是該特征向量所對應的幀處在某一個字的第一個狀態(tài),這又分為兩種情況此狀態(tài)對應的字不是第一個字,則也應該復制以前的最佳路徑,分配新的路徑,鏈接最佳路徑并計算出該狀態(tài)累加似然距離,然后將新增加的路徑加入到當前狀態(tài)的幸存路徑的雙向列表中;此狀態(tài)對應的是第一個字,則直接分配路徑,記錄進入當前路徑的時刻,計算該路徑在原駐地的似然距離,然后將此路徑加入到當前狀態(tài)的幸存路徑的雙向列表中。
10.如權利要求7所述的漢語連續(xù)語音識別系統(tǒng),其特征在于所說的初始碼本的參數(shù)的統(tǒng)計,其步驟為在統(tǒng)計的時候是每個狀態(tài)對應一個碼本,對于給定的本句話的一系列特征向量,從這句話對應的幸存路徑的最后一個字開始,對每個字的每個狀態(tài)分別進行統(tǒng)計,包括獲取每個狀態(tài)的段長、計算每個狀態(tài)的持續(xù)時間,然后統(tǒng)計出該字對應碼本的段長的均值和方差,用與當前的狀態(tài)相對應的特征向量的值統(tǒng)計出該狀態(tài)的碼本各參數(shù)的均值,對于方差的統(tǒng)計,根據(jù)事先定義的標志來確定,這個標志表明系統(tǒng)對速度和精度的偏好,當它的值為1時,表明偏好速度,只統(tǒng)計碼本的方差;否則,表明偏好精度,則要計算各個特征之間的協(xié)方差矩陣,做完上述統(tǒng)計以后,則進入下一個字的各狀態(tài)的碼本的特征的統(tǒng)計,直到本句話統(tǒng)計完成。
11.如權利要求1所述的漢語連續(xù)語音識別系統(tǒng),其特征在于聲學層識別模塊工作方式如下首先調(diào)入經(jīng)過訓練得到的碼本及其DDBHMM模型參數(shù),對于輸入的MFCC語音特征向量,獲得其幀數(shù),計算出該特征向量對所有碼本的概率,對每一幀輸入連續(xù)語音識別器進行幀同步識別,在使用幀同步識別方法得到一系列的路徑以后,獲取當前幀的最佳字串路徑;累加每句話的路徑概率,得到整句話的累加概率;直到整句話結(jié)束,通過回溯得到最優(yōu)路徑以及路徑上各個音節(jié)的候選,并保存為識別結(jié)果。
12.如權利要求11所述的漢語連續(xù)語音識別系統(tǒng),其特征在于所述的幀同步識別方法為,在此語音識別器中,對每一幀到來的特征向量采用搜索算法進行識別,對于到來的這幀信號,根據(jù)位置的不同分為兩種情況一、此特征向量是某一句話中的第一幀信號,則它對應的狀態(tài)對任何字而言都是第一個狀態(tài),因此計算出該特征向量對所有的候選字的第一個狀態(tài)對應的碼本的概率,為此特征向量分配一條新的狀態(tài)路徑,然后設置進入當前路徑的時刻為當前幀的標號、設置當前路徑的概率為該特征向量對所有的候選字的第一個狀態(tài)對應的碼本的概率、記錄當前路徑的字的標號,將段長值設為1,計算出當前路徑的狀態(tài)駐留概率,將兩個概率,即該特征向量對所有的候選字的第一個狀態(tài)對應的碼本的概率和當前路徑的狀態(tài)駐留概率求和,即得到該路徑的完全概率,最后將此路徑加到當前狀態(tài)的幸存路徑的雙向列表中,返回;二、此特征向量對應的不是一句話的第一幀信號,處理的方法為將最優(yōu)狀態(tài)路徑的指針設為空,若此次識別是連續(xù)語音的識別,則需要考慮當前幀產(chǎn)生的最優(yōu)字輸出結(jié)果,搜索出最佳的狀態(tài)路徑,搜索方法為從每個字對應的最后一個狀態(tài)開始搜索,找到該字的最佳幸存狀態(tài)路徑隊列的頭指針,若頭指針為空,則表示沒有與該字對應的最佳狀態(tài)路徑序列,直接返回;若不為空,則比較各個字的識別器的輸出概率,得到最大的那一個,然后記錄字間跳轉(zhuǎn)的位置,即當前幀的標號,返回最佳字的狀態(tài)路徑隊列的頭指針,這就是搜索到的最佳路徑,在得到最佳的字的狀態(tài)路徑以后,若不為空,則復制該最優(yōu)路徑,若該路徑對應的字不是第一個字,則要增加對前導字的引用,并使最優(yōu)路徑指針指向該新分配的狀態(tài)路徑;處理完每一幀的特征向量,則對當前所有可能的路徑進行剪枝。
13.如權利要求12所述的漢語連續(xù)語音識別系統(tǒng),其特征在于當對情況二,即此特征向量對應的不是一句話的第一幀信號,對于狀態(tài)間的跳轉(zhuǎn),分為兩種情況,即字內(nèi)狀態(tài)跳轉(zhuǎn)和字間狀態(tài)跳轉(zhuǎn),處理的方法分別為對字內(nèi)狀態(tài)跳轉(zhuǎn)的情況,則為當前狀態(tài)分配一個新的路經(jīng),具體方法是取得前一狀態(tài)路徑,為本幀特征向量創(chuàng)建新的路徑并復制前一狀態(tài)路徑、設置進入當前路徑的時刻,計算新的狀態(tài)路徑的完全概率,最后將新增加的路徑加入到當前狀態(tài)的幸存路徑的雙向列表中;字間跳轉(zhuǎn)的情況字間的跳轉(zhuǎn)只有在連續(xù)語音識別時才存在,對孤立字的識別時,此時不用執(zhí)行任何操作;對連續(xù)語音識別的情況,不用獲取前一狀態(tài)的最佳路徑而直接創(chuàng)建新的路徑并鏈接該路徑、增加前一字的最佳路徑的引用,計算出新的狀態(tài)路徑到原駐留地的完全概率,即狀態(tài)駐留概率和路徑概率之和,最后將新增加的路徑加入到當前狀態(tài)的幸存路徑的雙向列表中。
14.如權利要求11所述的漢語連續(xù)語音識別系統(tǒng),其特征在于獲取當前幀的最佳字串路徑的方法為對每一句話產(chǎn)生的各條幸存的路徑,對所有的字逐一比較找出其中似然距離最大的那一個,就得到最佳字串狀態(tài)路徑。
15.如權利要求12所述的漢語連續(xù)語音識別系統(tǒng),其特征在于對當前所有可能的路徑進行剪枝的步驟為從當前狀態(tài)的狀態(tài)幸存路徑隊列的隊尾開始,對似然距離進行排序,若先進入本狀態(tài)的路徑在概率上若不比后進入本狀態(tài)的路徑占優(yōu),則該先進入本狀態(tài)的路徑被刪除,采用此種方法向前推進,刪除其中所有不可能成為最佳的路徑,直到幸存狀態(tài)路徑隊列的隊頭。
全文摘要
本發(fā)明提供了一種采用基于段長分布的隱含馬爾可夫模型的漢語連續(xù)語音識別系統(tǒng),包括語音采集裝置、前端處理模塊、特征提取模塊、基音特征提取模塊、聲調(diào)識別模塊、訓練模塊、聲學層識別模塊、拼音文法理解模塊、語言理解模塊;通過訓練模塊得到碼本和模型參數(shù);通過聲學層識別模塊對MFCC語音特征序列的搜索算法,產(chǎn)生拼音格形式的識別結(jié)果,同時,語音信號的基音特征矢量也被提取出來,送入聲調(diào)識別模塊,聲調(diào)識別模塊利用基音特征信息和拼音的分割點信息,得到拼音的聲調(diào)信息并加入到拼音格中,接著,通過拼音文法理解模塊對拼音格進行修剪,送入語言理解模塊,轉(zhuǎn)化為拼音圖和詞圖,并在詞圖中進行搜索,得到最后的理解結(jié)果。
文檔編號G10L15/00GK1499484SQ02146100
公開日2004年5月26日 申請日期2002年11月6日 優(yōu)先權日2002年11月6日
發(fā)明者王作英, 吳及, 肖熙, 孫甲松, 王俠 申請人:北京天朗語音科技有限公司