摘 要:為了克服在Matlab中語音處理工具箱的不足,設計出基于Matlab圖形用戶界面(GUI)的說話人識別測試平臺。系統框架設計:特征參數采用美爾倒譜系數及差分美爾倒譜系數,識別模型采用矢量量化模型;人機交互實現:設置各控件屬性,通過回調函數實現系統功能;測試實例:測試人數50人,識別率為96%,表明了該測試平臺的有效性。該平臺的特點是:功能較為完整,可設置參數,如:人數、字數、幀長等,方便用戶實驗,具有良好的實用性、可交互性等。
關鍵詞: Matlab圖形用戶界面; 說話人識別; 測試平臺; 回調函數
中圖分類號: TN911?34; TP39 文獻標識碼: A 文章編號: 1004?373X(2013)08?0059?02
0 引 言
說話人識別(Speaker Recognition,SR)是語音識別的一種,是通過話音區分說話人,從而進行身份鑒別與認證的技術。與其他生物認證技術如指紋識別、掌型識別、虹膜識別等相比,具有獨特的方便性、經濟性和準確性,并逐漸成為人們日常生活和工作中重要且普及的安全驗證方式[1]。
Matlab是使用最為廣泛的科學計算軟件之一,在說話人識別中有著廣泛應用。但在實際應用中仍存在如下不足:其語音處理工具箱僅僅提供了基本函數,并未針對一類問題給出一整套設計方案;一般Matlab控制臺程序以命令形式調用語音處理工具箱函數,這種形式不像人機交互界面那樣直觀,也不易數據處理。正因為這些困難與不足,有必要設計基于Matlab GUI的說話人識別測試平臺[2]。
1 GUI說話人識別測試平臺實現
1.1 系統框架設計
說話人識別系統框圖如圖1所示,主要由以下模塊組成:
(1)預處理模塊:完成對語音信號的采樣與量化、預加重處理、加窗、端點檢測等;
(2)特征提取模塊:測試音和訓練音都必須經特征提取,提取出表征說話人個性的語音信號特征,以方便后續處理;
(3)參考模板模塊:對模型參數進行估計和優化,建立說話人模型;
(4)模式匹配模塊:測試音經特征提取,將提取出的特征參數和訓練時產生的模型進行匹配,計算匹配距離;
(5)判決模塊:根據匹配距離大小,依照某種相似性準則形成判決[3]。
對上面5個模塊編寫程序,在程序中調用了語音處理工具箱中的enframe,melcepst,melbankm等函數[4]。對所有程序進行優化和整合,設計出說話人識別系統測試平臺。
1.2 人機交互界面設計
說話人識別測試平臺主界面如圖2所示。設置各控件屬性,通過回調函數實現系統功能。
1.2.1 控件屬性值設置
圖2主界面中,包括如下控件類型:Static Text,Push Button,Pop?up menu,Radio?button,Extid text,Mpanel等。表1為各控件類型的主要屬性設置情況[5]。
1.2.2 系統各部分功能的實現
主界面主要包括錄音、測試及結果分析3部分。
(1)錄音部分:首先設置語音采樣點數,然后錄音,可通過PLOT按鈕觀看錄制的語音波形,或通過PLAY按鈕聽錄制語音的聲音[6],以保證錄制語音質量。錄音按鈕回調函數為:
function pushbutton9_Callback(hObject, eventdata, handles)
(2)測試部分:首先選擇人數、發音的字數、幀長、幀移、是否選擇有端點檢測,然后選擇采用的語音特征參數是MFCC或MFCC+ΔMFCC,通過The Path of Train 按鈕,輸入訓練語音路徑,以輸入訓練語音,再按TRAIN按鈕,當Edit text框中顯示training has been completed表明訓練已完成。再按The Path Of Test按鈕,輸入測試語音路徑,以輸入測試語音,再按TEST按鈕以進行測試,其測試結果顯示在Edit text框中,最后識別率顯示在Identify rate窗口。訓練按鈕回調函數為:
function train_Callback(hObject, eventdata, handles)
(3)結果分析部分:對幾個影響識別率的因素進行了分析。主要因素有:幀長、人數、字數、MFCC階數、是否采用端點檢測等,其結果和理論結論一致。
表1 控件類型的主要屬性設置
2 測試實例
測試實例參數設置及測試結果如圖3所示。特征參數采用MFCC+差分MFCC;識別模型為矢量量化模型;測試環境為實驗室環境。人數為50人,每個人訓練、測試時分別說12個漢字,中文普通話。識別率窗口顯示系統識別率為96%,效果較好,表明了該測試平臺的有效性。
3 結 語
本文所設計的基于Matlab GUI說話人識別測試平臺,充分利用Matlab軟件中的GUI技術及語音處理工具箱中內置函數,功能完善,包括錄音、測試及結果分析部分。該平臺提供了良好的人機交互環境,便于用戶在各種參數條件下的測試實驗,例如用戶可方便設置采樣點數、人數、字數、及幀長、幀移、MFCC的階數等測試條件,系統識別率高,為進一步開發說話人識別系統提供一定的仿真環境及參考價值。
參考文獻
[1] 吳朝暉.說話人識別模型與方法[M].北京:清華大學出版社,2009.
[2] 秦輝.基于Matlab GUI的預測控制仿真平臺設計[J].系統仿真學報,2006,18(10):2778?2779.
[3] 甄斌,吳璽宏,劉志敏.語音識別和說話人識別中各倒譜分量的相對重要性[J].北京大學學報:自然科學版,2001,37(3):371?378.
[4] 陳煒杰.噪聲環境下的說話人識別技術研究[D].杭州:浙江工業大學,2008.
[5] 鄭阿奇.Matlab實用教程[M].北京:電子工業出版社,2005.
[6] 徐明遠,劉增力.Matlab仿真在信號處理中的應用[M].西安:西安電子科技大學出版社,2007.