專利名稱:語音識(shí)別系統(tǒng)及用于語音識(shí)別系統(tǒng)的特征矢量集的壓縮方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種語音識(shí)別系統(tǒng)及一種用于語音識(shí)別系統(tǒng)的特征矢量集的壓縮方法。
圖1所示是一種已知語音識(shí)別系統(tǒng)的結(jié)構(gòu)框圖,模擬語音經(jīng)過模數(shù)變換單元11后變換為計(jì)算機(jī)可處理的數(shù)字信號(hào),然后利用特征提取單元12對(duì)該數(shù)字信號(hào)進(jìn)行分幀處理,通常幀長為20ms,幀移為10ms,提取每一幀語音的MFCC參數(shù),得到MFCC矢量序列,解碼運(yùn)算單元14根據(jù)輸入語音的特征矢量序列、聲學(xué)模型13及語言模型15,采用一定的搜索策略,如深度優(yōu)先搜索(Viterbi算法)或廣度優(yōu)先搜索,得到識(shí)別的結(jié)果,其中語言模型在進(jìn)行大詞表連續(xù)語音識(shí)別時(shí),用于將語言層的知識(shí)應(yīng)用到語音識(shí)別系統(tǒng)中,提高系統(tǒng)的識(shí)別精度。
隨著微電子技術(shù)和通訊技術(shù)的高速發(fā)展,手機(jī)等嵌入式通訊裝置幾乎已成為人們工作生活必備的物品,而人們對(duì)其功能的要求也越來越高,這使得將語音技術(shù)應(yīng)用于此類裝置成為研究的熱點(diǎn),現(xiàn)有手機(jī)的語音功能需預(yù)先對(duì)特定人的語音建模,只能識(shí)別有限的語音指令,而不能真正實(shí)現(xiàn)大詞表語音識(shí)別,例如漢語全音節(jié)的識(shí)別和錄入。其原因主要在于此類裝置的資源有限,不具有運(yùn)行漢語非特定人單音節(jié)語音識(shí)別系統(tǒng)所需的存儲(chǔ)空間和運(yùn)算能力,因此如何在保證識(shí)別性能的同時(shí),降低現(xiàn)有語音識(shí)別系統(tǒng)所需的存儲(chǔ)空間,減少其所需的運(yùn)算量,是急待解決的技術(shù)問題。
通常在當(dāng)今流行的語音識(shí)別系統(tǒng)中,聲學(xué)模型都是用隱含馬爾可夫模型(HMM)來描述,由于基于連續(xù)概率密度的隱含馬爾可夫模型(CDHMM)與基于離散概率密度的HMM相比,更能精確地描述人的發(fā)音,因此大多數(shù)語音識(shí)別系統(tǒng)中聲學(xué)模型都采用CDHMM。但CDHMM的聲學(xué)模型需占用大量的存儲(chǔ)空間,以現(xiàn)有的非特定人漢語單單音節(jié)語音識(shí)別系統(tǒng)為例,其聲學(xué)模型占據(jù)了4M字節(jié)的存貯空間,這在資源有限的嵌入式硬件平臺(tái)(如手機(jī)、PDA等)上幾乎不可實(shí)現(xiàn)。
一種降低存儲(chǔ)量的辦法是減少CDHMM的狀態(tài)數(shù)或每個(gè)狀態(tài)的高斯分布個(gè)數(shù),但這會(huì)大大降低系統(tǒng)的識(shí)別性能。
另一種方法是對(duì)聲學(xué)模型進(jìn)行矢量量化以壓縮數(shù)據(jù)生成碼本,其最常用的算法是K-means聚類算法,先將該特征矢集劃分為若干子空間,再對(duì)每個(gè)子空間的所有矢量進(jìn)行聚類得到一碼本,各子空間碼本生成的步驟如圖4所示令k=0,將子空間劃分為一個(gè)子集合,計(jì)算該子集合的中心矢量,得到初始化碼本,步驟200;如果k=K,那么就已經(jīng)得到K-bits的碼本,聚類結(jié)束,否則執(zhí)行步驟220,步驟210;令k=k+1,將所有子集合一分為二,生成新的中心矢量,合成該子空間的新碼本,步驟220;降該子空間各矢量分配到與其距離度量最小的中心矢量對(duì)應(yīng)的子集合中,步驟230;計(jì)算該子空間所有矢量的總距離度量變化率,步驟240;將該變化率與一預(yù)設(shè)變化率的門限值比較,若該變化率小于或等于該門限值,回到步驟210;若該變化率大于該門限值,則執(zhí)行步驟250;根據(jù)各子集合分配的所有矢量重新計(jì)算該子集合的中心矢量,形成新碼本并回到步驟230,步驟260。
在上述聚類的過程中,常常出現(xiàn)某些子集合所包含的矢量數(shù)很少,導(dǎo)致聚類后集合中矢量與其對(duì)應(yīng)的碼字的距離度量總和仍然偏大,這在給定碼本大小的情況下會(huì)影響聚類的效果。而將用該方法壓縮后的聲學(xué)模型用于語音識(shí)別系統(tǒng)時(shí),會(huì)降低語音識(shí)別的準(zhǔn)確率。而將該算法應(yīng)用于語音特征集的壓縮,可得到的特征碼本,如果某些碼字包含的矢量太少,在給定碼本大小的條件下,特征碼本的精度會(huì)降低,在對(duì)輸入的語音特征序列量化編碼時(shí)會(huì)影響編碼的精度,從而會(huì)導(dǎo)致語音識(shí)別系統(tǒng)的識(shí)別性能下降。
此外,在CDHMM中,在某一狀態(tài)下特征矢量的概率分布函數(shù)是用多個(gè)高斯分布函數(shù)的加權(quán)和來描述,這樣能比較精確地描述特征矢量空間分布。然而在大詞表語音識(shí)別系統(tǒng)中如果采用CDHMM,那么在解碼運(yùn)算單元進(jìn)行解碼時(shí)需要多次計(jì)算高斯概率,通常在解碼過程中所需要的計(jì)算量都集中在高斯概率計(jì)算上,這需要大量的計(jì)算量。在手機(jī)等資源有限的嵌入式硬件平臺(tái)上進(jìn)行大詞表語音識(shí)別時(shí),會(huì)導(dǎo)致語音識(shí)別系統(tǒng)反應(yīng)速度很慢,無法滿足實(shí)際使用的需要。
為了達(dá)到上述目的,本發(fā)明提供一種用于語音識(shí)別系統(tǒng)的特征矢量集的壓縮方法,先將該特征矢集劃分為若干子空間,再對(duì)每個(gè)子空間的所有矢量進(jìn)行聚類得到一碼本,各子空間碼本生成的步驟包括(a)將該子空間所有矢量劃分到子集合中,計(jì)算該子集合的中心矢量,得到初始化碼本;(b)將所有子集合一分為二,生成新的中心矢量以合成該子空間的新碼本;(c)分別找到與該子空間各矢量距離度量最小的中心矢量,將各矢量分配到與其距離度量最小的中心矢量對(duì)應(yīng)的子集合中;(d)計(jì)算出該子空間所有矢量的總距離度量變化率;(e)將該變化率與一預(yù)設(shè)變化率的門限值比較;若該變化率小于或小于等于該門限值,再判斷是否已獲得預(yù)定比特?cái)?shù)的碼本,若是,則結(jié)束,若否,則執(zhí)行步驟(b);若該變化率大于等于或等于該門限值,則執(zhí)行步驟(f);
(f)基于各子集合中的矢量個(gè)數(shù)和平均距離度量,對(duì)某些子集合進(jìn)行合并和分裂;以及(g)將分裂得到的子集合的中心矢量作為代表該子集合的碼字,得到該子空間的新碼本,并回到步驟(c)。
上述方案中,其特點(diǎn)是所述步驟(b)又可分為以下步驟計(jì)算出該子集合所有矢量相對(duì)于其中心矢量的平均方差值;將各該中心矢量加上其對(duì)應(yīng)的平均方差值的一半,得到一個(gè)新的中心矢量,再將各該中心矢量減去其對(duì)應(yīng)的平均方差值的一半,得到另一個(gè)新的中心矢量;以及將該子空間新生成的中心矢量合在一起得到新的碼本。
上述方案中,其特點(diǎn)是所述子空間所有矢量的總距離度量變化率按以下方法計(jì)算計(jì)算所述子空間各矢量與離其距離度量最小的中心矢量之間的距離的總和,得到新的總距離度量;將原總距離度量減去新的總距離度量得到一差值;再將該差值的絕對(duì)值除以原總距離度量即得到該總距離度量變化率。
上述方案中,其特點(diǎn)是所述步驟(e)中,在判斷是否已獲得預(yù)定比特?cái)?shù)的碼本前,還有一將新的總距離度量值賦與原總距離度量值的步驟;且在所述步驟(g)中,在回到步驟(c)之前,還有一將新的總距離度量值賦與原總距離度量值的步驟。
上述方案中,其特點(diǎn)是所述的合并是指將包含矢量個(gè)數(shù)小于某一預(yù)設(shè)值的各子集合的中心矢量從碼本中刪除。
上述方案中,其特點(diǎn)是所述的分裂是指一個(gè)子集合被合并后,先計(jì)算各子集合中所有矢量與該子集合中心矢量的距離之和,再計(jì)算該和與該子集合的矢量個(gè)數(shù)的比值,將所得比值最大的子集合分為二個(gè)子集合,同時(shí)生成兩個(gè)新的中心矢量。
上述方案中,其特點(diǎn)是所述的特征矢量為LPC系數(shù)、倒譜系數(shù)、濾波器組系數(shù)或MFCC系數(shù)。
上述方案中,其特點(diǎn)是該特征矢量集為一聲學(xué)模型或一語音特征集,該聲學(xué)模型壓縮后得到一高斯碼本,該語音特征集壓縮后得到一特征碼本。
由上可知,本發(fā)明方法在對(duì)語音特征矢量集聚類得到碼本的過程中,增加了根據(jù)子集合中矢量數(shù)及矢量的總距離度量來動(dòng)態(tài)合并和分裂子集合的步驟,減小了聚類后集合中矢量與其對(duì)應(yīng)的碼字的距離度量總和,提高了聚類算法的精度,將本發(fā)明方法壓縮后的碼本應(yīng)用于語音識(shí)別系統(tǒng)中,可在保證語音系統(tǒng)識(shí)別性能的同時(shí),大大降低了系統(tǒng)的存儲(chǔ)量。
本發(fā)明要解決的另一技術(shù)問題是提供一種語音識(shí)別系統(tǒng),可在保證語音系統(tǒng)識(shí)別性能的前提下,降低系統(tǒng)的存儲(chǔ)量。
為了達(dá)到上述目的,本發(fā)明提供一種語音識(shí)別系統(tǒng),至少包括一模數(shù)變換單元、一特征提取單元、一解碼運(yùn)算單元及一聲學(xué)模型,用于接收語音輸入信號(hào)并得到相匹配的識(shí)別結(jié)果,其中該模數(shù)變換單元將該語音輸入信號(hào)轉(zhuǎn)換為一數(shù)字信號(hào);該特征提取單元將該數(shù)字信號(hào)進(jìn)行分幀處理,提取語音特征參數(shù)得到輸入語音的特征矢量序列;該解碼運(yùn)算單元對(duì)該特征矢量序列進(jìn)行解碼運(yùn)算得到識(shí)別結(jié)果。該聲學(xué)模型為采用本發(fā)明壓縮方法得到的高斯碼本。上述系統(tǒng)中,其特點(diǎn)是還包括一語言模型。
由于上述識(shí)別系統(tǒng)采用了本發(fā)明的壓縮方法得到的壓縮模型,因此可在保證語音系統(tǒng)識(shí)別性能的前提下,大大降低了系統(tǒng)的存儲(chǔ)量。
本發(fā)明要解決的又一技術(shù)問題是提供一種語音識(shí)別系統(tǒng),可在保證語音系統(tǒng)識(shí)別性能的前提下,提高系統(tǒng)的識(shí)別速度。
為了達(dá)到上述目的,本發(fā)明提供一種語音識(shí)別系統(tǒng),至少包括模數(shù)變換單元,將輸入語音的模擬信號(hào)變換為數(shù)字信號(hào);特征提取單元,對(duì)該數(shù)字信號(hào)進(jìn)行分幀處理,提取每一幀語音的特征參數(shù),得到其特征矢量序列;特征碼本,由一定數(shù)量的碼字組成;量化編碼單元,根據(jù)特征碼本將輸入語音的特征矢量序列轉(zhuǎn)換為特征碼字序列;概率表,存儲(chǔ)了特征碼本中每個(gè)碼字對(duì)應(yīng)高斯碼本中每個(gè)碼字的概率值;以及解碼運(yùn)算單元,對(duì)該特征碼字序列進(jìn)行解碼運(yùn)算得到識(shí)別結(jié)果,運(yùn)算中對(duì)該特征碼字序列中的各個(gè)碼字,從概率表中直接查找與其具有最大匹配概率的高斯碼字。
上述方案中,其特點(diǎn)是還包括一語言模型,上述方案中,其特點(diǎn)是所述量化編碼單元根據(jù)以下步驟將輸入語音的特征矢量序列轉(zhuǎn)換為特征碼字序列將所述特征矢量序列劃分為與所述特征碼本相同數(shù)量的子空間,每一子空間對(duì)應(yīng)于一個(gè)碼本;計(jì)算各子空間中所有特征矢量與相應(yīng)碼本中的各碼字之間的距離度量,降與該特征矢量具有最小距離度量的碼字作為所述特征碼字序列中對(duì)應(yīng)該特征矢量的碼字;將所述特征矢量序列各個(gè)子空間所有矢量所對(duì)應(yīng)的碼字按原矢量順序組合起來,即得到對(duì)應(yīng)的特征碼本碼字序列。
上述方案中,其特點(diǎn)是所述概率表是通過以下步驟生成的計(jì)算高斯碼本中各碼字對(duì)應(yīng)的均值矢量和方差矢量;利用上述均值矢量和方差矢量,計(jì)算所述特征碼本中各個(gè)碼字與高斯碼本中各個(gè)碼字相匹配的對(duì)數(shù)概率值;將特征碼本中的所有碼字與高斯碼本中的所有碼字相匹配的概率值儲(chǔ)存起來即可得到概率表。
由上可見,應(yīng)用本發(fā)明上述的識(shí)別系統(tǒng)及方法,在解碼的過程中不需要計(jì)算高斯概率,只須從預(yù)先存儲(chǔ)的概率表中查找出所需的概率值,大大減少了解碼運(yùn)算量,因而可極大地提高系統(tǒng)的識(shí)別速度。
本發(fā)明要解決的再一技術(shù)問題是提供一種語音識(shí)別系統(tǒng),可在保證語音系統(tǒng)識(shí)別性能的前提下,降低系統(tǒng)的存儲(chǔ)量,并且提高系統(tǒng)的識(shí)別速度。
為了達(dá)到上述目的,本發(fā)明提供一種語音識(shí)別系統(tǒng),至少包括模數(shù)變換單元,將輸入語音的模擬信號(hào)變換為數(shù)字信號(hào);特征提取單元,對(duì)該數(shù)字信號(hào)進(jìn)行分幀處理,提取每一幀語音的特征參數(shù),得到其特征矢量序列;特征碼本,采用本發(fā)明壓縮方法得到的特征碼本;量化編碼單元,根據(jù)特征碼本將輸入語音的特征矢量序列轉(zhuǎn)換為特征碼字序列;概率表,存儲(chǔ)了該特征碼本中每個(gè)碼字對(duì)應(yīng)高斯碼本中每個(gè)碼字的概率值,該高斯碼本為采用本發(fā)明壓縮方法的高斯碼本;以及解碼運(yùn)算單元,對(duì)該特征碼字序列進(jìn)行解碼運(yùn)算得到識(shí)別結(jié)果,運(yùn)算中對(duì)該特征碼字序列中的各個(gè)碼字,從概率表中直接查找與其具有最大匹配概率的高斯碼字。
上述系統(tǒng)的聲學(xué)模型用特征碼本和概率表替代,從而大大降低了系統(tǒng)所需的存儲(chǔ)空間,而且還能保證系統(tǒng)的識(shí)別精度僅有微小的下降。同時(shí),由于概率表的使用大大減少了系統(tǒng)的計(jì)算量,根據(jù)實(shí)驗(yàn)結(jié)果,與已有語音識(shí)別系統(tǒng)相比,本發(fā)明識(shí)別系統(tǒng)的識(shí)別速度可以提高50%以上。
本發(fā)明要解決的再一技術(shù)問題,是提供一種讀音識(shí)別方法,能提高識(shí)別速度。
為了達(dá)到上述目的,本發(fā)明提供一種語音識(shí)別方法,包括以下步驟將輸入的語音模擬信號(hào)變換為數(shù)字信號(hào);對(duì)該數(shù)字信號(hào)進(jìn)行分幀處理,提取每一幀語音的特征參數(shù),得到輸入語音的特征矢量序列;利用特征碼本對(duì)所述特征矢量序列進(jìn)行量化編碼,得到相應(yīng)的特征碼字序列;進(jìn)行解碼運(yùn)算得到識(shí)別結(jié)果,運(yùn)算中對(duì)該特征碼字序列中的各個(gè)碼字,從概率表中直接查到與其具有最大匹配概率的高斯碼字。
上述方法中,其特點(diǎn)是所述的特征碼本是通過本發(fā)明上述的壓縮方法得到的,所述的概率表是通過以下步驟生成的計(jì)算高斯碼本中各碼字對(duì)應(yīng)的均值矢量和方差矢量;利用上述均值矢量和方差矢量,計(jì)算所述特征碼本中各個(gè)碼字與高斯碼本中各個(gè)碼字相匹配的對(duì)數(shù)概率值;將特征碼本中的所有碼字與高斯碼本中的所有碼字相匹配的概率值儲(chǔ)存起來即可得到概率表。
其中的高斯碼本也是通過本發(fā)明上述的壓縮方法得到的。
采用上述識(shí)別方法,可在保證語音系統(tǒng)識(shí)別性能的前提下,降低系統(tǒng)的存儲(chǔ)量,并且提高系統(tǒng)的識(shí)別速度。
圖2是子空間劃分和聚類的示意圖。
圖3是本發(fā)明改進(jìn)的K-means聚類算法的流程圖。
圖4是已知的K-means聚類算法的流程圖。
圖5是本發(fā)明實(shí)施例的語音識(shí)別系統(tǒng)的識(shí)別流程圖。
圖6是本發(fā)明實(shí)施例的語音識(shí)別系統(tǒng)的結(jié)構(gòu)框圖。
語音特征有多種,如LPC系數(shù)、倒譜系數(shù)、濾波器組系數(shù)、Mel頻域倒譜系數(shù)、(Mel filter frequency coefficients,MFCC)等,常用的特征參數(shù)為MFCC,這里我們并不關(guān)心采用何種參數(shù),本發(fā)明可適用于任何一種特征參數(shù)。為了理解方便,以下以MFCC系數(shù)為例說明本發(fā)明用于語音識(shí)別系統(tǒng)的特征矢量集的壓縮方法。
假設(shè)每一幀語音用L個(gè)MFCC參數(shù),L個(gè)一階差分MFCC參數(shù)和L個(gè)二階差分MFCC參數(shù)合并成3*L=X維矢量作為特征參數(shù),構(gòu)成一X維的語音特征集,相應(yīng)地聲學(xué)模型中高斯正態(tài)分布的維數(shù)也是X維,如圖2所示,首先將X維語音特征集或聲學(xué)模型21中的矢量劃分到Y(jié)個(gè)子空間22,每個(gè)子空間22的維數(shù)是X/Y=M維,分別對(duì)Y個(gè)M維的特征子空間22和Y個(gè)M維的高斯子空間的所有矢量用改進(jìn)的K-Means聚類算法23進(jìn)行聚類,每個(gè)特征子空間和每個(gè)高斯子空間分別獲得包含設(shè)定個(gè)數(shù)碼字的碼本24,那么我們就將所有的特征碼本組合在一起來代表特征空間,將所有的高斯碼本組合在一起來代表聲學(xué)模型的高斯空間。
下面具體說明如何用改進(jìn)的K-Means聚類方法從M維子空間得到表述該空間的碼本。假設(shè)該M維的子空間為M={m1,...,mN},該空間共有N個(gè)矢量,我們要將這N個(gè)矢量聚類到K比特碼本,K值可預(yù)先設(shè)定,最終得到的碼本包含2K個(gè)碼字,每個(gè)碼字由M維的中心矢量構(gòu)成,現(xiàn)參照圖3中的流程對(duì)該方法說明如下步驟100令k=0bit,將該子空間所有矢量劃分為一個(gè)子集合,計(jì)算該子集合的中心矢量cjj=1,...,2k,得到初始化碼本,子集合中心矢量的計(jì)算方法如下cj=1NjΣi=1Njmji,]]>其中Nj是子集合 中的矢量個(gè)數(shù);步驟110如果k=K,那么就已經(jīng)得到K-bits的碼本,聚類結(jié)束。否則執(zhí)行步騾120;步驟120令k=k+1,將所有子集合一分為二,拆分的方法如下第一分步驟對(duì)每一子集合中的所有矢量,計(jì)算出其相對(duì)于該子集合中心矢量cJ的平均方差值,記為δJ第二分步驟按以下公式生成兩個(gè)新的中心矢量cI1=cJ+0.5·δJ]]>cI2=cI-0.5·δJ]]>第三分步驟將所有中心矢量合在一起生成k-bits碼本 步驟130找到與該子空間各矢量距離度量最小的中心矢量,降各矢量分配到該中心矢量對(duì)應(yīng)的子集合中,具體方法如下第一分步驟對(duì)于該子空間中的每一個(gè)矢量ml∈M,l=1,...,N,計(jì)算出與它距離度量最小的中心矢量cn(l),使得n(l)=argminJ=1,...,2kd(ml,cj)]]>這里d(ml,cj)是ml和cj之間的距離;第二分步驟將該矢量分配到該中心矢量對(duì)應(yīng)的子集合中;步驟140計(jì)算出該子空間所有矢量的總距離度量變化率,總距離度量的初始化值為D1=le-20;對(duì)該子空間中的所有矢量計(jì)算總距離D2=Σl=1Nd(ml,cn(l))]]>該總距離度量的變化率η=|D1-D2|/D1;步驟150將該變化率η與一預(yù)設(shè)的總距離度量變化率門限值θ作比較,如果η小于等手θ,令D1=D2,并回到步驟110;如果η大于θ,則執(zhí)行步驟160。
步驟160子集合的分裂和合并基于每一個(gè)子集合中的矢量個(gè)數(shù)NJ和每一子集合的總距離度量DTj,通過以下步驟進(jìn)行子集合的分裂和合并每一分步驟合并如果NJ<φ,那么子集合CLj就將被合并,其中心矢量將會(huì)從碼本中刪除,這里j=1,…,2k,φ是預(yù)先定義的矢量個(gè)數(shù)門限值。
第二分步驟分裂如果有一個(gè)子集合被合并,那么需要選擇一個(gè)子集合做分裂,選擇的準(zhǔn)則如下m=argmaxJ=1,....2kDTJ/NJ,]]>其中DTj=Σi=1N1d(mJ1,cJ),]]> 是該子集合中的矢量。
即根據(jù)子集合中所有矢量與中心矢量的總距離度量除以該子集合包含的矢量數(shù),得到每一子集合的平均距離度量,再將平均距離度量最大的子集合CLm進(jìn)行分裂;步驟170按步驟120的第一和第二分步驟計(jì)算出分裂得到的新的子集合的中心矢量,與原有的中心矢量一起構(gòu)成新的碼本,并設(shè)置D1=D2,回到步驟130。
通過上述聚類算法即可得到該子空間的碼本,在我們的實(shí)驗(yàn)結(jié)果中,聚類算法的精度比原算法提高了18.5%。將所有特征子空間的碼本組合在一起就得到特征碼本,將所有高斯子空間的碼本組合在一起就得到高斯碼本,用本發(fā)明上述壓縮方法得到的聲學(xué)模型及語音特征集可應(yīng)用于各種語音識(shí)別系統(tǒng)中,大大減少原聲學(xué)模型占據(jù)的存儲(chǔ)空間,并具有良好的識(shí)別性能。
以下舉例說明該壓縮方法在已知語音識(shí)別系統(tǒng)聲學(xué)模型上的應(yīng)用。
以非特定人漢語單音節(jié)語音識(shí)別系統(tǒng)采用的聲學(xué)模型為例。該系統(tǒng)的語音特征采用12階MFCC,12個(gè)一階差分MFCC和12個(gè)二階差分MFCC共36個(gè)參數(shù),聲學(xué)模型采用CDHMM,模型所占存儲(chǔ)空間為4Mbytes。首先將聲學(xué)模型的高斯空間分為12個(gè)子空間,每個(gè)子空間是3維,然后用前述的改進(jìn)的K-Means聚類算法對(duì)高斯空間的每個(gè)子空間聚類,生成7bits,128個(gè)碼字的高斯碼本,由于每個(gè)高斯碼字由一個(gè)均值矢量和一個(gè)方差矢量組成,因此每個(gè)高斯碼字所占的字節(jié)數(shù)為高斯子空間維數(shù)*2*4bytes同時(shí)為了從高斯碼本中恢復(fù)出原來的聲學(xué)模型,需要一張索引表,因此高斯碼本大小可計(jì)算如下子空間個(gè)數(shù)*高斯碼本碼字?jǐn)?shù)*每個(gè)碼字所占的字節(jié)數(shù)+索引表=12*128*6*4+216000=252864bytes系統(tǒng)的存儲(chǔ)空間從4M字節(jié)降低到了約252K字節(jié),由于本發(fā)明壓縮方法的聚類精度很高,因此采用此算法得到的高斯碼本作為聲學(xué)模型的語音識(shí)別系統(tǒng),除大大降低了系統(tǒng)所需的存儲(chǔ)空間外,實(shí)驗(yàn)結(jié)果證明系統(tǒng)的識(shí)別精度僅有微小的下降,從而可應(yīng)用于手機(jī)等嵌入式裝置中。
圖5所示是本發(fā)明實(shí)施例語音識(shí)別系統(tǒng)的識(shí)別流程圖,其識(shí)別的步驟如下。
步驟300將輸入的語音模擬信號(hào)變換為數(shù)字信號(hào);步驟310對(duì)該數(shù)字信號(hào)進(jìn)行分幀處理,提取每一幀語音的特征參數(shù),得到輸入語音的特征矢量序列;
步驟320利用特征碼本對(duì)所述特征矢量序列進(jìn)行量化編碼,得到相應(yīng)的特征碼字序列;步驟330進(jìn)行解碼運(yùn)算得到識(shí)別結(jié)果,運(yùn)算中對(duì)該特征碼字序列中的各個(gè)碼字,只需從概率表中直接查找即可找到與其具有最大匹配概率的高斯碼字。
其對(duì)應(yīng)的系統(tǒng)框圖如圖6所示,該語音識(shí)別系統(tǒng)由模數(shù)變換單元61、特征提取單元62、特征碼本63、量化編碼單元64、概率表65、解碼運(yùn)算單元66及語言模型67組成,當(dāng)然,如果只應(yīng)用于漢語單音節(jié)的語音識(shí)別,則不需要語言模型67。其中模數(shù)變換單元61,用于將輸入語音的模擬信號(hào)變換為數(shù)字信號(hào);特征提取單元62,對(duì)該數(shù)字信號(hào)進(jìn)行分幀處理,提取每一幀語音的特征參數(shù),得到其特征矢量序列;特征碼本63,可用本發(fā)明上述的壓縮方法對(duì)語音特征集壓縮得到,也可以采用其它已知的壓縮方法得到;量化編碼單元64,根據(jù)特征碼本63對(duì)輸入語音的特征矢量序列進(jìn)行量化編碼,將其轉(zhuǎn)換為特征碼字序列。假設(shè)輸入語音的特征矢量序列為{A1,A2,...,AT},其維數(shù)為X,特征碼本63中的子空間個(gè)數(shù)為Y,其維數(shù)為X/Y=M,首先將特征矢量序列也劃分為Y個(gè)子空間,每一子空間對(duì)應(yīng)于一個(gè)碼本,其在第i個(gè)特征子空間的矢量序列為{Oi1,Oi2,...,OiT},1≤i≤Y,對(duì)序列{Oi1,Oi2,…,OiT}量化編碼就是要從相應(yīng)的特征碼本{Fi1,F(xiàn)i2,....FiL}中找出相應(yīng)的具有最小距離度量的碼字序列,L為碼本中的碼字?jǐn)?shù),其步驟如下首先,計(jì)算特征矢量Oit與相應(yīng)碼本中的碼字Fij之間的距離度量Ditj=Σm=1M(Oit(m)-Fij(m))2,---1≤t≤T,1≤i≤Y,1≤j≤L]]>其中Oit(m)和Fij(m)分別是Oit和Fij的第m個(gè)分量,然后,求Oit最小度量距離的碼字索引nit=argminDitj1≤i≤L-----1≤t≤T,1≤i≤Y]]>那么Oit經(jīng)過量化編碼后對(duì)應(yīng)的碼字為 對(duì)特征矢量序列的各個(gè)子空間分別進(jìn)行量化編碼,就得到了該特征矢量序列的特征碼字序列。
概率表65,存儲(chǔ)了特征碼本63中每個(gè)碼字對(duì)應(yīng)高斯碼本(該高斯空間的碼本集可用本發(fā)明上述的壓縮方法對(duì)聲學(xué)模型壓縮得到,也可以采用其它的壓縮方法得到)中每個(gè)碼字的概率值,該概率表的生成過程如下假設(shè)第i個(gè)特征子空間的碼本為{Fi1,F(xiàn)i2,....FiL},L為該碼本的碼字個(gè)數(shù),那么X維特征空間的Y個(gè)M維子空間的碼本集為{Fl1,F(xiàn)l2,....FlL,.....,F(xiàn)Y1,F(xiàn)Y2,...,F(xiàn)YL}假設(shè)第i個(gè)高斯子空間的碼本為{Gi1,Gi2,....GiL},L為該碼本的碼字個(gè)數(shù),那么X維高斯空間的Y個(gè)M維子空間的碼本集為{Gl1,Gl2,....GlL,.....,GY1,GY2,...,GYL},假設(shè)高斯碼字Glk對(duì)應(yīng)的均值和方差矢量分別為mlk,σlk,通常在解碼算法中用到的概率值都是對(duì)數(shù)概率值,因此特征碼本中某個(gè)碼字Fij與高斯碼本中某個(gè)碼字Glk相匹配的對(duì)數(shù)概率值可用下式計(jì)算ln(12πσlk2exp(-(Fij-mlk)·(Fij-mlk)/σlk2)]]>計(jì)算所有特征碼本中的碼字與高斯碼本中的所有碼字相匹配的概率值,儲(chǔ)存起來即可得到概率表。
解碼運(yùn)算單元66,進(jìn)行解碼運(yùn)算得到識(shí)別結(jié)果,運(yùn)算中對(duì)該特征碼字序列中的各個(gè)碼字,只需從概率表中直接查找即可找到與其具有最大匹配概率的高斯碼字。
及語言模型67,在進(jìn)行連續(xù)語音輸入時(shí),可借助語言層的知識(shí)應(yīng)用提高系統(tǒng)的識(shí)別精度。
上述的模數(shù)變換單元61可用一模數(shù)變換芯片來執(zhí)行,特征提取單元62、量化編碼單元64及解碼運(yùn)算單元66的功能可由CPU來完成,而概率表65、特征碼本63及語言模型67均存儲(chǔ)在存儲(chǔ)器中。
由上可見,應(yīng)用本發(fā)明上述的識(shí)別系統(tǒng)及方法,在解碼的過程中不需要計(jì)算高斯概率,只須從預(yù)先存儲(chǔ)的概率表中查找出所需的概率值,大大減少了解碼運(yùn)算量,因而可極大地提高系統(tǒng)的識(shí)別速度。
下面通過一具體實(shí)施例,說明本發(fā)明公開的語音識(shí)別系統(tǒng)采用了本發(fā)明壓縮方法得到的特征碼本和概率表時(shí),在減少存儲(chǔ)空間和提高運(yùn)算速度上的突出效果。
還以非特定人漢語單音節(jié)語音識(shí)別系統(tǒng)為例進(jìn)行說明。在該系統(tǒng)中,語音特征采用12階MFCC,12個(gè)一階差分MFCC和12個(gè)二階差分MFCC共36個(gè)參數(shù),聲學(xué)模型采用CDHMM,模型所占存儲(chǔ)空間為4Mbytes。我們將語音特征集中的特征空間36維矢量分為12個(gè)子空間,每個(gè)子空間為3維,相應(yīng)地聲學(xué)模型的高斯空間也分為12個(gè)子空間,每個(gè)子空間也是3維,然后用前述的改進(jìn)的K-Means聚類算法分別對(duì)特征空間的每個(gè)子空間聚類,生成7bits,128個(gè)碼字的特征碼本,同樣對(duì)高斯空間的每個(gè)子空間聚類,生成7bits,128個(gè)碼字的高斯碼本。然后計(jì)算出特征碼本中每個(gè)碼字與高斯碼本中每個(gè)碼字的概率值存儲(chǔ)在概率表中,特征碼本和概率表的大小計(jì)算如下特征碼本大小子空間個(gè)數(shù)*碼本碼字?jǐn)?shù)*子空間的維數(shù)*每維占用的字節(jié)數(shù)=12*128*3*4=18432字節(jié)。
概率表大小子空間個(gè)數(shù)*特征子空間碼本碼字?jǐn)?shù)*高斯子空間碼本碼字?jǐn)?shù)*每個(gè)概率占用的字節(jié)數(shù)=12*128*128*2=393216字節(jié)。
系統(tǒng)的聲學(xué)模型可用特征碼本和概率表替代,因此系統(tǒng)的存儲(chǔ)從4M字節(jié)降低到了約412K字節(jié),從而大大降低了系統(tǒng)所需的存儲(chǔ)空間,而且還能保證系統(tǒng)的識(shí)別精度僅有微小的下降。同時(shí),由于概率表的使用大大減少了系統(tǒng)的計(jì)算量,根據(jù)實(shí)驗(yàn)結(jié)果,與已有語音識(shí)別系統(tǒng)相比,本發(fā)明識(shí)別系統(tǒng)的識(shí)別速度可以提高50%以上。
本發(fā)明識(shí)別系統(tǒng)在存儲(chǔ)空間和運(yùn)算速度等性能上的大幅提升,使?jié)h語全音節(jié)的語音識(shí)別在手機(jī)等嵌入式設(shè)備上的應(yīng)用成為可能,將其應(yīng)用于其它裝置上也能在優(yōu)化系統(tǒng)的性能,提高系統(tǒng)的反應(yīng)速度。
權(quán)利要求
1.一種語音識(shí)別系統(tǒng),至少包括模數(shù)變換單元,將輸入語音的模擬信號(hào)變換為數(shù)字信號(hào);特征提取單元,對(duì)該數(shù)字信號(hào)進(jìn)行分幀處理,提取每一幀語音的特征參數(shù),得到其特征矢量序列;特征碼本,由一定數(shù)量的碼字組成;量化編碼單元,根據(jù)特征碼本將輸入語音的特征矢量序列轉(zhuǎn)換為特征碼字序列;概率表,存儲(chǔ)了特征碼本中每個(gè)碼字對(duì)應(yīng)高斯碼本中每個(gè)碼字的概率值;以及解碼運(yùn)算單元,對(duì)該特征碼字序列進(jìn)行解碼運(yùn)算得到識(shí)別結(jié)果,運(yùn)算中對(duì)該特征碼字序列中的各個(gè)碼字,從概率表中直接查找與其具有最大匹配概率的高斯碼字。
2.如權(quán)利要求1所述的語音識(shí)別系統(tǒng),其特征在于還包括一語言模型。
3.如權(quán)利要求1所述的語音識(shí)別系統(tǒng),其特征在于所述該量化編碼單元根據(jù)以下步驟將輸入語音的特征矢量序列轉(zhuǎn)換為特征碼字序列將所述特征矢量序列劃分為與所述特征碼本相同數(shù)量的子空間,每一子空間對(duì)應(yīng)于一個(gè)碼本;計(jì)算各子空間中所有特征矢量與相應(yīng)碼本中的各碼字之間的距離度量,將與該特征矢量具有最小距離度量的碼字作為所述特征碼字序列中對(duì)應(yīng)該特征矢量的碼字;將所述特征矢量序列各個(gè)子空間所有矢量所對(duì)應(yīng)的碼字按原矢量順序組合起來,即得到對(duì)應(yīng)的特征碼本碼字序列。
4.如權(quán)利要求1所述的語音識(shí)別系統(tǒng),其特征在于所述概率表是通過以下步驟生成的計(jì)算高斯碼本中各碼字對(duì)應(yīng)的均值和方差矢量;利用上述均值和方差矢量,計(jì)算所述特征碼本中各個(gè)碼字與高斯碼本中各個(gè)碼字相匹配的對(duì)數(shù)概率值;將特征碼本中的所有碼字與高斯碼本中的所有碼字相匹配的概率值儲(chǔ)存起來即可得到概率表。
5.一種語音識(shí)別方法,包括以下步驟將輸入的語音模擬信號(hào)變換為數(shù)字信號(hào);對(duì)該數(shù)字信號(hào)進(jìn)行分幀處理,提取每一幀語音的特征參數(shù),得到輸入語音的特征矢量序列;利用特征碼本對(duì)所述特征矢量序列進(jìn)行量化編碼,得到相應(yīng)的特征碼字序列;進(jìn)行解碼運(yùn)算得到識(shí)別結(jié)果,運(yùn)算中對(duì)該特征碼字序列中的各個(gè)碼字,從概率表中直接查到與其具有最大匹配概率的高斯碼本中的高斯碼字。
6.如權(quán)利要求5所述的語音識(shí)別方法,其特征在于所述的特征碼本是由語音特征集、所述高斯碼本是由聲學(xué)模型通過以下步驟壓縮得到的先將聲學(xué)模型和語音特征集劃分為若干子空間,再對(duì)每個(gè)子空間的所有矢量進(jìn)行聚類得到一碼本,各子空間碼本生成的步驟包括(a)將該子空間所有矢量劃分到子集合中,計(jì)算該子集合的中心矢量,得到初始化碼本;(b)將所有子集合一分為二,生成新的中心矢量以合成該子空間的新碼本;(c)分別找到與該子空間各矢量距離度量最小的中心矢量,將各矢量分配到與其距離度量最小的中心矢量對(duì)應(yīng)的子集合中;(d)計(jì)算出該子空間所有矢量的總距離度量變化率;(e)將該變化率與一預(yù)設(shè)變化率的門限值比較;若該變化率小于或小于等于該門限值,再判斷是否已獲得預(yù)定比特?cái)?shù)的碼本,若是,則結(jié)束,若否,則執(zhí)行步驟(b);若該變化率大于等于或等于該門限值,則執(zhí)行步驟(f);(f)基于各子集合中的矢量個(gè)數(shù)和平均距離度量,對(duì)某些子集合進(jìn)行合并和分裂;以及(g)將分裂得到的子集合的中心矢量作為代表該子集合的碼字,得到該子空間的新碼本,并回到步驟(c)。
7.如權(quán)利要求5所述的語音識(shí)別方法,其特征在于所述的概率表是通過以下步驟生成計(jì)算高斯碼本中各碼字對(duì)應(yīng)的均值矢量和方差矢量;利用上述均值矢量和方差矢量,計(jì)算特征碼本中某個(gè)碼字與高斯碼本中某個(gè)碼字相匹配的對(duì)數(shù)概率值;將特征碼本中的所有碼字與高斯碼本中的所有碼字相匹配的概率值儲(chǔ)存起來即可得到概率表。
8.如權(quán)利要求6所述的語音識(shí)別方法,其特征在于所述步驟(e)中,在判斷是否已獲得預(yù)定比特?cái)?shù)的碼本前,還有一將新的總距離度量值賦與原總距離度量值的步驟;且在所述步驟(g)中,在回到步驟(c)之前,還有一將新的總距離度量值賦與原總距離度量值的步驟。
9.如權(quán)利要求6所述的語音識(shí)別方法,其特征在于所述的合并是指將包含矢量個(gè)數(shù)小于某一預(yù)設(shè)值的各子集合的中心矢量從碼本中刪除。
10.如權(quán)利要求6所述的語音識(shí)別方法,其特征在于所述的分裂是指一個(gè)子集合被合并后,先計(jì)算各子集合中所有矢量與該子集合中心矢量的距離之和,再計(jì)算該和與該子集合的矢量個(gè)數(shù)的比值,將所得比值最大的子集合分為二個(gè)子集合,同時(shí)生成兩個(gè)新的中心矢量。
全文摘要
本發(fā)明公開一種用于語音識(shí)別系統(tǒng)的特征矢量集的壓縮方法,在對(duì)語音特征矢量集聚類得到碼本的過程中,增加了根據(jù)子集合中矢量數(shù)及矢量的總距離度量來動(dòng)態(tài)合并和分裂子集合的步驟,減小了聚類后集合中矢量與其對(duì)應(yīng)的碼字的距離度量總和,提高了聚類算法的精度,將本發(fā)明方法壓縮后的碼本應(yīng)用于語音識(shí)別系統(tǒng)中,可在保證語音系統(tǒng)識(shí)別性能的同時(shí),大大降低了系統(tǒng)的存儲(chǔ)量。本發(fā)明還公開一種語音識(shí)別系統(tǒng),用特征碼本和概率表代替聲學(xué)模型,在解碼的過程中不需要計(jì)算高斯概率,只須從預(yù)先存儲(chǔ)的概率表中查找出所需的概率值,大大減少了解碼運(yùn)算量,因而可極大地提高系統(tǒng)的識(shí)別速度。
文檔編號(hào)G10L15/00GK1455389SQ0214868
公開日2003年11月12日 申請日期2002年11月15日 優(yōu)先權(quán)日2002年9月30日
發(fā)明者潘接林, 韓疆, 劉建, 顏永紅, 庹凌云, 張建平 申請人:中國科學(xué)院聲學(xué)研究所, 北京中科信利技術(shù)有限公司