專利名稱:有選擇地把一罰值賦予語(yǔ)音識(shí)別系統(tǒng)所伴隨概率的方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于語(yǔ)音識(shí)別系統(tǒng),更具體地說,是關(guān)于狀態(tài)分配算法中的系統(tǒng)賦予概率(system assigning probability)。
依賴于說話者的語(yǔ)音識(shí)別系統(tǒng)使用特征提取算法對(duì)輸入語(yǔ)音的一幀完成信號(hào)處理,并輸出代表每一幀的特征矢量。這一處理是以幀速率發(fā)生的。幀速率通常在10至30ms之間,這里將以20ms持續(xù)時(shí)間為例。已知有大量不同特征用于語(yǔ)音識(shí)別系統(tǒng)中。
一般而言,訓(xùn)練算法使用從一個(gè)詞或短語(yǔ)的一個(gè)或多個(gè)發(fā)音(utterance)的采樣語(yǔ)音中提出的特征,來產(chǎn)生那個(gè)詞或短語(yǔ)的模型。然后這個(gè)模型被存儲(chǔ)在一個(gè)模型存儲(chǔ)存儲(chǔ)器中。然后在語(yǔ)音識(shí)別過程中應(yīng)用這些模型。語(yǔ)音識(shí)別系統(tǒng)把未知發(fā)音的特征與被存儲(chǔ)的模型參數(shù)作比較,以確定最好匹配。然后這最好匹配模型從識(shí)別系統(tǒng)輸出,作為結(jié)果。
已知使用基于識(shí)別系統(tǒng)的隱式馬爾科夫模型(HMM)達(dá)到這一目的。HMM識(shí)別系統(tǒng)把發(fā)音的幀分配成HMM的狀態(tài)。產(chǎn)生最大概率或得分的幀到狀態(tài)(frame-to-state)分配被選作最好匹配。
HMM的一個(gè)問題是它們假定一狀態(tài)的持續(xù)時(shí)間有指數(shù)分布。這對(duì)于馬爾科夫過程假設(shè)而言是重要的,它假定幀F(xiàn)t的狀態(tài)轉(zhuǎn)移只依賴于系統(tǒng)在幀F(xiàn)t-1的狀態(tài)。這一模型對(duì)語(yǔ)音的擬合不特別好。由于這一原因,一些現(xiàn)代認(rèn)別系統(tǒng)打破了馬爾科夫假設(shè),并賦予一個(gè)與狀態(tài)持續(xù)時(shí)間相關(guān)的狀態(tài)轉(zhuǎn)移罰值(penalty)。
具體地說,已知簡(jiǎn)單地把狀態(tài)持續(xù)時(shí)間限定于最大值和最小值之間,這最大值和最小值是在訓(xùn)練過程中估計(jì)出來的。這樣,一個(gè)硬的有界極限置于狀態(tài)持續(xù)時(shí)間上,這樣在允許狀態(tài)轉(zhuǎn)移之前分配給該狀態(tài)最少數(shù)量幀,而一旦滿足了最大狀態(tài)保持時(shí)間,則不再允許額外的自循環(huán)。把狀態(tài)持續(xù)時(shí)間信息用于確定轉(zhuǎn)移概率,打破了馬爾科夫過程假設(shè),但通常產(chǎn)生更好的識(shí)別結(jié)果。
含有大量訓(xùn)練數(shù)據(jù)的更復(fù)雜系統(tǒng)能精確地把狀態(tài)轉(zhuǎn)移概率作為狀態(tài)持續(xù)時(shí)間的函數(shù)來建立模型。然而,對(duì)于少到只用二個(gè)發(fā)音來訓(xùn)練HMM的應(yīng)用,則難于精確估計(jì)狀態(tài)轉(zhuǎn)移罰值的概率分布,因?yàn)橛?xùn)練數(shù)據(jù)量太少了。因此,這罰值可能產(chǎn)生錯(cuò)誤的結(jié)果。
其結(jié)果是需要一種改進(jìn)的系統(tǒng),它使用狀態(tài)持續(xù)時(shí)間信息在具有最少訓(xùn)練信息的系統(tǒng)中產(chǎn)生轉(zhuǎn)移罰值。
圖1是以方框圖形式說明一無(wú)線電話的電路圖。
圖2是以方框圖形式說明根據(jù)圖1的裝置中的語(yǔ)音識(shí)別系統(tǒng)。
圖3說明一個(gè)左-右隱式馬爾科夫模型,它帶有兩個(gè)被分成幀的相關(guān)語(yǔ)言發(fā)音。
圖4說明逆向追蹤網(wǎng)格,它伴有左-右模型中的所有可能的狀態(tài)轉(zhuǎn)移路徑,但不允許跳躍轉(zhuǎn)移。
圖5說明與圖4對(duì)應(yīng)的由左到右、無(wú)跳躍的HMM。
圖6是說明訓(xùn)練算法的高層流程圖。
圖7是說明設(shè)置上、下持續(xù)時(shí)間閾值的流程圖。
圖8說明加到一個(gè)模型的一個(gè)狀態(tài)上的罰值。
圖9是說明語(yǔ)音識(shí)別系統(tǒng)中的流程圖。
圖10是說明在語(yǔ)音識(shí)別系統(tǒng)中把一罰值設(shè)置到一個(gè)得分上的流程圖。
這一有效方法把一轉(zhuǎn)移罰值賦予一個(gè)脫離狀態(tài)的轉(zhuǎn)移得分,如果賦予該狀態(tài)的幀數(shù)下限尚未達(dá)到的話。如果賦予一狀態(tài)的幀數(shù)上限已被超過,則加上一個(gè)自循環(huán)罰值。對(duì)于已經(jīng)達(dá)到下限之后的脫離狀態(tài)轉(zhuǎn)移不賦予罰值,對(duì)于超過上限之前的同狀態(tài)轉(zhuǎn)移也不賦予罰值。以只有小量的增加存儲(chǔ)器大小和每秒執(zhí)行數(shù)百萬(wàn)次指令(MIPS)的要求,便改善了語(yǔ)音識(shí)別系統(tǒng)的性能。自循環(huán)罰值能有效地應(yīng)用于具有有限訓(xùn)練數(shù)據(jù)的系統(tǒng),如只有兩個(gè)訓(xùn)練發(fā)音的系統(tǒng),借助這些訓(xùn)練發(fā)音來產(chǎn)生罰值。
圖1中公開的裝置100中能有利地利用本發(fā)明。為了說明的目的,這里把裝置100描述為一個(gè)便攜式無(wú)線電話,但它可以是一個(gè)計(jì)算機(jī)、一個(gè)個(gè)人數(shù)字助理、或任何其他能有利地利用語(yǔ)音識(shí)別的裝置,特別是能利用高效存儲(chǔ)語(yǔ)音識(shí)別系統(tǒng)優(yōu)點(diǎn)的裝置。圖示的無(wú)線電話包括發(fā)射機(jī)102和接收機(jī)104,它們連于天線106。發(fā)射機(jī)102和接收機(jī)104連于一個(gè)呼叫處理器108。,它完成呼叫處理功能??梢杂脭?shù)字信號(hào)處理器(DSP)、微處理器、微控制器、可編程邏輯單元、上述兩種或多種的組合、或任何其他適當(dāng)?shù)臄?shù)字電路,來實(shí)現(xiàn)呼叫處理器108。
呼叫處理器108與存儲(chǔ)器110相連。存儲(chǔ)器110包含RAM、電可擦可編程只讀存儲(chǔ)器(EEPROM)、只讀存儲(chǔ)器(ROM)、閃爍ROM或類似存儲(chǔ)器,或者這些存儲(chǔ)器類型的兩種或多種的組合。存儲(chǔ)器110支持呼叫處理器108的操作,包括語(yǔ)音識(shí)別操作,而且必須包括一個(gè)電子可變存儲(chǔ)器以支持狀態(tài)轉(zhuǎn)移路徑存儲(chǔ)器,下文中將對(duì)此作更詳細(xì)描述??商峁㏑OM用于存儲(chǔ)該裝置的操作程序。
音頻電路112向呼叫處理器108提供來自送話器114的數(shù)字化信號(hào)。音頻電路112驅(qū)動(dòng)揚(yáng)聲器116響應(yīng)來自呼叫處理器108的數(shù)字信號(hào)。
呼叫處理器108與一顯示處理器120相連。顯示處理器是可選的,如果希望對(duì)裝置100有附加的處理器支持的話。具體地說,顯示處理器120向顯示器126提供顯示控制信號(hào)和接收來自各鍵124的輸入。顯示處理器120能由微處理器、微控制器、數(shù)字信號(hào)處理器、可編程邏輯單元、它們的組合或類似裝置來實(shí)現(xiàn)。存儲(chǔ)器122與顯示處理器相連以支持其中的數(shù)字邏輯。存儲(chǔ)器122能用RAM、EEPROM、ROM、閃爍ROM、或其類似物、或兩種或多種這些類型存儲(chǔ)器的組合來實(shí)現(xiàn)。
參考圖2,由送話器114接收的音頻信號(hào)在音頻電路112的模-數(shù)轉(zhuǎn)換器202中被轉(zhuǎn)換成數(shù)字信號(hào)。本領(lǐng)域技術(shù)人員將會(huì)理解,音頻電路112提供額外的信號(hào)處理,如濾波,為了簡(jiǎn)練,這里將不予描述。呼叫處理器108在送話器114輸出模擬信號(hào)的被處理的數(shù)字信號(hào)表示上完成特征提取204,并產(chǎn)生一組代表使用者發(fā)音的特征矢量。對(duì)每個(gè)短時(shí)分析窗產(chǎn)生一個(gè)特征矢量。短時(shí)分析窗是一幀,在這里所舉的實(shí)施例中是20ms。這樣,每幀有一個(gè)特征矢量。處理器108把這些特征用于語(yǔ)音識(shí)別206或訓(xùn)練207。
在訓(xùn)練過程中,發(fā)音的特征矢量被用于建立HMM形式的樣板,它們存儲(chǔ)在存儲(chǔ)器208中。在語(yǔ)音識(shí)別過程中,代表輸入發(fā)音的特征矢量與在存儲(chǔ)器208中存儲(chǔ)的詞匯詞(vocabulary word)樣板作比較,以確定使用者說了什么。系統(tǒng)可以輸出一個(gè)最好匹配、一組最好匹配、或可選地?zé)o匹配輸出。存儲(chǔ)器208最好是存儲(chǔ)器110(圖1)的非易失存儲(chǔ)器部分,例如可以是EEPROM或閃爍ROM。如這里所用的那樣,“詞”可以是不只一個(gè)詞,例如“John Doe”,或者單個(gè)詞,如“call(呼叫)”。
如前文概述的那樣,存儲(chǔ)器208中存儲(chǔ)的詞匯詞是在訓(xùn)練方式下創(chuàng)建的。例如,所存儲(chǔ)的詞匯詞在初始時(shí)每個(gè)是從兩個(gè)訓(xùn)練信號(hào),即發(fā)音U1和U2(圖3)中提取出來的,由各自的特征矢量組成,發(fā)音U1代表在訓(xùn)練過程中說話者第一次說出一個(gè)特定詞時(shí)所存儲(chǔ)的信號(hào)。發(fā)音U2代表在訓(xùn)練過程中說話者第二次說出一個(gè)特定詞時(shí)的信號(hào)。在所舉出的實(shí)例中,發(fā)音U1的長(zhǎng)度不同于發(fā)音U2。本領(lǐng)域技術(shù)人員將會(huì)理解,可以使用多些或少些發(fā)音。
每個(gè)發(fā)音被分段成特征矢量幀。例如,幀可以是20ms長(zhǎng)??梢砸匀魏蝹鹘y(tǒng)方式產(chǎn)生特征矢量。例如,特征矢量可以包含由A/D轉(zhuǎn)換器202(圖2)的輸出產(chǎn)生的倒譜(cepstral)和δ-倒譜(delta-cepstral)特征。
在這里所用的例子中,如圖3-5所示,HMM有5個(gè)狀態(tài),它們的使用與發(fā)音的長(zhǎng)度如何無(wú)關(guān)。本領(lǐng)域技術(shù)人員將會(huì)理解,可以使用任何數(shù)量的狀態(tài),而且可以預(yù)期對(duì)每個(gè)發(fā)音將利用10個(gè)以上狀態(tài)。此外,狀態(tài)數(shù)可以被固定而不管發(fā)音的長(zhǎng)度如何,或者狀態(tài)數(shù)可依賴于發(fā)音的長(zhǎng)度。下文中的討論將針對(duì)的系統(tǒng)是對(duì)任何發(fā)音都有5個(gè)狀態(tài)而不管發(fā)音的長(zhǎng)度如何。
如前面提到的那樣,訓(xùn)練的目的是產(chǎn)生發(fā)音的HMM。這示于圖6。它在步驟602開始,在那里作出對(duì)模型參數(shù)的初始估計(jì)。例如,參考圖3,初始時(shí)由發(fā)音U1和幀F(xiàn)11和F12以及發(fā)音U2的幀F(xiàn)21和F22構(gòu)成狀態(tài)1(S1)。這些幀值用于初始時(shí)計(jì)算構(gòu)成狀態(tài)1統(tǒng)計(jì)表示的某些或全部參數(shù)。在最佳實(shí)施例中,統(tǒng)計(jì)表示是來自發(fā)音U1和發(fā)音U2的幀的均值。這樣,狀態(tài)1初始時(shí)被設(shè)為發(fā)音U1的幀F(xiàn)11和F12及發(fā)音U2的幀F(xiàn)21和F22的均值。本領(lǐng)域技術(shù)人員將會(huì)理解,在狀態(tài)中也可包括一個(gè)方差。也生成其他狀態(tài)的統(tǒng)計(jì)表示。第二狀態(tài)S2是發(fā)音U1的幀F(xiàn)13和F14及發(fā)音U2的幀F(xiàn)23和F24之間的均值。類似地,狀態(tài)S3是發(fā)音U1的幀F(xiàn)15和F16及發(fā)音U2的幀F(xiàn)25和F26之間的均值。狀態(tài)S4是發(fā)音U1的幀F(xiàn)17和F18及發(fā)音U2的幀F(xiàn)27、F28和F29的均值。上文中提供的幀分配是作為一個(gè)例子說明初始時(shí)可以怎樣把幀分配給狀態(tài)以及怎樣能構(gòu)成狀態(tài)的統(tǒng)計(jì)表示。然而,本領(lǐng)域技術(shù)人員將會(huì)理解,對(duì)于初始狀態(tài)分配和狀態(tài)的統(tǒng)計(jì)表示存在大量的其他方法,所以本發(fā)明不想限制于上述環(huán)境。
在步驟604,對(duì)每個(gè)發(fā)音使用對(duì)位算法(如Viterbi算法)把一發(fā)音(例如U1)的各幀賦予模型的各狀態(tài)。在步驟606,根據(jù)在步驟604中完成的對(duì)位,對(duì)模型進(jìn)行重新估計(jì)。在步驟608,處理器通過觀察模型參數(shù)的變化確定模型是否已收斂。當(dāng)把樣本發(fā)音對(duì)位于狀態(tài)模型時(shí)所產(chǎn)生的狀態(tài)模型變化小于一預(yù)先確定量時(shí),便發(fā)生收斂。如果在步驟608示檢測(cè)到收斂,則在步驟604再次進(jìn)行對(duì)位算法。
本領(lǐng)域技術(shù)人員將會(huì)理解,已知大量不同算法可用于對(duì)位和估計(jì)模型參數(shù)以及檢測(cè)收斂,其中任何適當(dāng)?shù)囊粋€(gè)都可以用于本發(fā)明,這里對(duì)它們不作更詳細(xì)的描述。
一旦達(dá)到收斂,必須對(duì)每個(gè)狀態(tài)計(jì)算出狀態(tài)持續(xù)時(shí)間低限和高限閾值Dminj和Dmaxi,如步驟610所示。
圖7更詳細(xì)地說明在步驟610(圖6)中涉及的持續(xù)時(shí)間閾值計(jì)算。在已創(chuàng)建模型并將其存儲(chǔ)到存儲(chǔ)器208之后,處理器108對(duì)模型的每個(gè)狀態(tài)計(jì)算持續(xù)時(shí)間高限閾值,如步驟702中所示。如步驟704中所示,對(duì)每個(gè)狀態(tài)計(jì)算出的持續(xù)時(shí)間高限閾值被存儲(chǔ)起來。在步驟706中對(duì)每個(gè)狀態(tài)計(jì)算持續(xù)時(shí)間低限閾值。然后,如步驟708中所示,對(duì)每個(gè)狀態(tài)計(jì)算出的持續(xù)時(shí)間低限閾值被存儲(chǔ)起來。這些低限和高限閾值與HMM參數(shù)一起存儲(chǔ)在存儲(chǔ)器110中,它們能用于下文中更詳細(xì)描述的語(yǔ)音識(shí)別過程中。
具體地說,利用在步驟604中已賦給每個(gè)狀態(tài)的最小和最大幀數(shù),由HMM模型信息計(jì)算出高限和低限持續(xù)時(shí)間閾值,然后按下式用參數(shù)Dmintweak和Dmaxtweak作稍許調(diào)整Dmini=(1-Dmintweak)×min(D1,i,D2,i);Dmaxi=(1+Dmaxtweak)×max(D1,i,D2,i)。
這里D1i是賦予來自發(fā)音1的狀態(tài)i的幀數(shù),D2i是賦予來自發(fā)音2的狀態(tài)i的幀數(shù)。本領(lǐng)域技術(shù)人員將會(huì)理解,能使用多于兩個(gè)的發(fā)音。
調(diào)整總是正的,從而使它有一種傾向,即讓最小值比實(shí)際模型中觀察到的值略小些,而讓最大值比實(shí)際模型中觀察到的值略大些。例如Dmintweak和Dmaxtweak可以是0.1。本領(lǐng)域技術(shù)人員將會(huì)理解,實(shí)際值可以改變而不偏離本發(fā)明。在題為“語(yǔ)言識(shí)別系統(tǒng)中的逆向追蹤矩陣存儲(chǔ)方法“的待決專利申請(qǐng)(報(bào)告號(hào)CS10103,與本申請(qǐng)同時(shí)期以Jeffrey Arthur Meunier等的名字被受理)中提出了提取狀態(tài)持續(xù)時(shí)間(上文中提到的值D1,i,D2,i)的一種特別有效的方法,該專利申請(qǐng)公開的內(nèi)容在這里被引入作為參考。
圖5說明左到右無(wú)跳躍HMM。在識(shí)別過程中,呼叫處理器108利用一種對(duì)位算法,例如Viterbi算法,去把要識(shí)別的發(fā)音與訓(xùn)練過程中創(chuàng)建的每個(gè)HMM的狀態(tài)進(jìn)行對(duì)位。具體地說,運(yùn)行對(duì)位算法是要根據(jù)所考慮的每個(gè)路徑的得分確定從任何一點(diǎn)返回的最好路徑,如將針對(duì)圖4總體描述的那樣。如這里所用的那樣,點(diǎn)是網(wǎng)格400中的一個(gè)幀和狀態(tài)的位置。路徑穿過這些點(diǎn)延伸。
本領(lǐng)域技術(shù)人員將會(huì)理解,網(wǎng)格400(圖4)顯示對(duì)于8個(gè)幀從狀態(tài)1到狀態(tài)5的所有返回路徑。一個(gè)附加限制是各幀必須分配給與前一幀相同的狀態(tài)或者緊跟前一幀的狀態(tài)之后的那個(gè)狀態(tài)(不能有任何狀態(tài)被跳過)。這與語(yǔ)音識(shí)別系統(tǒng)中幀到狀態(tài)的分配相一致,而且顯著地減少了為記錄數(shù)據(jù)路徑所需的逆向追蹤信息量。對(duì)模型內(nèi)從狀態(tài)到狀態(tài)的可能路徑所作的這種限制有助于更好地模擬語(yǔ)言發(fā)音中聲音事件的順序、有序特征。通常,HMM狀態(tài)轉(zhuǎn)移在性質(zhì)上被限制于從左到右,如圖4所示,這里到一特定狀態(tài)n的可允許路徑或者來自該狀態(tài)(從Sn到Sn的“自循環(huán)”)或者來自先前的狀態(tài)(從S(n-1)到Sn的“單步轉(zhuǎn)移”)。已經(jīng)證明,這種HMM體系結(jié)構(gòu)對(duì)于許多語(yǔ)音識(shí)別任務(wù)都是有效的。
作為舉例,用于幀5(圖4中水平軸上的5號(hào))的Viterbi算法確定從幀5中每個(gè)狀態(tài)(狀態(tài)1(S1)、狀態(tài)2(S2)、狀態(tài)3(S3)、狀態(tài)4(S4)和狀態(tài)5(S5))返回的最好路徑(即產(chǎn)生最好得分的從每個(gè)狀態(tài)的返回路徑)。具體地說,該算法考慮從點(diǎn)A的返回路徑的得分或概率,它代表對(duì)全部頭5個(gè)幀該路徑位于狀態(tài)1的概率。這是必定的,因?yàn)闂l件是當(dāng)前幀必須與前一幀有同一狀態(tài)或者是高于前一幀狀態(tài)的一個(gè)狀態(tài)。
該算法對(duì)于點(diǎn)B產(chǎn)生一個(gè)從點(diǎn)B穿過點(diǎn)G的返回路徑相關(guān)的得分以及從點(diǎn)B穿過點(diǎn)H的返回路徑的得分。對(duì)于點(diǎn)C,Viterbi算法產(chǎn)生伴隨從點(diǎn)C穿過點(diǎn)H的路徑得分及伴隨從點(diǎn)C穿過點(diǎn)I的路徑得分。對(duì)于點(diǎn)D,Viterbi算法考慮伴隨從點(diǎn)D穿過點(diǎn)I的返回路徑得分及伴隨從點(diǎn)D穿過點(diǎn)J的返回路徑得分。對(duì)于點(diǎn)E,Viterbi算法產(chǎn)生伴隨從點(diǎn)E穿過點(diǎn)J的返回路徑得分及伴隨從點(diǎn)E穿過點(diǎn)K的返回路徑得分。在計(jì)算這些得分之后,對(duì)每個(gè)狀態(tài)產(chǎn)生最高得分的路徑轉(zhuǎn)移類型被保留下來,作為到達(dá)這5幀中每個(gè)狀態(tài)的路徑。
圖9進(jìn)一步說明在發(fā)音的特征矢量和訓(xùn)練期間產(chǎn)生的存儲(chǔ)模型狀態(tài)之間進(jìn)行識(shí)別的過程中所發(fā)生的對(duì)位算法。圖9中所示對(duì)位算法是對(duì)所存儲(chǔ)詞匯中的每個(gè)詞或者該模型進(jìn)行的,并輸出最好輸出得分作為被匹配的詞。第1幀被自動(dòng)地賦予狀態(tài)1,所以在步驟900把它的狀態(tài)持續(xù)時(shí)間計(jì)數(shù)器初始化為1,并且把幀計(jì)數(shù)器設(shè)成使t=2,如步驟902中所示。然后處理器108把狀態(tài)計(jì)數(shù)器設(shè)為i=1,如步驟904中所示。在步驟906中處理器計(jì)算在幀t到狀態(tài)i的最好路徑,對(duì)此將在圖10的描述中更詳細(xì)地描述。
如步驟908中所示,對(duì)幀t的該狀態(tài)的得分被存儲(chǔ)起來。在步驟920,轉(zhuǎn)移類型被檢驗(yàn),看自循環(huán)是否是到狀態(tài)i的最好路徑。如果自循環(huán)是最好路徑,則在步驟924狀態(tài)持續(xù)時(shí)間計(jì)數(shù)器被增1。如果自循環(huán)不是最好路徑,則在步驟922狀態(tài)持續(xù)時(shí)間計(jì)數(shù)器被復(fù)位為1。
在步驟910,處理器108確定是否達(dá)到了最后狀態(tài)。如果不是,則如步驟916中所示,狀態(tài)計(jì)數(shù)器i被增1,而且處理器返回到步驟906。否則,在步驟912處理器確定最后幀是否被處理,如步驟912中所示。如果未被處理,則在步驟918幀計(jì)數(shù)器被增1而且處理器返回到步驟904。如果如步驟912所示,這最后幀被處理了,則在框914輸出模型最后狀態(tài)的得分,然后與詞匯中所有其他模型的得分作比較。所有模型中的最高得分將被選為該發(fā)音對(duì)模型之一的最好匹配。
對(duì)每個(gè)狀態(tài),將產(chǎn)生對(duì)轉(zhuǎn)移和自循環(huán)二者的狀態(tài)轉(zhuǎn)移概率。當(dāng)進(jìn)行對(duì)位算法時(shí),將使用對(duì)每個(gè)模型的各狀態(tài)所存儲(chǔ)的高、低持續(xù)時(shí)間限。
現(xiàn)在將參考圖10描述如何使用罰值來計(jì)算狀態(tài)轉(zhuǎn)移得分。初始時(shí),如框1010中所示,產(chǎn)生從狀態(tài)i-1出發(fā)的狀態(tài)轉(zhuǎn)移概率。如決策框1012中所指出的,處理器108在步驟1012確定前一狀態(tài)的狀態(tài)保持時(shí)間是否已超過了極小(min)閾值。如果它小于這個(gè)低限閾值,則處理器計(jì)算一個(gè)比例罰值,如步驟1014所示。這個(gè)罰值被加到得分上以產(chǎn)生一個(gè)調(diào)整后的得分。如果已確定狀態(tài)持續(xù)時(shí)間大于最小閾值,則對(duì)得分的調(diào)整是加0。由步驟1013或1016得到的調(diào)整后得分被存儲(chǔ)起來,如步驟1017中所示。
如框1018所示,將計(jì)算自循環(huán)得分。在步驟1020處理器確定狀態(tài)保持時(shí)間是否已超過高限閾值。如果狀態(tài)持持續(xù)時(shí)間大于高限閾值,則如步驟1024中所示,處理器110計(jì)算一個(gè)比例罰值。該罰值被加到得分上以產(chǎn)生一個(gè)調(diào)整后的得分,如步驟1026中所示。如果在步驟1020中確定狀態(tài)持續(xù)時(shí)間小于高限閾值,則如步驟1022中所示,被調(diào)整的得分不變。由步驟1022或步驟1026得到的調(diào)整后得分被存儲(chǔ)起來,如步驟1027中所示。
然后,如步驟1028中所示,處理器108根據(jù)哪種轉(zhuǎn)移類型有較高的調(diào)整后得分來選擇自循環(huán)或轉(zhuǎn)移二者之一。如果一步轉(zhuǎn)移有最高調(diào)整后得分,則在步驟1030中把一步轉(zhuǎn)移類型存儲(chǔ)起來。如果自循環(huán)有較高調(diào)整后得分,則在步驟1030把自循環(huán)轉(zhuǎn)移類型存儲(chǔ)起來。本領(lǐng)域技術(shù)人員將會(huì)理解,如果允許狀態(tài)跳躍的話,脫離狀態(tài)轉(zhuǎn)移罰值將被加到狀態(tài)跳躍得分上,如同它加到一步得分上的情況那樣。這樣,所舉示例能被容易地?cái)U(kuò)展到狀態(tài)跳躍HMM的情況。
本領(lǐng)域技術(shù)人員將會(huì)理解,將對(duì)每幀和狀態(tài)調(diào)用圖10中所示例行程序,以便有選擇地把罰值應(yīng)用于每個(gè)幀的每個(gè)狀態(tài)。
在識(shí)別過程中,所賦予的罰值的大小與持續(xù)時(shí)間短于低限閾值的量或已超過高限閾值的量成比例。罰值Poi(di)是要分配給脫離狀態(tài)(out-of-state)的轉(zhuǎn)移,而罰值Psi(di)要分配給自循環(huán),這里di是HMM狀態(tài)i的當(dāng)前持續(xù)時(shí)間。調(diào)用狀態(tài)i的最小持續(xù)時(shí)間Dmini和最大持續(xù)時(shí)間Dmaxi,則賦予脫離狀態(tài)的轉(zhuǎn)移的罰值Poi(di)是Poi(di)=0,當(dāng)di大于或等于Dmini;Poi(di)=P°(Dmini-di),當(dāng)di小于Dmini這里P°是脫離狀態(tài)轉(zhuǎn)移罰值因子。類似地,同一狀態(tài)轉(zhuǎn)移罰值Psi(di)被賦值為Psi(di)=0,當(dāng)di小于或等于Dmaxi;Psi(di)=Ps(di-Dmaxi),當(dāng)di大于Dmaxi,這里Ps是同一狀態(tài)轉(zhuǎn)移罰值因子。圖8中給出這些罰值的圖示。
罰值因子數(shù)值的選擇是要使罰值與產(chǎn)生路徑得分的方程式中的其它值成比例。例如,這些值可在-1和-10之間,而且它們可以相同或不同。
概述地說,在第1幀之后每個(gè)狀態(tài)的概率是通過比較從前一狀態(tài)轉(zhuǎn)移到那個(gè)狀態(tài)的狀態(tài)轉(zhuǎn)移概率與自轉(zhuǎn)移(自循環(huán))概率來確定的。從前一狀態(tài)轉(zhuǎn)移的概率取值為前一狀態(tài)的累積對(duì)數(shù)概率與一脫離狀態(tài)轉(zhuǎn)移概率之和,即Ci-1(m)+Poi-1(di-1)同狀態(tài)轉(zhuǎn)移概率被確定為當(dāng)前狀態(tài)的累積概率與一自轉(zhuǎn)移概率之和,即Ci(m)+Psi(di)使用加法代替乘法是因?yàn)槿≈凳菍?duì)數(shù)概率。這兩個(gè)概率的較高者被選為勝者。然后把這一概率加到觀測(cè)概率oi(fm)上,這里fm是有m個(gè)特征的矢量,這個(gè)概率被存儲(chǔ)起來,作為Ci(m+1)。
這樣,可以看到,這里公開了一種改進(jìn)的算法,用于把幀矢量匹配于狀態(tài)。對(duì)每個(gè)HMM的每個(gè)狀態(tài),把較低和較高狀態(tài)持續(xù)時(shí)間閾值存儲(chǔ)在存儲(chǔ)器208中。這樣,存儲(chǔ)在存儲(chǔ)器中的每個(gè)模型有對(duì)每個(gè)狀態(tài)各自的較高和較低閾值。然而,這表明在存儲(chǔ)器需求方面只有最少量的增加卻給出識(shí)別性能的相當(dāng)大改善。
使用這一方法不僅允許較低的MIPS和低存儲(chǔ)器需求,而且由于只需要最小和最大狀態(tài)持續(xù)時(shí)間,它們能從訓(xùn)練數(shù)據(jù)中容易地估計(jì)出來。賦予的罰值所具有的成比例特性允許該算法甚至能用于使用最少數(shù)量訓(xùn)練發(fā)音得到的模型。
罰值與到較高和較低轉(zhuǎn)移閾值的距離成線性比例。然而,其他函數(shù)關(guān)系也能被使用,而且申請(qǐng)者們已經(jīng)成功地實(shí)現(xiàn)了其他函數(shù),如距離的平方。沒有發(fā)現(xiàn)這些更復(fù)雜的函數(shù)比這里所示的優(yōu)選線性函數(shù)有更好的表現(xiàn)。
在大多數(shù)情況下,新的狀態(tài)持續(xù)時(shí)間方法與沒有狀態(tài)持續(xù)時(shí)間罰值的方法和使用HMM/BSD技術(shù)的方法二者相比,給出顯著改善的識(shí)別結(jié)果。對(duì)于使用少量訓(xùn)練發(fā)音(例如2個(gè))的識(shí)別系統(tǒng),具有帶邊界的、硬狀態(tài)持續(xù)時(shí)間的先有技術(shù)HMM技術(shù)不能工作得好。對(duì)于有極少訓(xùn)練數(shù)據(jù)的系統(tǒng),罰值算法似乎要更有效得多。
這樣,可以看到,這里公開了計(jì)算狀態(tài)轉(zhuǎn)移的一種改進(jìn)的方法。這一有效方法把一個(gè)轉(zhuǎn)移罰值賦予一個(gè)脫離狀態(tài)轉(zhuǎn)移得分,如果賦予那個(gè)狀態(tài)的幀數(shù)低限閾值尚未達(dá)到的話。如果賦予一個(gè)狀態(tài)的幀數(shù)最大閾值已被超過,則應(yīng)用一個(gè)自循環(huán)罰值。在低限閾值已被達(dá)到之后無(wú)罰值被賦予脫離狀態(tài)轉(zhuǎn)移,在最大閾值已被超過之前無(wú)罰值被賦予同一狀態(tài)轉(zhuǎn)移。以對(duì)存儲(chǔ)器大小和每秒百萬(wàn)指令數(shù)(MIPS)需求的適當(dāng)增加,便改善了語(yǔ)音識(shí)別系統(tǒng)的性能。這一改進(jìn)的系統(tǒng)能被有效地應(yīng)用于具有有限訓(xùn)練數(shù)據(jù)的系統(tǒng),例如只有兩個(gè)訓(xùn)練發(fā)音的系統(tǒng)。
盡管在上述描述和附圖中已描述和圖示了本發(fā)明,但應(yīng)該理解,這一描述只是一種舉例,本領(lǐng)域技術(shù)人員能做出大量的改變和修改而不離開本發(fā)明的精神和范圍。盡管本發(fā)明在便攜無(wú)線裝置(如蜂窩無(wú)線電話)中找到了具體應(yīng)用,但本發(fā)明能夠應(yīng)用于利用語(yǔ)音識(shí)別的任何裝置,包括尋呼機(jī)、電子組織器(electronic organizer)、計(jì)算機(jī)、以及電話裝備。本發(fā)明只應(yīng)受下述權(quán)利要求書的限制。
權(quán)利要求
1.一種無(wú)線通信裝置,包含送話器用于輸入使用者的發(fā)音;以及語(yǔ)音識(shí)別系統(tǒng),其語(yǔ)音識(shí)別電路通過把發(fā)音幀分配給狀態(tài)模型中的狀態(tài),產(chǎn)生被送話器檢測(cè)到的使用者發(fā)音的狀態(tài)模型,其中狀態(tài)模型把比例罰值賦予狀態(tài)賦值得分,這些罰值是對(duì)無(wú)線電話中存儲(chǔ)的每個(gè)模型獨(dú)立產(chǎn)生的。
2.如權(quán)利要求1中定義的無(wú)線通信裝置,還包含一種方法把一罰值賦予該語(yǔ)音識(shí)別系統(tǒng)中的一個(gè)得分,該方法包含下列步驟產(chǎn)生至少以下二者之一賦予至少一個(gè)模型的至少一個(gè)狀態(tài)的幀數(shù)較低閾值;賦予至少一個(gè)模型的至少一個(gè)狀態(tài)的幀數(shù)較高閾值;以及進(jìn)行至少以下二者之一的賦值把一脫離狀態(tài)轉(zhuǎn)移罰值賦予一分配賦值算法中的脫離狀態(tài)轉(zhuǎn)移,如果較低閾值尚未達(dá)到的話;其中脫離狀態(tài)轉(zhuǎn)移罰值與保持時(shí)間低于較低閾值的幀的個(gè)數(shù)成比例;以及把一自循環(huán)罰值賦予一自循環(huán)得分,如果賦予一狀態(tài)的幀數(shù)較高閾值被超過的話;其中脫離狀態(tài)轉(zhuǎn)移罰值與保持時(shí)間高于較高閾值的幀的個(gè)數(shù)成比例。
3.如權(quán)利要求2中定義的無(wú)線通信裝置,該方法還包括如果保持時(shí)間介于較低和較高閾值之間則不加罰值的步驟。
4.如權(quán)利要求2中定義的無(wú)線通信裝置,其中賦予一自循環(huán)閾值的步驟所賦予的罰值隨著保持時(shí)間在較高閾值之上保留的時(shí)間加長(zhǎng)而逐漸增大。
5.如權(quán)利要求2中定義的無(wú)線通信裝置,其中對(duì)存儲(chǔ)在語(yǔ)音識(shí)別系統(tǒng)存儲(chǔ)器中的每個(gè)模型的每個(gè)狀態(tài),產(chǎn)生較高和較低閾值。
6.如權(quán)利要求5中定義無(wú)線通信裝置,其中當(dāng)把幀對(duì)位算法應(yīng)用于每個(gè)模型的每個(gè)狀態(tài)時(shí),對(duì)每個(gè)模型的每個(gè)狀態(tài)應(yīng)用這些閾值。
7.如權(quán)利要求1中定義的無(wú)線通信裝置,進(jìn)一步包含一個(gè)在語(yǔ)音識(shí)別系統(tǒng)中把一罰值作為狀態(tài)持續(xù)時(shí)間信息的函數(shù)賦予一得分的方法,包含以下步驟對(duì)至少一個(gè)狀態(tài)的每個(gè)狀態(tài),確定出較高和較低狀態(tài)轉(zhuǎn)移閾值,每個(gè)較高和較低狀態(tài)轉(zhuǎn)移閾值是作為這至少一個(gè)狀態(tài)中的保持時(shí)間的函數(shù)而被導(dǎo)出的;對(duì)于有較低狀態(tài)轉(zhuǎn)移閾值的每個(gè)狀態(tài),如果該狀態(tài)的保持時(shí)間尚未達(dá)到較低狀態(tài)轉(zhuǎn)移閾值的話,則把一個(gè)成比例的脫離狀態(tài)罰值賦予一脫離狀態(tài)轉(zhuǎn)移;對(duì)于有較高狀態(tài)轉(zhuǎn)移閾值的每個(gè)狀態(tài),如果賦予該狀態(tài)的某一最大幀數(shù)已被超過的話,則賦予一個(gè)成比例的自循環(huán)罰值。
全文摘要
一語(yǔ)音識(shí)別系統(tǒng)(204、206、207、208)把一罰值賦予語(yǔ)音識(shí)別系統(tǒng)中的得分。該系統(tǒng)產(chǎn)生一個(gè)幀數(shù)較低閾值賦予至少一個(gè)模型的至少一個(gè)狀態(tài),它產(chǎn)生一個(gè)幀數(shù)較高閾值賦予至少一個(gè)模型的至少一個(gè)狀態(tài)。在一分配賦值算法中,該系統(tǒng)把一脫離狀態(tài)轉(zhuǎn)移罰值賦予一脫離狀態(tài)轉(zhuǎn)移得分,如果較低閾值尚未達(dá)到的話。該脫離狀態(tài)轉(zhuǎn)移罰值與其保持時(shí)間低于較低閾值的幀數(shù)成比例。如果賦予一狀態(tài)的幀數(shù)較高閾值已被超過的話,則把一自循環(huán)罰值加到一自循環(huán)得分上。脫離狀態(tài)轉(zhuǎn)移罰值與其保持時(shí)間超過較高閾值的幀數(shù)成比例。
文檔編號(hào)G10L15/00GK1264891SQ0010240
公開日2000年8月30日 申請(qǐng)日期2000年2月23日 優(yōu)先權(quán)日1999年2月23日
發(fā)明者丹尼爾·C·鮑伯特 申請(qǐng)人:摩托羅拉公司