文/韓博
關(guān)鍵詞識(shí)別技術(shù)是隨著語(yǔ)音識(shí)別技術(shù)的不斷發(fā)展進(jìn)步而發(fā)展起來(lái)的。隨著語(yǔ)音技術(shù)的不斷發(fā)展,人們?cè)谡Z(yǔ)音學(xué)、語(yǔ)言學(xué)上都積累了大量的知識(shí),關(guān)鍵詞識(shí)別才從語(yǔ)音識(shí)別中分離了出來(lái),并應(yīng)用在不同于語(yǔ)音識(shí)別的領(lǐng)域。由于語(yǔ)音識(shí)別有著更高的準(zhǔn)確率,所以在有著豐富資源而可以運(yùn)行語(yǔ)音識(shí)別的一些語(yǔ)言中,關(guān)鍵詞識(shí)別通常是在經(jīng)過(guò)語(yǔ)音識(shí)別的結(jié)果上進(jìn)行的。即,使用語(yǔ)音識(shí)別器將音頻語(yǔ)句轉(zhuǎn)換為文本,然后利用文本檢索技術(shù)找出關(guān)鍵詞的位置,返回相關(guān)語(yǔ)音段。利用關(guān)鍵詞識(shí)別,可以實(shí)現(xiàn)信息的快速檢索,在商業(yè)領(lǐng)域的語(yǔ)音內(nèi)容分析以及國(guó)家安全監(jiān)控中都有廣泛的用途。
在與內(nèi)容無(wú)關(guān)的關(guān)鍵詞識(shí)別系統(tǒng)中,采用HMM算法的實(shí)現(xiàn)結(jié)構(gòu)如圖1所示。該解碼器由關(guān)鍵詞模型和垃圾模型的并行網(wǎng)絡(luò)組成。其中,關(guān)鍵詞模型由關(guān)鍵詞語(yǔ)音訓(xùn)練而成,垃圾模型由不包含關(guān)鍵詞的語(yǔ)音訓(xùn)練而成。在解碼階段,關(guān)鍵詞模型和垃圾模型構(gòu)成一個(gè)自由循環(huán)網(wǎng)絡(luò),然后使用自動(dòng)語(yǔ)音識(shí)別器檢測(cè)測(cè)試語(yǔ)句中的關(guān)鍵詞。
在語(yǔ)音識(shí)別中,聲學(xué)模型被用來(lái)將波形文件中的聲音序列映射為音素或其他組成語(yǔ)音的語(yǔ)言學(xué)單元。因此,在基于HMM的關(guān)鍵詞識(shí)別中,聲學(xué)模型也是必不可少的部分。一個(gè)經(jīng)過(guò)良好訓(xùn)練的關(guān)鍵詞模型能夠精確匹配相關(guān)的關(guān)鍵詞同時(shí)拒絕其他的關(guān)鍵詞和垃圾語(yǔ)音,本文使用目前主流的高斯混合模型(Gaussian Mixture Model, GMM)-HMM作為聲學(xué)模型。
在參考說(shuō)話人識(shí)別的策略時(shí),首先需要利用所有待識(shí)別關(guān)鍵詞來(lái)訓(xùn)練一個(gè)UBM,然后采用自適應(yīng)的方法得到每個(gè)關(guān)鍵詞的模型,從而獲得一個(gè)相對(duì)穩(wěn)健的模型。模型的訓(xùn)練具體流程如下:
(1)采用所有關(guān)鍵詞的語(yǔ)音數(shù)據(jù)訓(xùn)練一個(gè)GMM模型表示的UBM;
(2)將這個(gè)UBM的GMM克隆到每個(gè)關(guān)鍵詞的每個(gè)狀態(tài)上作為其初始模型;
(3)用各關(guān)鍵詞自身的語(yǔ)音數(shù)據(jù),采用MAP算法更新每個(gè)關(guān)鍵詞的GMM參數(shù);
(4)用大量的背景語(yǔ)音數(shù)據(jù),采用前向-后向算法訓(xùn)練垃圾模型;
(5) 將所有的關(guān)鍵詞模型及垃圾模型拼成一個(gè)如圖1所示的解碼網(wǎng)絡(luò)用于關(guān)鍵詞識(shí)別。
在UBM訓(xùn)練階段,通常使用最大似然(Maximum Likelihood, ML)作為評(píng)價(jià)準(zhǔn)則來(lái)得到作為UBM的GMM模型。該模型由權(quán)重,均值和協(xié)方差矩陣參數(shù)描述,表示為:
M代表高斯元素的數(shù)量。在ML準(zhǔn)則下,期望最大化 (Expectation Maximization, EM) 算法被用來(lái)迭代估計(jì)模型參數(shù),得到更新的模型,第k+1次迭代更新公式如下:
等式左邊分別代表更新后的權(quán)重,均值和協(xié)方差矩陣,N代表總的語(yǔ)音幀數(shù),cink表示第k次迭代中第i個(gè)高斯在第n個(gè)語(yǔ)音幀中所占的比例,又稱為高斯占有率。其計(jì)算公式如下:
Nik代表在第k次迭代中屬于第i個(gè)高斯的語(yǔ)音幀數(shù),該值由第i個(gè)高斯在所有語(yǔ)音幀中的高斯占有率求和得到,公式如下:
在通過(guò)EM算法獲得UBM模型之后,將這個(gè)模型克隆到關(guān)鍵詞的各個(gè)狀態(tài)中作為其初始模板,然后采用前后向算法來(lái)更新各關(guān)鍵詞的模型參數(shù)。對(duì)于模型參數(shù)的更新策略,我們采用文中介紹的前向后向MAP算法重新估計(jì)模型參數(shù),公式(4)為其更新公式。該公式中更新的參數(shù)描述了第s個(gè)HMM狀態(tài)的第i個(gè)GMM分量。其中,csink表示第k次迭代中第s個(gè)HMM狀態(tài)的第i個(gè)GMM分量在第n幀中所占的比例,其表達(dá)式如下:
一般應(yīng)用中,MAP算法僅使用一次迭代即可。在本文中對(duì)該算法使用了多次迭代方法以提高系統(tǒng)性能。
實(shí)驗(yàn)使用藏語(yǔ)數(shù)據(jù)集。訓(xùn)練集和測(cè)試集包含大約1小時(shí)的語(yǔ)音。類似于漢語(yǔ),藏語(yǔ)也是單音節(jié)的語(yǔ)言,有許多的同音異體字。本實(shí)驗(yàn)選擇了18個(gè)短語(yǔ)作為關(guān)鍵詞,每個(gè)關(guān)鍵詞的樣本數(shù)量在15到30之間變化,關(guān)鍵詞的長(zhǎng)度在300到1000毫秒之間。
本文使用F1作為評(píng)價(jià)準(zhǔn)則,它是召回率(Recall)和準(zhǔn)確率(Acc)的折衷,定義為:
其中:
#hits表示系統(tǒng)正確識(shí)別的單詞數(shù),#keyword代表測(cè)試集中包含的單詞數(shù),#recall代表系統(tǒng)返回的所有單詞數(shù)。
圖1:關(guān)鍵詞識(shí)別系統(tǒng)結(jié)構(gòu)圖
圖2:迭代次數(shù)對(duì)F1的影響
本文使用了兩種參數(shù)進(jìn)行實(shí)驗(yàn)性能的對(duì)比:43維的傳統(tǒng)聲學(xué)參數(shù)(39維的PLPs和4維音高參數(shù))和BN特征。
3.1.1 傳統(tǒng)聲學(xué)特征
本文提取聲學(xué)特征的步驟如下:首先,使用隱馬爾科夫模型工具包提取PLP特征。語(yǔ)音信號(hào)經(jīng)去直流、預(yù)加重(因子為0.97),經(jīng)由幀寬20ms,幀移10ms的漢明窗抽取PLP,并用話音激活檢測(cè)去除非語(yǔ)音幀。最后經(jīng)倒譜均值方差規(guī)整處理后的0~12維PLPs及其一階、二階差分構(gòu)成最終評(píng)測(cè)系統(tǒng)的39維PLPs。然后,使用語(yǔ)音信號(hào)的工具包提取音高特征。最后,將這些特征組合成43維的聲學(xué)特征。
3.1.2 BN特征提取
由于缺乏標(biāo)注的語(yǔ)音,本實(shí)驗(yàn)采用跨語(yǔ)種的訓(xùn)練方法,使用中文語(yǔ)料訓(xùn)練的一個(gè)BN聲學(xué)模型來(lái)提取藏語(yǔ)語(yǔ)料的BN特征。BN聲學(xué)模型的訓(xùn)練方法如下:首先,使用1000小時(shí)的中文語(yǔ)料建立一個(gè)基線GMM-HMM。該GMM-HMM包含6004個(gè)綁定狀態(tài),每個(gè)狀態(tài)的GMM包含60個(gè)高斯;然后,使用該GMM-HMM解碼訓(xùn)練語(yǔ)料獲得訓(xùn)練BN神經(jīng)網(wǎng)絡(luò)的標(biāo)注;最后,訓(xùn)練一個(gè)內(nèi)容相關(guān)的5隱層BN神經(jīng)網(wǎng)絡(luò)以獲取BN特征。類似于輸入特征,BN層的節(jié)點(diǎn)數(shù)被設(shè)為43,其余隱層為2048。輸入特征由11幀PLP特征串聯(lián)而成,由此確定輸入節(jié)點(diǎn)數(shù)為473。輸出層節(jié)點(diǎn)數(shù)與綁定狀態(tài)數(shù)一致。訓(xùn)練時(shí)首先是常規(guī)的預(yù)訓(xùn)練以生成RBM,然后采用標(biāo)準(zhǔn)的誤差反向傳播(Back Propagation, BP)算法微調(diào)整個(gè)網(wǎng)絡(luò)參數(shù)。在BP過(guò)程中,mini-batch參數(shù)設(shè)為1024。BN網(wǎng)絡(luò)收斂之后,BN層的線性輸出即為BN特征。
本文進(jìn)行了三組實(shí)驗(yàn):第一組實(shí)驗(yàn)比較在BN特征下,兩種不同的建模方法對(duì)關(guān)鍵詞識(shí)別系統(tǒng)的性能影響,第一種方法是直接使用關(guān)鍵詞樣本應(yīng)用前向后向算法訓(xùn)練關(guān)鍵詞對(duì)應(yīng)的HMM模型,第二種采用的是本文推薦的先訓(xùn)練一個(gè)UBM模型,然后再通過(guò)MAP算法更新關(guān)鍵詞模型參數(shù)的方法。第二組實(shí)驗(yàn)研究了MAP的不同迭代次數(shù)對(duì)系統(tǒng)性能的影響。第三組實(shí)驗(yàn)研究了在MAP方法中使用不同特征對(duì)系統(tǒng)性能的影響。這三組實(shí)驗(yàn)均在HMM框架下運(yùn)行。
其中,本實(shí)驗(yàn)研究使用MAP方法時(shí)關(guān)鍵詞模型不同迭代次數(shù)對(duì)系統(tǒng)的性能的影響,實(shí)驗(yàn)結(jié)果如圖2所示。隨著迭代次數(shù)的不斷增加,系統(tǒng)性能也不斷提升。迭代15次之后F1曲線比較平緩。
本文研究了基于HMM的關(guān)鍵詞識(shí)別,提出了采用說(shuō)話人識(shí)別中廣泛應(yīng)用的MAP方法解決關(guān)鍵詞樣本數(shù)量不足的問(wèn)題。實(shí)驗(yàn)結(jié)果顯示使用該方法能夠大幅提升系統(tǒng)性能。本文還研究了使用跨語(yǔ)種的BN網(wǎng)絡(luò)提取的BN特征作為輸入來(lái)替代傳統(tǒng)的PLP參數(shù),在藏語(yǔ)的測(cè)試數(shù)據(jù)庫(kù)上取得了明顯的性能提升。