專利名稱:聲控打字系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種集漢語(yǔ)全音節(jié)識(shí)別、合成、漢語(yǔ)聲音文字轉(zhuǎn)換及編輯、排版、打印的裝置。其中漢語(yǔ)全音節(jié)識(shí)別既可是認(rèn)人的系統(tǒng),也可實(shí)現(xiàn)不認(rèn)人的語(yǔ)音識(shí)別系統(tǒng)。
由于漢語(yǔ)是一種象形文字,它不能象拼音文種那樣由鍵盤按音素串行輸入,因此必需通過(guò)各種編碼方法把漢字轉(zhuǎn)換成串行碼,以便通過(guò)鍵盤向計(jì)算機(jī)輸入漢字,由于眾多的漢字編碼方法對(duì)大部分人來(lái)說(shuō)難學(xué)、難記、難操作,這樣就形成了計(jì)算機(jī)輸入的“瓶頸”問(wèn)題,最有效、最方便地解決這一問(wèn)題的方法就是通過(guò)聲控的辦法輸入漢字,但由于受到技術(shù)上的限制,我國(guó)大多數(shù)語(yǔ)音識(shí)別系統(tǒng)還局限于幾百詞和近兩千詞的范圍,且上千詞的識(shí)別系統(tǒng)不僅識(shí)別率低而且成本高,難以實(shí)用化,況且漢語(yǔ)詞匯有十幾萬(wàn)之眾。因此,在現(xiàn)有技術(shù)條件下難以實(shí)現(xiàn)聲控打字系統(tǒng)。另一方面,在現(xiàn)代漢語(yǔ)中使用的有近四百個(gè)音節(jié),如考慮四聲的差別,則有近一千二百多個(gè)單音節(jié),以單音節(jié)為來(lái)輸入漢字可以滿足任何文章的需要,這是解決漢字輸入的一種很好的方法。但漢語(yǔ)單音節(jié)十分難以識(shí)別,目前許多識(shí)別單音節(jié)的系統(tǒng)識(shí)別率較低。而且大多為非實(shí)時(shí)模擬結(jié)果,沒(méi)有實(shí)現(xiàn)聲控打字系統(tǒng)。
本發(fā)明的目的是要提供一種在微型計(jì)算機(jī)上或普通中文打字機(jī)上實(shí)現(xiàn)的低成本,高性能的聲控打字系統(tǒng)。它能識(shí)別并合成全部漢語(yǔ)單音節(jié),使得中文文字處理機(jī)(包括通用微機(jī)系統(tǒng)和電子打字機(jī))增加聲控輸入漢字和朗讀文字文稿的功能。
本發(fā)明的目的是這樣實(shí)現(xiàn)的1.方案概述在識(shí)別以前,要通過(guò)訓(xùn)練建立460個(gè)音節(jié)或1200個(gè)全音節(jié)的模板(例如可以建立基于DTW算法或HMM算法的模板)。這要求用戶將這些音節(jié)逐個(gè)念一遍。在識(shí)別時(shí),將輸入的語(yǔ)音與預(yù)存的各個(gè)模板進(jìn)行比較,按得分的高低選出優(yōu)勝者作為識(shí)別結(jié)果。但是在大詞匯表語(yǔ)音識(shí)別系統(tǒng)中,直接對(duì)所有模板進(jìn)行比較是不切實(shí)際的,例如在我們的系統(tǒng)中需要對(duì)1200全音節(jié)模板進(jìn)行比較,這不但使識(shí)別精度非常低,而且所需的計(jì)算量也是一般微型或小型機(jī)所不能容忍的。為了解決這個(gè)問(wèn)題,我們的識(shí)別系統(tǒng)采用了兩層識(shí)別的方案,如
圖1所示,其中第一層是音節(jié)粗識(shí)別,即對(duì)輸入音節(jié)的四聲、聲母和韻母分別進(jìn)行識(shí)別,并選出得分最高的6個(gè)聲母和6個(gè)韻母構(gòu)成36個(gè)候選音節(jié)(四聲識(shí)別只選出一個(gè)結(jié)果)。第二層是音節(jié)細(xì)識(shí)別,則只在36個(gè)候選音節(jié)中進(jìn)行選擇。由于漢語(yǔ)單音節(jié)具有明顯的輔音元音結(jié)構(gòu)(CV結(jié)構(gòu)),其中輔音和元音分別與聲母及韻母相對(duì)應(yīng),并且聲母只有22個(gè)、韻母只有38個(gè),所以采用聲、韻母及四聲的分別識(shí)別來(lái)實(shí)現(xiàn)音節(jié)的粗識(shí)別是一種高效的合理的解決方案。然而,一旦粗識(shí)別產(chǎn)生錯(cuò)誤,在下一層的識(shí)別中是無(wú)可挽回的,所以要求粗識(shí)別達(dá)到很高的精度。在本系統(tǒng)的聲母識(shí)別算法中將輔音分為清音和濁音首部音素兩大類并采用VQ算法進(jìn)行識(shí)別,在韻母識(shí)別中采用了多節(jié)VQ的算法。這些算法的運(yùn)算量很小,音節(jié)粗識(shí)別的正確率達(dá)到99.7%。第二級(jí)細(xì)識(shí)別采用基于音節(jié)的隱含馬可夫模型進(jìn)行識(shí)別。上述二級(jí)識(shí)別不僅可用于特定人識(shí)別系統(tǒng),而且可用于非特定人識(shí)別。
2.系統(tǒng)概貌普通話全音節(jié)識(shí)別系統(tǒng)的框圖如圖2所示,在特征提取部分,語(yǔ)音經(jīng)過(guò)一個(gè)帶寬為100HZ到4.2KHZ的模擬濾波器濾波后進(jìn)行A/D變換(采樣率為10KHZ,量化精度為12bit)。然后,對(duì)數(shù)字化的語(yǔ)音進(jìn)行分幀,幀長(zhǎng)為20ms(200個(gè)采樣點(diǎn)),幀移為10ms(100個(gè)采樣點(diǎn))。語(yǔ)音的特征是按幀提取的,本系統(tǒng)所用的特征包括總能量(幀)e(i),過(guò)零率z(i)規(guī)一化一階自關(guān)系數(shù)NR(i),加哈明窗后計(jì)算的12階自相關(guān)系數(shù)R(k)和LPC系數(shù)a(k),其中,k=0,1,……12,規(guī)一化殘差能量d(i)。i表示各語(yǔ)音幀的編號(hào),i按下述方法確定系統(tǒng)設(shè)置一個(gè)能量門限T,然后逐幀檢驗(yàn)總能量e(i),若e(i)>T,則認(rèn)為有語(yǔ)音進(jìn)入,這時(shí)向前推
幀,定該幀為i=0,即作為語(yǔ)音的起點(diǎn)幀,其目的是將一些低能量的音節(jié)起始部分全部包括進(jìn)來(lái)。在檢測(cè)到語(yǔ)音后,再設(shè)置一個(gè)門限T,若連續(xù)6幀滿足e(i)<T,則表示語(yǔ)音已結(jié)束,定最后一幀為i=CE,即結(jié)束幀。下面分別敘述系統(tǒng)中其它部分的工作原理。
3.無(wú)聲(S)/清音(U)/濁音(V)三類判決按照上面設(shè)置的能量門限截取的一個(gè)普通話的單音節(jié)總可以分為四段,即S(無(wú)聲)-U(清音)-V(濁音),如圖3所示,其中包括了無(wú)聲段落。為了真正確定一個(gè)音節(jié)的起終點(diǎn)MB和MS以及清濁音的分割點(diǎn)ME,必須進(jìn)行i=0,…CE之間各語(yǔ)音幀的S/U/V分類。
本系統(tǒng)所取的分類方案可參考文獻(xiàn)[1]。我們對(duì)每個(gè)語(yǔ)音幀(編號(hào)為i)建立一個(gè)5維的特征矢量X=[e(i),z(i),NR(i),d(i),a(l)],其中T表示轉(zhuǎn)置。若標(biāo)S為第一類,U為第二類,V為第三類,那末在這三類情況下X都是具有近似于正態(tài)分布的隨機(jī)矢量,我們可以通過(guò)很多人的訓(xùn)練語(yǔ)音求出它們的均值向量M=E[X],和方差陣D=E[(X-M)(X-M)],k=1,2,3。對(duì)于任何一幀輸入語(yǔ)音X,可以計(jì)算與上述三個(gè)類別的似然距離d(k),d(k)=(X-M)τD-1(X-M),k=1,2,3 式(1)若d(l)<min[d(m)]|成立,則判定第i幀語(yǔ)音屬于第l類。
為了剔除某些偶爾發(fā)生的判決錯(cuò)誤,本系統(tǒng)還采取了如下的平滑和校正手段(1).若在音節(jié)的尾部出現(xiàn)“U”,則改判為“S”。
(2).若兩段相鄰“U”之間出現(xiàn)一段“S”(且其長(zhǎng)度小于5幀),則將其改判為“U”。
(3).若兩段相鄰“S”之間出現(xiàn)一段“U”,且其長(zhǎng)度小于5幀,則將其改判為“S”。
由于這個(gè)算法的模板參數(shù)是由多人訓(xùn)練語(yǔ)音求得的,所以它是一種非特定人的算法,實(shí)踐證明這種算法可得到非常高的分類精度。
4.聲母識(shí)別和聲韻母的分割在建立聲母和韻母的碼本和進(jìn)行識(shí)別之前,必須將一個(gè)音節(jié)的聲母和韻母分開,這是一個(gè)較難解決的問(wèn)題,因?yàn)樵诤芏嗲闆r下二者的界面并不是非常清楚的。為了解決這個(gè)問(wèn)題,我們把聲母分成兩類。第一類稱為“清音類”,其中包括下列各個(gè)聲母{p,t,k,h,j,q,x,z,c,s,ch,sh,g,zh,f}第二類稱為“濁音首部音素類”,其中包括下列各個(gè)聲母{a,o,e,i,u,v,m,n,l,r,b,d,g,zh,f}第一類聲母的顯著特點(diǎn)是它的聲母部分與音節(jié)的清音段落有明確的對(duì)應(yīng)關(guān)系,而且清音段的長(zhǎng)度在大多數(shù)情況下大于60ms(6幀)。第二類聲母的特點(diǎn)是,聲母與韻母的交調(diào)很嚴(yán)重,因而很難確定二者的分割點(diǎn);同時(shí)音節(jié)的清音段很短,一般小于40ms(4幀)。此外,第二類中包含了a,o,e,i,u,v等幾個(gè)單元音,它們是在零聲母的情況下,位于音節(jié)起始部位的韻母頭部。在這兩類音素中還包括了g,zh,f這三個(gè)共同的音素,這是由于它們的特性變化很大,如果把它們只劃規(guī)某一類往往會(huì)發(fā)生錯(cuò)誤。
根據(jù)上面的診斷,在識(shí)別時(shí)我們采取如下的聲母分割方案。對(duì)于每一個(gè)測(cè)試音節(jié),首先可以按照第3節(jié)所述的原理定出它的音節(jié)起點(diǎn)(即清音起點(diǎn))MB和清濁分割點(diǎn)(也就是濁音的起點(diǎn))ME。若ME-MB>6,即該音節(jié)的清音段長(zhǎng)度大于6幀(60ms),則確切判定該音節(jié)的聲母屬于清音類聲母,因而只要在該類聲母中尋找最佳逼近者。若ME-MB<4,即該音節(jié)的清音長(zhǎng)度小于四幀(40ms),則可判定該音節(jié)的聲母屬于濁音首部音素聲母類,并在該類中搜尋最優(yōu)者。若4ME-MB 6,則不能確判,在識(shí)別時(shí)對(duì)兩類聲母都得進(jìn)行搜尋。
采用上述的聲母分類方案,就可以對(duì)每一類別建立適合于該類別特性的訓(xùn)練和識(shí)別算法。
(1)清音類聲母的訓(xùn)練和識(shí)別算法對(duì)于清音類聲母,將清音段(即MB至ME-1)作為聲母段。對(duì)每一聲母取出由該聲母構(gòu)成的各種不同音節(jié)的聲母段內(nèi)各幀語(yǔ)音建立一個(gè)VQ碼本。建立碼本時(shí)采用LBG算法[2],特征矢量是12個(gè)LPC系數(shù)(加哈明窗,采用自關(guān)法-Durbin算法),碼字之間的距離采用Itakura距離度量,各個(gè)聚類的質(zhì)心由類內(nèi)各個(gè)訓(xùn)練語(yǔ)音的規(guī)一化自關(guān)系數(shù)取平均求得。每個(gè)碼本中最多包含10個(gè)碼字。在識(shí)別時(shí),用每個(gè)聲母的VQ碼本對(duì)輸入測(cè)試音節(jié)的聲母段進(jìn)行編碼,并按照平均編碼失真的大小排列,選出前六個(gè)候選聲母(平均編碼失真是指聲母段各幀語(yǔ)音編碼失真之和除以該段總幀數(shù))。
(2)濁音首部音素類聲母的訓(xùn)練和識(shí)別算法,這里分為兩種情況[a].對(duì)于m,n,l,r這幾個(gè)音,取前6幀(即MB-MB+5,相應(yīng)的時(shí)間間隔是60ms)作為段(這幾個(gè)音的聲母段長(zhǎng)度變化較大,且受后面韻母的影響,根據(jù)大量語(yǔ)音數(shù)據(jù)的分析,這些音的聲母段長(zhǎng)度平均為60ms,因而作此選擇)。訓(xùn)練和識(shí)別算法與(1)相同。.對(duì)于其它語(yǔ)音,取前3幀(即MB-MB+2)作為聲母段(這些音的聲母段長(zhǎng)局限在前三幀)。訓(xùn)練和識(shí)別算法與(1)相同。
5.韻母識(shí)別在進(jìn)行韻母識(shí)別以前首先要確定一個(gè)音節(jié)中韻母的起終點(diǎn),根據(jù)上一節(jié)中對(duì)于不同類聲母特性的討論,我們采取以下方案來(lái)定出韻母段的起點(diǎn)[a].若測(cè)試音節(jié)中,ME-MB≥4(即該音節(jié)的清音段幀數(shù)不少于4幀,或者說(shuō)時(shí)間間隔不少于40ms)。則判定韻母段起點(diǎn)為ME。.若測(cè)試音節(jié)中ME-MB<3(即該音節(jié)的清音段幀數(shù)不大于3幀,或者說(shuō)相應(yīng)的時(shí)間間隔小于或等于30ms),則判定韻母段起點(diǎn)為MB+5。
作此判決的依據(jù)是,若ME-MB<3,那末大量語(yǔ)音數(shù)據(jù)的實(shí)驗(yàn)證明,測(cè)試音節(jié)的聲母肯定屬于濁音首部音素類,這時(shí)除了零聲母的情況以外,切去音節(jié)的前5幀,以第6幀作為韻母的開始,可以基本上去除聲母對(duì)韻母的交調(diào)而不失去韻母的韻頭部分。而在零聲母的情況,濁音首部音素表中已包含了所有的韻頭音素a,i,u,o,e,v,因而即使韻母段的韻頭被切除掉了,它還可以通過(guò)聲母的識(shí)別部分恢復(fù)過(guò)來(lái)。反之,若ME-MB4,這時(shí)韻母段與音節(jié)中的濁音段吻合得很好,所以可將濁音段的起點(diǎn)ME直接定為韻母段的起點(diǎn)。
在各種情況下,都將音節(jié)的終點(diǎn)MS定為韻母段的終點(diǎn)。
韻母的識(shí)別采取了3節(jié)VQ的識(shí)別算法。在訓(xùn)練時(shí),對(duì)于同一韻母的各個(gè)訓(xùn)練音節(jié),將其各自的韻母段等分為三段,然后每段建立一個(gè)VQ碼本,每個(gè)碼本的碼字?jǐn)?shù)不超過(guò)10個(gè)所采取的特征矢量和VQ訓(xùn)練時(shí)相同。在識(shí)別時(shí),將測(cè)試音節(jié)的韻母段等分為三段,然后用各個(gè)韻母的三段VQ碼本進(jìn)行編碼,并按照從小到大排列,選出前6個(gè)優(yōu)勝者。
6.基于隱含馬可夫模型的語(yǔ)音識(shí)別方法6.1定義隱含馬可夫過(guò)程是一個(gè)由二種機(jī)理構(gòu)成的隨機(jī)過(guò)程,其一是隱含的,具有有限狀態(tài)的馬可夫模型,而另一個(gè)是一系列隨機(jī)觀察函數(shù),每一個(gè)觀察函數(shù)都與一個(gè)狀態(tài)相連系。假設(shè)人的聲道具有有限的發(fā)音結(jié)構(gòu),把它們與狀態(tài)對(duì)應(yīng)起來(lái),語(yǔ)音信號(hào)作為相對(duì)于一定聲道結(jié)構(gòu)的觀察信號(hào),這樣一種聲音就可用一個(gè)隱含馬可夫過(guò)程來(lái)描述。利用HMM的參數(shù)估計(jì)方法求出一種發(fā)音的過(guò)程參數(shù),這個(gè)參數(shù)集合就叫HMM模型參數(shù)。應(yīng)用于語(yǔ)音識(shí)別的HMM模型是離散的,線性的隱含馬可夫模型,其定義為設(shè){§(n)|n=0,1……}是狀態(tài)空間為狀態(tài)指標(biāo)集S={1,2,…,N}的離散隨機(jī)過(guò)程,且§(n)滿足P{§(n+1)/§(0)=So……§(n)=Sn}=P{§(n+1)/§(n)} 式(2)令aij(n)=P{§(n+1)=j(luò)/§(n)=i} 式(3)aij(n)為§(n)的一步轉(zhuǎn)移概率,它有如下性質(zhì)aij(n)≥0 式(4)
若ij(n)與§n無(wú)關(guān),則(n)稱齊次馬可夫模型。在語(yǔ)音識(shí)別中,狀態(tài)是隱含的,觀察到的語(yǔ)音特征由依附于某個(gè)狀態(tài)的隨機(jī)函數(shù)F(X)描述,觀察函數(shù)的構(gòu)成與具體語(yǔ)音特征有關(guān)。
在HMM語(yǔ)音識(shí)別方法中,為了得到一種發(fā)音的HMM模型,首先將L個(gè)同種發(fā)音樣本進(jìn)行VQ編碼,產(chǎn)生L個(gè)VQ碼字序列(Code Sequence),把這L個(gè)碼字序列看作由同一個(gè)HMM模型產(chǎn)生,構(gòu)造這個(gè)HMM型的準(zhǔn)則,要求它產(chǎn)生K個(gè)碼字序列的概率最大,當(dāng)K充分大后,該HMM模型記錄了這一發(fā)音所產(chǎn)生碼字串的先驗(yàn)概率。在識(shí)別時(shí),對(duì)于該發(fā)音的碼字序列,利用已建立的模型求出各個(gè)模型產(chǎn)生此碼字序列的后驗(yàn)概率,根據(jù)后驗(yàn)概率最大準(zhǔn)準(zhǔn)則就可以較好地識(shí)別出產(chǎn)生該碼字序列的HMM模型,從而得出識(shí)別結(jié)果。因此對(duì)于VQ/HMM語(yǔ)音識(shí)別方法,觀察函數(shù)實(shí)際上是一組離散觀察概率。設(shè)VQ碼本的標(biāo)號(hào)集合為TN={m|m=0,1……M-1},Q=(Q1,Q2……QT)為語(yǔ)音VQ碼字序列,Qt TN(t=1,2……T),觀察概率定義為Vi∈S,j∈TN;b=P{Qt=j(luò)/q(t)=i}。對(duì)于齊次HMM模型,b只與狀態(tài)和觀察碼字有關(guān),在齊次性假設(shè)條件下,模型參數(shù)可以通過(guò)一種重新估計(jì)算法估計(jì)出來(lái),其識(shí)別算法也十分簡(jiǎn)單。
6.2漢語(yǔ)單音節(jié)HMM語(yǔ)音識(shí)別方法經(jīng)典HMM模型訓(xùn)練中,一個(gè)最大的問(wèn)題就是在訓(xùn)練算法(Baum-Welch)中,重新估計(jì)的迭代次數(shù)多,每一次重新計(jì)算HMM模型參數(shù),都要重復(fù)輸入全部訓(xùn)練數(shù)據(jù),因此,計(jì)算量異常大。另外由于狀態(tài)是隱含的,沒(méi)有明確物理意義,因而靠對(duì)參數(shù)的不斷修正,來(lái)產(chǎn)生最佳模型。如果我們能一次確定模型的最佳狀態(tài)分布,也就可一次估計(jì)出模型參數(shù),而不必經(jīng)多次重新估計(jì)計(jì)算,計(jì)算量和數(shù)據(jù)吞吐量也大大減少,事實(shí)上,HMM模型的狀態(tài)是可以與一定音素結(jié)構(gòu)對(duì)應(yīng)的。下文將詳述一種全新HMM模型訓(xùn)練方法。
基于字的HMM模型對(duì)于已知字其模型狀態(tài){qo……qN}是給定的,然而并非一個(gè)狀態(tài)qi就對(duì)應(yīng)于一個(gè)語(yǔ)音信號(hào)特征符號(hào),而是對(duì)應(yīng)于包含多個(gè)語(yǔ)音特征符號(hào)的集合Si={Vi1,Vi2……Vi},且不同狀態(tài)qi,qj對(duì)應(yīng)的符號(hào)集Si,Sj具有非空的交Si∧Sj≠0(i≠j)。HMM的這一特點(diǎn)使它特別適合于與人無(wú)關(guān)的語(yǔ)音識(shí)別。HMM模型的另一特點(diǎn)是不同狀態(tài)轉(zhuǎn)移的隨機(jī)性,從而它能夠自動(dòng)地將不同發(fā)音長(zhǎng)度的同一個(gè)字很好地匹配起來(lái)(起類似于DTW的作用)。
對(duì)于HMM的狀態(tài)是可以作多種定義(或理解)的,但是一個(gè)好的狀態(tài)定義應(yīng)當(dāng)既反映語(yǔ)音的多變性特點(diǎn)(一個(gè)狀態(tài)對(duì)應(yīng)于多個(gè)符號(hào)),又應(yīng)當(dāng)使不同狀態(tài)對(duì)應(yīng)的符號(hào)集之交(即Si∧Sj,i=j(luò))最小,否則必然會(huì)造成較大的識(shí)別誤差。
如果語(yǔ)音的特征符號(hào)是按時(shí)間分幀的方式提取,那么對(duì)HMM狀態(tài)的一種自然解釋就是把它與音素平穩(wěn)段或音素間的過(guò)渡段對(duì)應(yīng)起來(lái)。按照這種觀點(diǎn)也就很容易解釋,為什么圖4所示的自左向右的語(yǔ)音狀態(tài)轉(zhuǎn)移模型具有更好的適應(yīng)性。這是因?yàn)橐粋€(gè)詞(字)的音素是自左向右(時(shí)間增加方向)發(fā)出的,而狀態(tài)之間的跨越轉(zhuǎn)移反映了可能出現(xiàn)的“吃音”現(xiàn)象。對(duì)于漢語(yǔ)的字來(lái)說(shuō),“吃音”現(xiàn)象是極少出現(xiàn)的,因而可以忽略狀態(tài)的跨越轉(zhuǎn)移,描述漢語(yǔ)的HMM語(yǔ)音識(shí)別模型應(yīng)可以用圖5的狀態(tài)轉(zhuǎn)移圖來(lái)描述。
如果我們從狀態(tài)駐留長(zhǎng)度分布的角度來(lái)看待圖5的狀態(tài)轉(zhuǎn)移模型,我們就可以得到圖6所示的一個(gè)狀態(tài)鏈,圖中表示狀態(tài)qi的駐留長(zhǎng)度,它是以Pi(m)為分布的一個(gè)隨機(jī)函數(shù),若Pi(0)=0,就表示狀態(tài)qi有可能發(fā)生跨越轉(zhuǎn)移,但對(duì)漢語(yǔ)語(yǔ)音而言,可以認(rèn)為不可能發(fā)生“吃音”現(xiàn)象,因此總可以假設(shè)Pi(0)=0。設(shè)在t時(shí)刻已出現(xiàn)了(K-1)個(gè)qi狀態(tài),則在t+1時(shí)刻的狀態(tài)轉(zhuǎn)移概率為Pi(K≤mi)/Pi(K≤mi+1),j=iaij(K)=Pi(K=mi+1)/Pi(K≤mi+1),j=i+1 式(6)0,其它j,i=1,2……N由于aij(k)均與k有關(guān),從而漢語(yǔ)的基于狀態(tài)長(zhǎng)度分布的HMM模型是一種非平穩(wěn)的Markov模型。如果用狀態(tài)駐留長(zhǎng)度的隨機(jī)分布pi(Mi)能夠較好地反映語(yǔ)音的特點(diǎn),那么把這個(gè)模型用于語(yǔ)音識(shí)別時(shí)就能大大簡(jiǎn)化訓(xùn)練算法。因?yàn)槟壳癏MM語(yǔ)音識(shí)別的訓(xùn)練算法(Baum-Welch)的復(fù)雜性對(duì)于大詞匯表系統(tǒng)來(lái)說(shuō)簡(jiǎn)直是災(zāi)難性的,而新的模型只需要對(duì)訓(xùn)練字進(jìn)行分割獲取段長(zhǎng)信息m1……mN以mi的頻數(shù)作為Pi(mi)的一個(gè)逼近,便可由式6得到狀態(tài)轉(zhuǎn)移概率aij(k),觀測(cè)矩陣{bj(Qk)}則可由第i段中觀測(cè)符號(hào)Qk出現(xiàn)的頻數(shù)作為bj(Qk)的近似值來(lái)獲得。
6.3基于狀態(tài)長(zhǎng)度分布的HMM模型參數(shù)估計(jì)參數(shù)估計(jì)的目的是得到詞或字的段長(zhǎng)分布Pi(m)和觀測(cè)矩陣{bj(Qk)}其主要計(jì)算量在于段長(zhǎng)的分割。對(duì)于某個(gè)給定的字設(shè)有L個(gè)訓(xùn)練序列{Qk}k(k=1,2……L),Qk={Qk1,Qn2……Qmtk},Tk為第k個(gè)訓(xùn)練序列的長(zhǎng)度,設(shè)Qkt的定義域是一個(gè)經(jīng)過(guò)矢量量化的特征空間V(VQ碼本),Q的一個(gè)最優(yōu)劃分
取最小值的一個(gè)劃分。
稱為序列Qk第i段的重心。定義
式(7)成為
于是使(7)最小的劃分問(wèn)題等效于求解約束最優(yōu)化問(wèn)題。
其中Ω={(X1,……XN)|0≤X1≤X2……≤XN=Tk}式(12)對(duì)于此類多極值泛函的最優(yōu)化問(wèn)題,搜索算法是否能收斂到最小值,在很大程度上取決于初值的選擇。在這方面由于較易獲得關(guān)于X……X的先驗(yàn)知識(shí),所以算式(11)能可求取最小點(diǎn)。由式(11)
從而得到了段長(zhǎng)的估計(jì),當(dāng)L足夠大時(shí),由大數(shù)定理Pi(mi) = ( L個(gè)訓(xùn)練序列中第i段的長(zhǎng)度為mi的個(gè)數(shù) )/(L)i=1,2…N 式(14)在狀態(tài)
i時(shí)出現(xiàn)觀察符號(hào)Qk的概率
bi(QK) = ( L個(gè)訓(xùn)練序列中在狀態(tài)qi時(shí)出現(xiàn)Qk的總幀數(shù) )/(L個(gè)序列中出現(xiàn)狀態(tài)q 的總幀數(shù))
i=1,2…N,k=1,2…M 式(15)M為VQ碼本V的尺寸。
對(duì)識(shí)別字表中的每個(gè)字都進(jìn)行如上步驟的訓(xùn)練便可得到全部所需要的HMM參數(shù)。
6.3識(shí)別算法設(shè)我們已經(jīng)經(jīng)過(guò)訓(xùn)練得到了一個(gè)語(yǔ)音信號(hào)特征矢量的VQ碼本,各狀態(tài)段長(zhǎng)分布Pi(m)(i=1,2…N)和觀察矩陣{b(Qk)}(i=1,2…N,k=1,2……M),識(shí)別字表有V個(gè)字W={W1,W2…Wv},設(shè)待識(shí)字的語(yǔ)音特征矢量觀察序列為Q={Q,…Q},Qt∈V(t=0,1……T)。首先按式(12)找到Q的最佳狀態(tài)分割S={X,X X}。
似然比P(Q/Wi)=P(Q S/Wi)=P(S/Wi)P(Q/WiS) 式(16)式中的第一個(gè)等號(hào)是由于對(duì)于給定的Q,
是完全確定的,使式(16)定義的似然比最大的Wi即被認(rèn)為是識(shí)別結(jié)果
。
由于P(Q/Wi∩
)對(duì)分割
要比P(O/Wi)敏感的多,故可以假設(shè)
這是一個(gè)動(dòng)態(tài)規(guī)劃中的最大路徑問(wèn)題,可用Viterbi算法求解,算法的步驟如下(1)δ(i)1(1)=log b(i)1(Q1)(2)δ(i)t(j)=max[δ(i)t-1(j-1),δ(i)t-1(j)]+log b(i)j(Qt)j=1,2……N,t=1,2……T 式(19)δ(i)T(N)=max[log P(Q/Wi∩S)]式(20)(3)由(1)(2)得到一個(gè)最優(yōu)劃分
與經(jīng)典HMM識(shí)別算法相比,在步驟(2)中少了一次加法,但在計(jì)算過(guò)程中新識(shí)別算法需要記錄分割點(diǎn)和進(jìn)行步驟(3)的計(jì)算,運(yùn)算量與經(jīng)典HMM的Viterbi識(shí)別算法基本相同。
6.4自適應(yīng)HMM方法研究在新的HMM模型中,可以看出,HMM模型參數(shù)Pi(m),{b}均是統(tǒng)計(jì)平均估值,這些參數(shù)計(jì)算法十分容易自適應(yīng)。因此我們對(duì)Pi(m),{b}的自適應(yīng)算法作統(tǒng)一描述。
設(shè)Avg1=SUM1/T1,Avg2=SUM2/T2為先后一次統(tǒng)計(jì)的均值,Avg為總的平均值,顯然,下列等式成立Avg=(SUM1+SUM2)/(T1+T2)=Avg T1/(T1+T2)+Avg2 T2/(T1+T2)式(23)Avg=(1-fa)Avg1+fa Avg2 式(24)fa=T2/(T1+T2) 式(25)只要根據(jù)前后二次訓(xùn)練數(shù)據(jù)量的比值T1/T2,就可以估計(jì)出總平均值,式中fa稱自適應(yīng)系數(shù)。因此,P(m),bi(j)的自適應(yīng)具有十分簡(jiǎn)單的形式。
在最后的實(shí)驗(yàn)中對(duì)VQ,HMM分別進(jìn)行自適應(yīng),就形成了實(shí)用的自適應(yīng)VQ/HMM語(yǔ)音識(shí)別系統(tǒng)。
6.5結(jié)論上文提出了一種全新的漢語(yǔ)全音節(jié)識(shí)別方法,它充分體現(xiàn)了漢語(yǔ)單音節(jié)的特點(diǎn)。其一是,采用聲韻母VQ算法解決分層全音節(jié)漢語(yǔ)孤立字識(shí)別問(wèn)題。其二是研究了一適合漢語(yǔ)音節(jié)特點(diǎn)的HMM模型,上述二者又都具有非特定人識(shí)別的性能,對(duì)于漢語(yǔ)不僅識(shí)別率達(dá)到98%,而且算法運(yùn)算量小,可以在微機(jī)上低成本實(shí)現(xiàn)語(yǔ)音識(shí)別,具有實(shí)用價(jià)值。
本發(fā)明因?yàn)榭勺R(shí)別全部漢語(yǔ)單音節(jié),而且識(shí)別方法運(yùn)算量很少,可以在微機(jī)系統(tǒng)上使機(jī)器增加聲控打字系統(tǒng),從而使得任何人均有可能用語(yǔ)言操縱計(jì)算機(jī)進(jìn)行漢字信息處理,可大大推進(jìn)計(jì)算機(jī)漢字信息處理的現(xiàn)代化水平。
本發(fā)明的目的是這樣完成的在微機(jī)上或在中英文電子打字機(jī)上擴(kuò)充一塊語(yǔ)音卡。語(yǔ)音卡識(shí)別全部漢語(yǔ)單音節(jié),并將語(yǔ)音轉(zhuǎn)變?yōu)橄鄳?yīng)的文字送入主機(jī)上存儲(chǔ),被存儲(chǔ)的漢字可以在語(yǔ)音卡上再轉(zhuǎn)變?yōu)槁曇糨敵觯蛘咴谥杏⑽拇蜃謾C(jī)上(或由微機(jī)送到打印機(jī)上)輸出,這是一種非特定人(不依賴于說(shuō)話人)的漢語(yǔ)全音節(jié)音識(shí)別的方法。對(duì)于特定人識(shí)別則具有更好的性能。
發(fā)明的具體結(jié)構(gòu)由以下實(shí)施例及其附圖給出。
圖7是根據(jù)上述語(yǔ)音識(shí)別方法在IBM-PC系列微機(jī)上實(shí)現(xiàn)的聲控打字系統(tǒng)框圖。
該聲控打字系統(tǒng)由語(yǔ)音識(shí)別卡(3)完成全部語(yǔ)聲識(shí)別,由語(yǔ)音合成卡(4)完成全部語(yǔ)音的合成。當(dāng)使用者通過(guò)話筒發(fā)音時(shí),識(shí)別卡(3)將語(yǔ)音轉(zhuǎn)化為計(jì)算機(jī)內(nèi)的漢字內(nèi)碼,在計(jì)算機(jī)上可以顯示(6)相應(yīng)于語(yǔ)音的全部同音字,用戶可通過(guò)鍵選或微機(jī)根據(jù)上下文間詞組搭配自動(dòng)找出正確的漢字存儲(chǔ)。對(duì)于已輸入的文稿計(jì)算機(jī)可進(jìn)行排版打印(7)或者通過(guò)合成卡(4)朗讀文稿以便使用人員校稿。用戶輸入漢字時(shí)既可用詞組也可按單音節(jié)方式輸入語(yǔ)音。
權(quán)利要求
1.聲控打字機(jī)系統(tǒng)是在普通微型計(jì)算機(jī)上或普通中英文打字機(jī)上增加語(yǔ)音識(shí)別卡(3)和合成卡(4)實(shí)現(xiàn)聲控打字的裝置,語(yǔ)音識(shí)別采用是以聲韻母識(shí)別作為第一級(jí)識(shí)別,以基于音節(jié)平穩(wěn)段段長(zhǎng)分布的HMM模型為第二級(jí)識(shí)別的方法,它識(shí)別以詞或音節(jié)為單位的語(yǔ)音,并且可合成音節(jié)和詞組,語(yǔ)音識(shí)別是不認(rèn)人的識(shí)別方法,對(duì)特定人識(shí)別性能更好,該系統(tǒng)還具有語(yǔ)音理解功能,可以通過(guò)詞法、句法知識(shí)區(qū)別同音字。
2.根據(jù)權(quán)利要求1所述的裝置,其特征是既能識(shí)別全部漢語(yǔ)語(yǔ)音,又能合成全部漢語(yǔ)語(yǔ)音。
3.根據(jù)權(quán)利要求1、2,聲控打字系統(tǒng)是一種非特定人的系統(tǒng)。
4.根據(jù)權(quán)利要求1、2、3,聲控打字系統(tǒng)不僅可識(shí)別單音節(jié),而且可識(shí)別詞組發(fā)音。
5.根據(jù)權(quán)利要求1、2、3,聲控打字系統(tǒng)具有語(yǔ)言理解功能,可根據(jù)詞法、句法知識(shí)區(qū)別同音字。
6.根據(jù)權(quán)利要求1、2、3,聲控打字系統(tǒng)還能作為一種控制系統(tǒng)主機(jī),使人可用語(yǔ)音控制機(jī)器。
全文摘要
該聲控打字系統(tǒng)解決了全部漢語(yǔ)單音節(jié)的識(shí)別與合成問(wèn)題。它采用分層識(shí)別技術(shù),第一級(jí)識(shí)別為漢語(yǔ)單音節(jié)的聲韻母識(shí)別,第二級(jí)識(shí)別為基于音節(jié)平穩(wěn)段段長(zhǎng)分布的隱含馬爾可夫模型(HMM)識(shí)別方法。它能實(shí)時(shí)識(shí)別以單詞或單字發(fā)音的全部漢語(yǔ)語(yǔ)音,此外聲控打字系統(tǒng)還具有語(yǔ)言理解功能,它可以根據(jù)句法、詞法知識(shí)區(qū)別漢語(yǔ)的同音字,通過(guò)識(shí)別和理解可將語(yǔ)音轉(zhuǎn)變?yōu)槲淖执尜A,轉(zhuǎn)送或輸出(打印或朗讀)。該聲控打字系統(tǒng)不僅可用于辦工室自動(dòng)化中的漢字信息處理,而且可廣泛應(yīng)用于各種控制領(lǐng)域。系統(tǒng)由普通微機(jī)或中英文打字機(jī)增加一塊獨(dú)立進(jìn)行語(yǔ)音識(shí)別和合成的專用硬件構(gòu)成。
文檔編號(hào)G06F3/16GK1055254SQ9010166
公開日1991年10月9日 申請(qǐng)日期1990年3月28日 優(yōu)先權(quán)日1990年3月28日
發(fā)明者曹洪, 譚政, 潘接林 申請(qǐng)人:曹洪, 譚政, 潘接林