摘要:關鍵詞確認是語音識別中一個重要的研究方向。對于關鍵詞確認系統(tǒng)來講,廢料模型的結構和類型對整個系統(tǒng)的性能有很大的影響。文中提出了一種基于音節(jié)格的廢料模型。實驗表明,與傳統(tǒng)的基于音素類的廢料模型相比,關鍵詞確認率有了很大的提高。
關鍵詞:關鍵詞確認;隱馬爾可夫模型;廢料模型;音素類;音節(jié)格
關鍵詞確認(Keyword Spotting , KWS)是語音識別中一個重要的研究方向,也是近幾年來在很多行業(yè)頗受重視的一個研究領域。一般來說,在說話人的正常話語中除了包含一些關鍵性詞匯外還可能包括一些非話語的咳嗽聲、呼吸聲、關門聲、音樂聲和背景噪聲等。在說話人的連續(xù)語音中確認出關鍵性的詞匯, 這就是關鍵詞確認技術[1]。相對于大詞匯量的識別系統(tǒng),關鍵詞確認系統(tǒng)既精確,計算量又小,而且對于實際的語音數(shù)據(jù)有較大的彈性,因此在監(jiān)聽、通信、語音輸入等方面都有著很好應用前景[2]。
關鍵詞確認重點之一是代表非關鍵詞語音的模型,不論識別系統(tǒng)的方法怎樣,大部分是采用廢料模型。當采用一般的模型作為廢料模型時,識別器傾向于把它們誤識為關鍵詞,從而降低了確認率。另一方面,對每個詞都構建廢料模型又是非常不現(xiàn)實的,而且使識別器的結構更復雜化,降低了系統(tǒng)的靈活性。兩者之間的平衡點就是使用不同類型和數(shù)量的廢料模型,這樣即使想要保證相當高的確認率,計算時間也是可以接受的。本文就這點提出了基于音節(jié)格的廢料模型。實驗結果顯示,與傳統(tǒng)的基于音素類的廢料模型相比,系統(tǒng)的性能有了很大的提高。
1 廢料模型的由來
關鍵詞確認是在非受限語音信號中,確認出詞表中所包含的“關鍵詞”,拒絕詞表外的“非關鍵詞”,對語音內容加以理解,這里的關鍵詞詞匯表可以根據(jù)系統(tǒng)所應用的領域來確定。設已知一個觀察值序列O=o1,o2,…oT判斷其中是否存在一個關鍵詞M,其HMM模型所包含的狀態(tài)為{q1,…,qN},KWS即為把O用一條含有M的路徑來描述所得的匹配問題,這里定義如下方法計算在語音中存在關鍵詞M的評分S(M|O),即
式中,b*為關鍵詞在語音中的最佳起始點;e*為最佳結束點;O*為與之相對應的關鍵詞M的最佳狀態(tài)序列,即在判斷是否存在關鍵詞M時,首先在語音中找到與該關鍵詞最匹配的語音段,然后用該關鍵詞在該語音段上經(jīng)長度歸正后的后驗概率值作為評分來判斷關鍵詞的存在與否。b*、 e*和Q*可按下式求得
若起始點b*和結束點e*已知,可用Viterbi算法求出最佳狀態(tài)鏈Q*={qb,…,qe}。因此若窮舉所有可能的起始點b和結束點e,并根據(jù)上述式子必然可求出S(M|O),根據(jù)S(M|O))的值來判斷是否存在關鍵詞M。
當然,用窮舉的方法來求取起始點b和結束點e計算量非常大,在實際使用中是根本無法實現(xiàn)的。因此往往采用在一次搜索過程的同時確定b*、e*和Q*, 即在觀察序列O上通過引入廢料狀態(tài)qG定義關鍵詞的擴充模型 。它所包含的狀態(tài)為{qG,qb,…qe,qG},用廢料狀態(tài)qG表示非關鍵詞語音。使用擴充模型在整個觀察序列上用Viterbi算法進行搜索,可以得到對應 的最佳狀態(tài)序列:
根據(jù)這一狀態(tài)序列可以同時確定b*、e*和Q*。這里的廢料狀態(tài)就是由建立廢料模型得到的。可見廢料模型的建立對于區(qū)分關鍵詞和非關鍵詞語音是不可缺少的。
2 基于音節(jié)格的廢料模型
把常見的非關鍵詞按照其相應的漢語音節(jié)首字母的順序排列,并通過訓練分別對其建模,就形成了一個音節(jié)格。在音節(jié)格中每一格內存放一個非關鍵詞語音對應的音節(jié)。
一般來說,在說話人的連續(xù)語音中除了一些關鍵性的詞匯外還包括許多詞表外詞,例如:“請問,王艷在嗎?”,那么對于一個基于人名的關鍵詞確認系統(tǒng)來講,“王艷”是關鍵詞,“請、問、在、嗎”這四個字都屬于詞表外詞,即非關鍵詞語音,而對于這四個字對應的音節(jié)在音節(jié)格中的存放順序為ma, qing, wen, zai。漢語由21個聲母和38個韻母組成約400個左右的無調音節(jié),而針對關鍵詞確認系統(tǒng)所應用領域的不同,在說話者的自然輸入語音中所常見的非關鍵詞是有限的,也是可以預測的,所以可以對這些常見的詞表外詞建立相應的廢料模型。本文所涉及的基于人名的關鍵詞確認系統(tǒng)是應用在查詢控制方面的,常見的非關鍵詞語音有ni, hao, wo, xiang, zhao, qing, wen, zai, ma等等,對這些非關鍵詞音節(jié)建立廢料模型,然后把與其相對應的音節(jié)按順序存放在音節(jié)格中。
3 實驗和討論
3.1 實驗平臺
本文所采用的語音數(shù)據(jù)庫是自行采集的,該數(shù)據(jù)庫是專門錄制的,包含20個不同人名的數(shù)據(jù)庫,參與訓練的共有20人,其中男性12人,女性8人,年齡分布在14歲到35歲之間,選取 15人分別說20個不同的人名,來訓練20個關鍵詞的HMM模型,另外5人針對每個關鍵詞錄制一句包含關鍵詞的句子作為測試數(shù)據(jù)。數(shù)據(jù)庫錄制的是采樣率為11025HZ,16位量化和單聲道的語音信號。
確認系統(tǒng)的識別基元使用無跨越從左向右的連續(xù)HMM模型,每個HMM有4個輸出狀態(tài),每個狀態(tài)有128個高斯分量。對于關鍵詞模型采用以關鍵詞為識別基元。形成的語法網(wǎng)絡圖由關鍵詞模型、27個音節(jié)模型和一個背景噪音模型構成,其結構如圖1所示。圖中的Keyword1~KeywordN代表N(N值為20)個關鍵詞模型,Garbage1~GarbageL代表M(M值為27)個廢料模型。
對輸入的語音信號根據(jù)短時能量和短時平均過零率進行音節(jié)切分,然后提取Mel頻率倒譜系數(shù)(MFCC)作為特征矢量,為了使特征矢量更好地表征語音信號之間前后相關特性,選用12維 MFCC和12維一階差分 MFCC構成特征矢量。在進行關鍵詞確認時,對輸入語音按廢料模型、關鍵詞模型的順序進行匹配,計算匹配得分。在進行匹配時先與廢料模型匹配,并計算每個匹配的得分,直到得分低于某個閾值,說明當前的語音是非廢料語音,此時就應與每個關鍵詞模型逐個進行匹配,并結合基于特征矢量信息的聲學置信度得到第 幀特征在每個狀態(tài)的置信度,從而對非關鍵詞語音進行有效拒識,得出最終的確認結果。
3.2 測試結果
以數(shù)據(jù)庫中后五個人錄制的數(shù)據(jù)作為測試數(shù)據(jù),對于基于音素類的垃圾模型有7個(見表1),包括代表聲母的一個模型Hcon和代表韻母的6個模型(Ha,Ho,He,Hi,Hu和Hv)。
表1:基于音素類的垃圾模型
本文中基于音節(jié)格的廢料模型有27個,可以比較一下對于不同類型和數(shù)量的廢料模型在不同的虛報率下系統(tǒng)的確認率和確認時間如表2所示。表中的PD代表確認率,F(xiàn)AR代表虛報率(平均每個關鍵詞在一小時內被虛報的次數(shù)),Av.comp.Time代表平均確認每個輸入語音所需時間。
表2:不同類型廢料模型系統(tǒng)的確認率
從表中可以看到,就時間來看只差了3.01秒,這是正常的,畢竟音素類只有7個廢料模型,而音節(jié)格有27個廢料模型,這個時間差也是可以接受的;最重要的是確認率,基于音節(jié)格的廢料模型在虛報率數(shù)量為6時確認率為0.84,而基于音素類的廢料模型在虛報率數(shù)量為10時確認率為0.68,綜合來看,基于音節(jié)格的廢料模型是比較好的選擇。
4結論
本文針對關鍵詞確認系統(tǒng)中廢料模型的結構和類型進行了研究,在訓練過程中對常用的非關鍵詞語音建立基于音節(jié)格的HMM,在確認過程中聯(lián)合似然得分和置信度得分,與傳統(tǒng)的基于音素類的廢料模型相比,對于不同的虛報率關鍵詞的確認率有了很大的提高。從實驗結果中也可以看到,雖然確認率相對來講有了提高,但是只達到了0.84,所以對于廢料模型的結構還有待更深入細致的研究。
參考文獻
[1]韓紀慶,張磊,鄭鐵然。語音信號處理。北京:清華大學出版社,2006
[2]李治柱,吳亞棟?;贖MM的關鍵詞識別系統(tǒng)。計算機工程,2004;30(7),130~132