專利名稱:一種用于語音識別的Ngram模型改進(jìn)方法
技術(shù)領(lǐng)域:
本發(fā)明公開了一種用于語音識別的Ngram模型改進(jìn)方法,特別是用于小語料條件下的特定語音識別任務(wù)的Ngram模型改進(jìn)方法。
背景技術(shù):
I.語言模型在語音識別中起到 舉足輕重的作用。聲學(xué)模型、語言模型和解碼算法,構(gòu)成一個完整的語音識別框架。2.傳統(tǒng)的Ngram(N元文法,N-gram, Ngram)模型是應(yīng)用最廣的語言模型,其優(yōu)點(diǎn)是查詢速度快,可以方便的轉(zhuǎn)成WFST(加權(quán)有限狀態(tài)轉(zhuǎn)換器,Weighted Finite StateTransducer)。轉(zhuǎn)成WFST后,識別速度可以提升一個數(shù)量級。然而,由于Ngram模型對數(shù)據(jù)分布作了一系列假設(shè),當(dāng)訓(xùn)練數(shù)據(jù)分布與假設(shè)不同時,特別是訓(xùn)練數(shù)據(jù)量較少的時候,其性能將大打折扣。3.近年來出現(xiàn)了一種RNN(回歸神經(jīng)網(wǎng)絡(luò),Recurrent Neural Network)語言模型,它可以解決Ngram模型的這種缺點(diǎn)。但它的時間復(fù)雜度是Ngram模型的百倍以上。查詢速度對語音識別而言完全無法接受。另外,由于RNN具有時間記憶功能,在同一時刻不宜對多個詞進(jìn)行查詢。否則語言模型的記憶混亂,查詢結(jié)果嚴(yán)重失常。4.現(xiàn)行的解決方案通常采用Ngram作語音識別,將結(jié)果輸出后由RNN模型重新計(jì)分。該方法可以取得很好的效果,但缺點(diǎn)也是明顯的。它將一遍搜索過程變成了多遍搜索。系統(tǒng)需要維持一個龐大的詞圖(WordLattice)網(wǎng)絡(luò)來保存所有可能的候選。5.語言模型通常采用PPL(困惑度,Perplexity)衡量其性能,然而PPL與語音識別率不能直接掛鉤,很難認(rèn)為,把PPL優(yōu)化到最小(概率最大)則識別錯誤率最小。
發(fā)明內(nèi)容
為解決上述問題,本發(fā)明提出了一種用于語音識別的Ngram模型改進(jìn)方法,其包括步驟SlOl :將用于語音識別的原始Ngram模型轉(zhuǎn)成等價的WFSA網(wǎng)絡(luò)NETl ;步驟S102 :利用RNN優(yōu)化所述NETl,使得使用所述NETl對訓(xùn)練文本打分時,對于訓(xùn)練文本中每個語句的輸出概率最大化;步驟S103 :利用發(fā)音字典將所述NETl轉(zhuǎn)成帶有語言模型概率的WFST發(fā)音網(wǎng)絡(luò)NET2 ;步驟S104 :利用音子混淆矩陣優(yōu)化所述發(fā)音網(wǎng)絡(luò)NET2,使得句子錯誤率最小化;步驟S105 :將所述發(fā)音網(wǎng)絡(luò)NET2反向轉(zhuǎn)換成改進(jìn)后的Ngram模型。本發(fā)明提出的方法采用RNN對Ngram進(jìn)行優(yōu)化,優(yōu)化后的Ngram模型PPL性能優(yōu)于RNN,且能保持原有的快速查詢特性。該技術(shù)應(yīng)用于訓(xùn)練語料不足條件下的Ngram語言模型優(yōu)化可取的顯著效果。它引入了音子混淆矩陣對Ngram模型進(jìn)行最小錯誤率訓(xùn)練,該過程模擬了語音識別過程中聲學(xué)解碼和語言解碼相結(jié)合的解碼方式,使得優(yōu)化目標(biāo)更接近真實(shí)的語音識別過程,從而使得識別率得到顯著提高。
圖I為本發(fā)明的用于語音識別的Ngram模型改進(jìn)方法的流程圖;圖2為本發(fā)明中將Ngram模型轉(zhuǎn)換成WFSA網(wǎng)絡(luò)NETl的流程圖;圖3為本發(fā)明中利用RNN模型優(yōu)化NETl的流程圖;圖4為本發(fā)明中利用RNN模型優(yōu)化NETl中所有弧的流程圖;圖5為本發(fā)明中用于增強(qiáng)NETl的表達(dá)能力的流程圖;圖6為利用本發(fā)明的方法所轉(zhuǎn)成的WFSA網(wǎng)絡(luò)的具體實(shí)例示圖;
圖7為圖6所示出的WFSA網(wǎng)絡(luò)上標(biāo)示了最佳路徑的示例圖;圖8為WFST和WFSA的一個示例圖;圖9 (a) -9 (i)為實(shí)現(xiàn)圖6的具體分解流程圖;圖10 (a)為本發(fā)明中將NETl轉(zhuǎn)換成WFST網(wǎng)絡(luò)NET_W0RD的示意圖;圖10 (b)為本發(fā)明中將WFST網(wǎng)絡(luò)NET_W0RD轉(zhuǎn)換成WFST網(wǎng)絡(luò)NET2的示意圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。圖I為本發(fā)明所述的一種用于語音識別的Ngram模型改進(jìn)方法的流程圖。所述用于語音識別的Ngram模型改進(jìn)方法用于特定領(lǐng)域語音識別,針對訓(xùn)練語料較少的條件下改善Ngram模型的性能具有顯著效果,例如車載導(dǎo)航系統(tǒng)中的語音導(dǎo)航功能、地名識別功能、控制命令識別功能等。所述用于語音識別的Ngram模型改進(jìn)方法,具體包括步驟步驟SlOl :將Ngram轉(zhuǎn)成等價的WFSA(加權(quán)有限狀態(tài)自動機(jī),Weighted FiniteState Automata)網(wǎng)絡(luò) NET I。步驟S102 :利用RNN優(yōu)化NETl,使得輸出概率最大化。步驟S103 :利用發(fā)音字典將NETl轉(zhuǎn)成帶有語言模型概率的WFST發(fā)音網(wǎng)絡(luò)NET2。步驟S104 :利用音子混淆矩陣優(yōu)化NET2使得句子錯誤率最小化。步驟S105 :將NET2反向轉(zhuǎn)換成Ngram模型。其中,如附圖8所示,WFST和WFSA都是有向圖,圖上有若干狀態(tài),狀態(tài)之間有連接弧,弧是有方向的,并且每條弧上帶有輸入字串和權(quán)重;它們的不同點(diǎn)在于,WFSA的弧上只有輸入字串和權(quán)重,WFST上除了帶有輸入字串和權(quán)重,還有輸出。更具體地,每個步驟操作細(xì)節(jié)如下步驟SlOl :將Ngram轉(zhuǎn)成等價的WFSA網(wǎng)絡(luò)NET1。NETl的網(wǎng)絡(luò)狀態(tài)數(shù)目等于Ngram的所有元組數(shù)目加1,除了初始狀態(tài)表示空字符串以外,其它的每個狀態(tài)代表一個N元組,如狀態(tài)W1W2. . Wlri,該狀態(tài)表示包含W1W2. . Wn^1的文字組合;如果Ngram模型中概率P(Wn)W1W2. . Wlri)存在,即表示文本中從包含W1W2. . wn_!的文字組合觀察到包含W1W2. . WlriWn的文字組合的概率;則在NETl中狀態(tài)W1W2. . wn_!到狀態(tài)W1W2. . WlriWn之間必定有一條弧連接,且該弧上的輸入為字符串Wn,該弧上的權(quán)重為LnP^lw^. .Wlri),其為所述概率P (Wn IW1W2..Wlri)的對數(shù)值;在轉(zhuǎn)換后的NETl中,除了初始狀態(tài)之外,每一個狀態(tài)Wiffi+1. 都還有一條回退弧,其對應(yīng)Ngram模型中相應(yīng)元組的回退概率B(WiWi+1. . Wj),該弧從狀態(tài)WiWw. . Wj指向狀態(tài)wi+1. . Wj,弧上的輸入為空,弧上的權(quán)重等于LnB(WiWi+1. . Wj),其為所述回退概率B(WiWw. . Wj)的對數(shù)值;上述特征中P( ·)和B( ·)分別表示概率和回退概率。其中,Ngram模型包括I元組Unigram>2元組Bigram、3元組trigram、......, k元組k-gram。圖2顯示了達(dá)到此目的一種具體操作方法。在S201步驟,正規(guī)化用于語音識別的Ngram模型,使得保證高階Ngram存在時對應(yīng)低階Ngram也存在,即如果一個N元組存在,則其所有前綴相應(yīng)的元組都要存在。在S202步驟,創(chuàng)建空狀態(tài)esp作為初始的NETl。在S203步驟,創(chuàng)建Ngram模型中所有I元組的概率和回退概率,通過遍歷Ngram模型中所有的I元組Unigram,在NETl中為每個Unigram創(chuàng)建相應(yīng)的Unigram狀態(tài);從esp 狀態(tài)到Unigram狀態(tài)添加前向弧,弧上的輸入為Unigram對應(yīng)的字符串,權(quán)重為Unigram對應(yīng)的概率的對數(shù)值;從每個Unigram狀態(tài)到esp狀態(tài)添加回退弧,弧上的輸入為空,權(quán)重為Unigram對應(yīng)的回退概率的對數(shù)值。在S204步驟,倉Il建所有2元以上的高元組的概率和回退概率,通過遍歷Ngram模型中所有2元以上的高元組k-gram,在NETl中為每個高元組k-gram創(chuàng)建相應(yīng)的k-gram狀態(tài);在NETl中尋找k-gram的前k-Ι個詞構(gòu)成的(k_l)-prefix-gram狀態(tài),并添加從(k-l)-prefix-gram狀態(tài)到k-gram狀態(tài)的前向弧,弧的輸入為高元組k-gram對應(yīng)的詞組中的最后一個詞,權(quán)重為高元組k-gram對應(yīng)的概率的對數(shù)值;然后在所述NETl中尋找k-gram的后k_l個詞構(gòu)成(k_l) -subf ix-gram狀態(tài),從k-gram狀態(tài)添加回退弧到(k-l)-subf ix-gram狀態(tài),弧的輸入為空,權(quán)重為高元組k-gram的回退概率的對數(shù)值;其中k的取值范圍是2 < = k < = N的整數(shù),N是Ngram的階數(shù)。步驟S102 :利用RNN優(yōu)化步驟SlOl中的得到的NETl,使得輸出概率最大化。該步驟對每個句子采用NETl和RNN分別打分,優(yōu)化目標(biāo)是使得句子的得分為NETl打分和RNN打分中的高分者,所述步驟具體包括,如圖3所示步驟S301,利用RNN得分優(yōu)化NETl中的所有?。徊襟ES302,向NETl追加狀態(tài)和弧,增強(qiáng)NETl的表達(dá)能力。更具體的,步驟S301的詳細(xì)流程如圖4所示。首先,在步驟S401處取出每句語音訓(xùn)練文本SENTi ;接著在步驟S402處,在NETl上求解最高分路徑,該路徑從狀態(tài)〈S〉出發(fā)到狀態(tài)Wnl. . . ^〈/s〉結(jié)束,其中Wnl. . . Wn2是SENTi的最后Wl個詞,并且路徑中間經(jīng)過的弧上的字符串串接起來等于輸入的句子,<s>是Ngram模型中用來表示句子開始的I元組,其在轉(zhuǎn)換成NETl后對應(yīng)<s>狀態(tài),</s>是Ngram模型中用來表示句子結(jié)束的I元組,其在轉(zhuǎn)換成NETl后對應(yīng)</s>狀態(tài)。將路徑經(jīng)過的弧的編號依次記錄下來,記該路徑為PATHi,并記該路徑的總得分為SCORE-NGRAMi,即該路徑經(jīng)過的所有弧上的權(quán)重之和;接著在步驟S403處,采用RNN計(jì)算SENTi得分并記為SC0RE_RNNi ;接著在S404 處,求 SENTi 的最佳得分,記為 SC0RE_BESTi = max {SC0RE_RNNi;SC0RE_NGRAMJ ;接著在步驟S405處,利用如下公式計(jì)算出的更新量更新路徑PATHi經(jīng)過的每一條弧(包括回退弧)上的權(quán)重,即更新后的權(quán)重等于原始權(quán)重加上所述更新量,每條弧的更新量為:
其中P e (0,I]為系統(tǒng)學(xué)習(xí)率,LENGTHi是PATHi經(jīng)過的弧的數(shù)目;接著在步驟S406處,采用廣度優(yōu)先遍歷NETl中的每個狀態(tài),將該狀態(tài)所有輸出 弧上的權(quán)重進(jìn)行規(guī)整,保證每個狀態(tài)所有輸出弧(包括回退弧)滿足概率條件(概率之和等于I);最后,在步驟S407處判斷是否可以停止,如果迭代次數(shù)超過指定門限,或者訓(xùn)練結(jié)果收斂,即所述NETl上的所有弧上的權(quán)重不再發(fā)生變化,或者更新后的新模型與原來的模型的誤差小于指定門限,則停止,否則重復(fù)步驟S401到步驟S406的過程。其中,所述誤差為迭代更新后所有弧上的權(quán)重與迭代更新前所有弧上的權(quán)重之平均誤差。更具體的,步驟S302的詳細(xì)流程如圖5所示步驟S501尋找需要增強(qiáng)表達(dá)能力的句子,對訓(xùn)練文本集中的每個句子SENTi,當(dāng)SCORE-RNNi > SCORE—NGRAMp 則進(jìn)入后面操作 S502 和 S503 ;步驟S502,增強(qiáng)2元組表達(dá)能力,將該句子中出現(xiàn)的I元組Unigram與它的后接詞合并為2元組Bigram,如果NETl中不存在該Bigram對應(yīng)的Bigram狀態(tài),則采用步驟S204的方法將該Bi gram對應(yīng)的Bi gram狀態(tài)添加到NETI中,從所述Uni gram狀態(tài)到所述Bi gram狀態(tài)的弧上的輸入為所述后接詞,其權(quán)重值等于在Ngram模型中所述2元組Bigram的概率
對數(shù)值與下式結(jié)果之和
^ , SCORE BESTf^SCORK NGMMidella = p-=^LliNGm^=-且Bigram狀態(tài)的回退弧上的權(quán)重值等于O ;接著采用步驟S301所述方法優(yōu)化所述NETl中的所有弧,其具體實(shí)現(xiàn)見步驟S401到S407。舉例說明,假設(shè)有I元組(unigram) “好”要升級到“好嗎”這個2元組。那么首先在NETl中建立狀態(tài)“好嗎”,然后從狀態(tài)“好”到狀態(tài)“好嗎”添加一條弧,這條弧上的輸入等于“嗎”字;然后給“好嗎”添加回退弧,回退到“嗎”狀態(tài),回退弧上沒有輸入,只有權(quán)重等于O。最后,在步驟S503處,增強(qiáng)3元組及更高元組的表達(dá)能力,利用步驟S501到S502的方法處理Ngram模型中2元組及更高元組的表達(dá)能力,也就是說,對2 < = k < N的情形,對每個階數(shù)k,類似上述步驟S501至S502的做法,如果Ngram模型中對于k-gram,當(dāng)SC0RE_RNNi > SCORE-NGRAMi,則將該句中k-gram與后接詞合并為(k+1) -gram,如果NETl中不存在該(k+1)-gram對應(yīng)的(k+1)-gram狀態(tài),貝U采用步驟S204的方法將(k+1)-gram添加到NETl中,從所述k-gram狀態(tài)到(k+1)-gram狀態(tài)的弧上的字符串為后接詞,其權(quán)重值等于在Ngram模型中所述k+Ι元組模型(k+1)-gram的概率對數(shù)值與下式之和
} , SCORE BEST ^ SCORE NGMMidelta = ρ-=--=-L
ΗLENGTHs且(k+1)-gram狀態(tài)的回退弧上的權(quán)重值等于0,再采用步驟S301方法更新WFSA,其具體實(shí)現(xiàn)見步驟S401到S407 ;重復(fù)上述步驟直到不存在SC0RE_RNNi > SC0RE_NGRAMi的句子,或者訓(xùn)練文本的所有句子中出現(xiàn)的所有N元組都在NETl中。更具體的,步驟S103,利用發(fā)音字典將NETl轉(zhuǎn)成帶有語言模型概率的WFST發(fā)音網(wǎng)絡(luò)NET2。具體包括保持NETl網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)不變,將每條弧上的輸入復(fù)制到輸出,形成WFST網(wǎng)絡(luò)NET_W0RD,具體示例見圖10 (a);將發(fā)音字典中每個詞Wi轉(zhuǎn)成FST網(wǎng)絡(luò)NET_LEXi;每個FST網(wǎng)絡(luò)的特點(diǎn)是從開始狀態(tài)走到結(jié)束狀態(tài)的每一條路徑上所有弧上的輸入正好等于該詞的一個發(fā)音,到達(dá)結(jié)束狀態(tài)的每條弧輸出都是詞Wi ;如果NET_W0RD中的弧上有輸入單詞Wi,則將該弧替換成FST網(wǎng)絡(luò)NET_LEXi;最終形成新網(wǎng)絡(luò)NET2,從而避免了傳統(tǒng)compose做法導(dǎo)致的大內(nèi)存消耗問題和同音詞消歧問題;最終生成的NET2網(wǎng)絡(luò)的特點(diǎn)是每條弧的輸入是一個音子,如果該弧上的輸入到達(dá)一個詞Wi的結(jié)尾,則該弧的輸出是詞Wi,如果該弧上的輸入未達(dá)到一個詞的詞尾,則該弧的輸出詞為空;且該弧到達(dá)狀態(tài)必定對應(yīng)Ngram模型中描述的一個N元組,具體示例請見圖10(b)。 更具體的,步驟S104,利用音子混淆矩陣優(yōu)化NET2使得句子錯誤率最小化,具體是從聲學(xué)模型中引入音子混淆矩陣M。對于訓(xùn)練文本中每句話的標(biāo)準(zhǔn)音子串,按照音子混淆矩陣M所述的概率在NET2進(jìn)行狀態(tài)轉(zhuǎn)移,最終輸出K+1個最佳候選句子,其中完全等同于標(biāo)準(zhǔn)答案的句子為SENTtl,不同于標(biāo)準(zhǔn)答案的K個句子為SENT1. . SENTK,優(yōu)化目標(biāo)使得標(biāo)準(zhǔn)答案句子的路徑得分大于錯誤句子的路徑得分;具體包括如下步驟(S001)從NET2中找到〈S〉狀態(tài)作為當(dāng)前狀態(tài);(S002)依次輸入訓(xùn)練文本中句子的所有音子;(S003)對每個音子,以混淆矩陣M中的概率走向混淆音子表示的弧;例如,“安”的標(biāo)準(zhǔn)發(fā)音是an,如果混淆矩陣M中有2個混淆關(guān)系an保持an的概率是O. 8 ;an混淆ang的概率是O. 2 ;則從當(dāng)前狀態(tài)出發(fā)以O(shè). 8的概率轉(zhuǎn)移到輸入為an的弧,同時以O(shè). 2的概率轉(zhuǎn)移到輸入為ang的弧。(S004)每輸入一個音子,采用集束搜索(BeamSearch)方法,以指定的Beam寬度對路徑進(jìn)行裁剪,即刪除路徑總得分(即所述路徑包括的所有弧上的權(quán)重之和)和最大路徑得分差距大于Beam的路徑;(S005)當(dāng)輸入最后一個音子時,保留所有到達(dá)詞結(jié)尾的路徑,記路徑中輸出結(jié)果與原始文本相同的句子為SENTtl,其他句子記為SENT1. . SENTk ;(S006)對每個句子執(zhí)行如下操作計(jì)算標(biāo)準(zhǔn)答案得分與錯誤答案得分之間的差距d d = g (SENT01 Μ, NET2) -G (SENT1.. κ | Μ, ΝΕΤ2)其中g(shù)(SENTQ|M,NET2)表示在給定混淆矩陣M和發(fā)音網(wǎng)絡(luò)NET2的條件下,輸出文本SENTtl的概率;G(SENT1..κ M,NET2)表示在給定混淆矩陣M和發(fā)音網(wǎng)絡(luò)NET2的條件下,輸出錯誤句子SENT1. . SENTk的概率的某種變換函數(shù),具體為
權(quán)利要求
1.一種用于語音識別的Ngram模型改進(jìn)方法,其包括如下步驟 步驟SlOl :將用于語音識別的原始Ngram模型轉(zhuǎn)成等價的WFSA網(wǎng)絡(luò)NETl ; 步驟S102 :利用RNN優(yōu)化所述NETl,使得使用所述NETl對訓(xùn)練文本打分時,對于訓(xùn)練文本中每個語句的輸出概率最大化; 步驟S103 :利用發(fā)音字典將所述NETl轉(zhuǎn)成帶有語言模型概率的WFST發(fā)音網(wǎng)絡(luò)NET2 ; 步驟S104 :利用音子混淆矩陣優(yōu)化所述發(fā)音網(wǎng)絡(luò)NET2,使得句子錯 誤率最小化; 步驟S105 :將所述發(fā)音網(wǎng)絡(luò)NET2反向轉(zhuǎn)換成改進(jìn)后的Ngram模型。
2.如權(quán)利要求I所述的用于語音識別的Ngram模型改進(jìn)方法,其特征在于 所述NETl中的狀態(tài)數(shù)目等于所述原始Ngram的所有元組數(shù)目加I,其中所述NETl中的 狀態(tài)包括初始狀態(tài)和對應(yīng)所述原始Ngram中每一個元組的狀態(tài); 如果原始Ngram模型中概率P (wn | W1W2. . Wlri)存在,則在所述NETl中狀態(tài)W1W2. . Wlri到狀態(tài)W1W2. . WlriWn之間必定有一條弧連接,且該弧上的輸入為字符串Wn,該弧上的權(quán)重為LnP (Wn)W1W2. . Wlri),其為所述概率P (wnIW1W2. . Wlri)的對數(shù)值;在所述NETl中,除了初始狀態(tài)之外,每一個狀態(tài)WiWw. . Wj都還具有一條回退弧,其對應(yīng)所述原始Ngram模型中相應(yīng)元組的回退概率B (WiWw. Wj),該回退弧從狀態(tài)WiWw. .Wj指向狀態(tài)wi+1. . Wj,弧上的輸入為空,弧上的權(quán)重等于LnB (WiWw. . Wj),其為所述回退概率B (WiWw. . Wj)的對數(shù)值。
3.如權(quán)利要求2所述的用于語音識別的Ngram模型改進(jìn)方法,其特征在于所述將用于語音識別的Ngram模型轉(zhuǎn)成等價的WFSA網(wǎng)絡(luò)NETl具體包括 步驟S201 :正規(guī)化所述原始Ngram模型; 步驟S202 :創(chuàng)建空狀態(tài)esp作為初始的NETl。
步驟S203 :在所述NETl中,為每個所述原始Ngram模型中的I元組Unigram創(chuàng)建相應(yīng)的Unigram狀態(tài);從所述esp狀態(tài)到所述Unigram狀態(tài)添加前向弧,弧上的輸入為所述原始Ngram模型中的I元組Unigram對應(yīng)的字符串,權(quán)重為所述原始Ngram模型中的I元組Unigram對應(yīng)的概率的對數(shù)值;從每個所述原始Ngram模型中的I元組Unigram狀態(tài)到所述esp狀態(tài)添加回退弧,弧上的輸入為空,權(quán)重為所述原始Ngram模型中的I元組Unigram對應(yīng)的回退概率的對數(shù)值; 步驟S204 :在所述NETl中為每個2元組及2元組以上的高元組k-gram創(chuàng)建相應(yīng)的k-gram狀態(tài);并在所述NETl中尋找所述高元組k-gram中的前k_l個詞構(gòu)成的k_l元組(k_l)-prefix-gram 對應(yīng)的(k_l)-pref ix-gram 狀態(tài),并添加從(k_l)-pref ix-gram 狀態(tài)到k-gram狀態(tài)的前向弧,弧的輸入為所述高元組k-gram對應(yīng)的詞組中的最后一個詞,權(quán)重為所述高元組k-gram的概率的對數(shù)值;然后在所述NETl中尋找所述高元組k-gram對應(yīng)的后k_l個詞構(gòu)成的k_l元組(k_l)-subfix-gram對應(yīng)的(k_l)-subfix-gram狀態(tài),添加從k-gram狀態(tài)到(k_l)-subf ix-gram狀態(tài)的回退弧,弧的輸入為空,權(quán)重為所述高元組k-gram的回退概率的對數(shù)值;其中k的取值范圍是2 < = k < = N的整數(shù),N是所述原始Ngram模型的階數(shù)。
4.如權(quán)利要求I所述的用于語音識別的Ngram模型改進(jìn)方法,其特征在于所述利用RNN優(yōu)化所述NET1,使得使用所述NETl對訓(xùn)練文本打分時,對于訓(xùn)練文本中每個語句的輸出概率最大化具體包括步驟S301,利用RNN得分優(yōu)化所述NETl中的所有??;具體為 采用RNN模型計(jì)算訓(xùn)練文本中每一語句SENTi的得分并記為SCORE_RNNi ;所述語句SENTi在所述NETl中的最佳路徑為路徑PATHi,則該路徑PATHi的總得分為SCORE_NGRAMi ;確定所述 SENTi 的最佳得分為=SCORE-BESTi = Hiax(SCC)RE-RNNi, SC0RE_NGRAMj ; 利用更新量更新該路徑經(jīng)過的每一條弧上的權(quán)重,其中每條弧的更新量根據(jù)公式(I)計(jì)算 其中,p G (0,I],LENGTHi是路徑PATHi經(jīng)過的弧的數(shù)目; 采用廣度優(yōu)先遍歷所述NETl中的每個狀態(tài),并將每個狀態(tài)上所有弧上的權(quán)重進(jìn)行規(guī)整,以保證每個狀態(tài)的所有輸出弧滿足概率條件; 重復(fù)執(zhí)行上述步驟,直到每條弧上更新后的權(quán)重值與原權(quán)重值的誤差小于預(yù)定閾值; 步驟S302,向所述NETl追加狀態(tài)和弧,增強(qiáng)NETl的表達(dá)能力,具體為首先從訓(xùn)練文本尋找需要增強(qiáng)表達(dá)能力的語句,然后對于每一個需要增強(qiáng)表達(dá)能力的語句,依次增強(qiáng)2元組、3元組及3元組以上元組的表達(dá)能力,直到不存在SC0RE_RNNi > SCORE.NGRAMj的句子,或者用于表示需要增強(qiáng)表達(dá)能力的句子的所有Ngram元組對應(yīng)的狀態(tài)都在所述NETl中。
5.如權(quán)利要求4所述的用于語音識別的Ngram模型改進(jìn)方法,其特征在于所述需要增強(qiáng)表達(dá)能力的語句為SC0RE_RNNi > SC0RE_NGRAMi的語句;其中增強(qiáng)k+1元組的表達(dá)能力的方式如下,I =< k < N 對于每個需要增強(qiáng)表達(dá)能力的語句,將所述原始Ngram模型中k元組k-gram與它的后接詞合并為k+1元組(k+1)-gram,如果所述NETl中不存在該k+1元組(k+1)-gram對應(yīng)的(k+1)-gram狀態(tài),則添加該(k+1)-gram狀態(tài)到所述NETl中;其中從所述k-gram狀態(tài)到所述(k+1)-gram狀態(tài)的弧上的輸入為所述后接詞,其權(quán)重值等于所述k+1元組(k+l)-gram的概率對數(shù)值與根據(jù)所述公式(I)計(jì)算得到的更新量之和,且所述(k+l)-gram狀態(tài)的回退弧上的權(quán)重值等于0 ;然后利用RNN得分優(yōu)化所述NETl中每條弧上的權(quán)重值。
6.如權(quán)利要求I所述的用于語音識別的Ngram模型改進(jìn)方法,其特征在于所述利用發(fā)音字典將所述NETl轉(zhuǎn)成帶有語言模型概率的WFST發(fā)音網(wǎng)絡(luò)NET2具體包括 保持所述NETl網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)不變,將每條弧上的輸入復(fù)制到輸出,形成WFST網(wǎng)絡(luò)NET_WORD ;將發(fā)音字典中每個詞Wi轉(zhuǎn)成FST網(wǎng)絡(luò)NET_LEXi,每個FST網(wǎng)絡(luò)的特點(diǎn)是從開始狀態(tài)走到結(jié)束狀態(tài)的每一條路徑上所有弧上的輸入正好等于該詞的一個發(fā)音,到達(dá)結(jié)束狀態(tài)的每條弧的輸出都是詞Wi ;如果NET_W0RD中的弧上有輸入單詞Wi,則將該弧替換成FST網(wǎng)絡(luò)NET_LEXi,最終形成所述發(fā)音網(wǎng)絡(luò)NET2。
7.如權(quán)利要求I所述的用于語音識別的Ngram模型改進(jìn)方法,其特征在于所述利用音子混淆矩陣優(yōu)化所述發(fā)音網(wǎng)絡(luò)NET2包括對于訓(xùn)練文本中每一句的標(biāo)準(zhǔn)音子串,按照音子混淆矩陣M中的概率在所述發(fā)音網(wǎng)絡(luò)NET2進(jìn)行狀態(tài)轉(zhuǎn)移,最終輸出K+1個最佳候選句子,其中完全等同于標(biāo)準(zhǔn)答案的句子為SENTtl,不同于標(biāo)準(zhǔn)答案的K個句子為SENT1. . SENTk,然后對所述發(fā)音網(wǎng)絡(luò)NET2進(jìn)行優(yōu)化使得標(biāo)準(zhǔn)答案句子的路徑得分大于錯誤句子的路徑得分。
8.如權(quán)利要求7所述的用于語音識別的Ngram模型改進(jìn)方法,其特征在于所述利用音子混淆矩陣優(yōu)化所述發(fā)音網(wǎng)絡(luò)NET2的具體步驟包括 步驟SOOl :從所述發(fā)音網(wǎng)絡(luò)NET2中找到<s>狀態(tài)作為當(dāng)前狀態(tài); 步驟S002 :依次輸入訓(xùn)練文本中每個句子的所有音子; 步驟S003 :對每個音子,以混淆矩陣M中的概率走向混淆音子表示的?。? 步驟S004 :每輸入一個音子,則采用集束搜索方法,以指定的Beam寬度對路徑進(jìn)行裁剪; 步驟S005 :當(dāng)輸入最后一個音子時,保留所有到達(dá)詞結(jié)尾的路徑,并記路徑中輸出結(jié)果與所述訓(xùn)練文本相同的句子為SENTtl,其他路徑記為SENT1. . SENTk ; 步驟S006 :對每個句子執(zhí)行如下操作 步驟S0061 :計(jì)算標(biāo)準(zhǔn)答案得分與錯誤答案得分之間的差距d d = g (SENT01M, NET2) -G (SENT1.. K | M, NET2) (2) 其中,g (SENTtl IM,NET2)表示在給定混淆矩陣M和發(fā)音網(wǎng)絡(luò)NET2的條件下,輸出標(biāo)準(zhǔn)語句SENTtl的概率;G(SENIY.k|M,NET2)表示在給定混淆矩陣M和發(fā)音網(wǎng)絡(luò)NET2的條件下,輸出錯誤句子SENT1. . SENTk的概率的某種變換函數(shù),具體為
9.如權(quán)利要求I所述的用于語音識別的Ngram模型改進(jìn)方法,其特征在于所述將所述發(fā)音網(wǎng)絡(luò)NET2反向轉(zhuǎn)換成改進(jìn)后的Ngram模型具體包括將WFST發(fā)音網(wǎng)絡(luò)NET2轉(zhuǎn)成WFSA詞語網(wǎng)絡(luò)NET3,使得所述詞語網(wǎng)絡(luò)NET3中的每個狀態(tài)對應(yīng)所述改進(jìn)Ngram模型中的一個元組,所述詞語網(wǎng)絡(luò)NET3中狀態(tài)A到B的轉(zhuǎn)移概率等于所述發(fā)音網(wǎng)絡(luò)NET2中狀態(tài)A到狀態(tài)B的所有路徑概率之和,從狀態(tài)A到狀態(tài)B的弧上的輸入正好等于所述發(fā)音網(wǎng)絡(luò)NET2中從狀態(tài)A到狀態(tài)B的路徑上的輸出且只輸出一個詞; 在NET3中遍歷對應(yīng) 于I元組Unigram的Unigram狀態(tài),使得改進(jìn)后的Ngram模型中I元組Unigram的概率的對數(shù)值為esp狀態(tài)到Unigram狀態(tài)的弧上的權(quán)重值,回退概率為Unigram狀態(tài)到esp狀態(tài)的弧上的權(quán)重; 在NET3中遍歷對應(yīng)于2元組及2元組以上的k元組k-gram的所有k-gram狀態(tài),使得改進(jìn)后的Ngram模型中2元組及2元組以上的k元組k-gram的概率的對數(shù)值為所述k元組k-gram 對應(yīng)的前 k_l 個詞構(gòu)成的 k_l 元組(k_l)-pref ix-gram 對應(yīng)的(k_l)-pref ix-gram狀態(tài)到k-gram狀態(tài)的弧上的權(quán)重,回退概率的對數(shù)值為k-gram狀態(tài)到所述k元組k-gram對應(yīng)的后k_l個詞構(gòu)成的k_l元組(k_l)-subfix-gram對應(yīng)的(k_l)-subfix-gram狀態(tài)的弧上的權(quán)重值。
10.如權(quán)利要求4所述的方法,其特征在于所述利用更新量更新路徑經(jīng)過的每一條弧上的權(quán)重具體為每一條弧上的權(quán)重加上所述更新量;所述保證每個狀態(tài)的所有弧滿足概率條件具體為所述所有弧上的概率和為I ;所述誤差為更新后所有弧上的權(quán)重與更新前所有弧上的權(quán)重之平均誤差。
全文摘要
本發(fā)明公開了一種用于語音識別的Ngram模型改進(jìn)方法,其包括將用于語音識別的原始Ngram模型轉(zhuǎn)成等價的WFSA網(wǎng)絡(luò)NET1;利用RNN優(yōu)化所述NET1,使得使用所述NET1對訓(xùn)練文本打分時,對于訓(xùn)練文本中每個語句的輸出概率最大化;利用發(fā)音字典將所述NET1轉(zhuǎn)成帶有語言模型概率的WFST發(fā)音網(wǎng)絡(luò)NET2;利用音子混淆矩陣優(yōu)化所述發(fā)音網(wǎng)絡(luò)NET2,使得句子錯誤率最小化;將所述發(fā)音網(wǎng)絡(luò)NET2反向轉(zhuǎn)換成改進(jìn)后的Ngram模型,使用該改進(jìn)后的Ngram模型進(jìn)行語音識別。
文檔編號G10L15/16GK102968989SQ20121052809
公開日2013年3月13日 申請日期2012年12月10日 優(yōu)先權(quán)日2012年12月10日
發(fā)明者柯登峰, 徐波 申請人:中國科學(xué)院自動化研究所