摘 要:文章主要介紹了對不同來源的語音,如手機揚聲器、電視、電腦、收音機、室內、室外、二次錄音等來源的語音識別的方法。采用雙門限端點檢測的方法選取一段連續的語音的起點和終點,使用Matlab進行多尺度一維小波分解,然后求得每一層的能量,把能量在各層分布的百分比作為特征參數進行識別。語音來源的識別,在公安、司法、語音識別等有重要的應用。
關鍵詞:小波變換;語音來源識別;Matlab
1 引言
語音信號的來源是多式多樣的,可以來源于電視、電話、麥克風、收音機、室內、室外等。這些不同來源的語音信號會表現出不同的特征,有的比較明顯的人耳可以輕松地區別出來,而有的人耳是很難分辨出來的。據調查,國內外針對語音識別的研究多集中在聲紋識別、聲源位置識別等方面,在語音來源識別方面研究較少。語音來源識別主要找尋區別不同來源聲音的方法,如區別一次錄音和二次錄音,區別來源于室內、室外的聲音,區別來源于電視、電話、收音機、電腦等的聲音。
語音來源識別的一個根本問題是合理的選用特征。選擇的標準應體現對于不同來源的聲音,相應特征間的距離應大,而對于相同來源的聲音,彼此間距離應小。選取特征應該盡量和語音的內容無關,這樣才能區別不同來源的語音信號。
語音來源識別和語音識別在本質上是類似的,都是一種模式識別的過程。主要包括語音信號預處理、特征提取、特征建模(建立參考模式庫)、模式匹配等幾個功能模塊。
預處理過程包括預濾波、采樣和量化、端點檢測等,由于本系統的研究過程中,使用錄音筆錄制好.wav文件,預濾波、采樣和量化都已經完成,所以預處理只需要進行端點檢測即可。經過預處理的語音數據就可以進行特征參數提取。在訓練階段,獲取不同來源的語音數據的特征參數,為每一種來源的語音得到一個模型,建立模板庫。在識別階段,測試語音信號經過相同的通道得到語音參數,生成測試模板,與參考模板進行匹配,將匹配距離最小的作為識別結果。
2 語音信號輸入
由于我們研究的目的是識別不同來源的語音,因此我們先用錄音筆錄制不同來源的語音信號。將錄制的聲音文件進行格式轉化成.wav格式。然后直接利用MATLAB的wavread(file)函數讀入語音信號。
3 端點檢測
本系統的預處理過程主要就是進行端點檢測,無論是在訓練還是識別階段,都要先采用端點檢測算法確定語音的起點和終點,以獲得一段連續的有聲段進行分析。語音端點檢測是一個重要環節,其算法的優劣會直接影響后面特征參數的提取,從而影響整個系統的優劣。端點檢測我們采用的是短時能量短時過零率雙門限端點檢測。
雙門限端點檢測就是進行兩級檢測,即短時能量檢測和短時過零率檢測。開始檢測前,需要設定4個門限,分別為短時能量和短時過零率設置一個高門限和一個低門限:EH、EL和ZH、ZL。語音端點檢測可分為四部分:靜音段、過度段、語音段、結束段。在靜音段,如果能量或過零率有一個超過了其低門限,則認為進入了過度段。在過度段,兩個參數的其中一個超越了高門限才被認為是進入語音段。當其中一個參數降至低門限則認為進入結束段。
在雙門限端點檢測中4個門限的設定很重要,這將直接影響端點檢測的結果。本系統中EH、EL、ZH、ZL的取值分別為:
4 特征參數提取
通過端點檢測,我們得到了語音的起點和終點:StartPoint、EndPoint.在起點和終點間的是一段連續的語音,正是我們需要進行參數提取的對象,根據端點檢測的結果截取一段連續的語音段。
特征參數的提取采用的方法主要是進行小波變換。我們利用了MATLAB小波工具箱提供的以下幾個實現一維小波分解的函數:
[C,L]=wavedec(X,N,’wname’),多尺度一維小波分解函數。
D=detcoef(C,L,N),一維小波變換細節序列提取函數。
A=appcoef(C,L,’wname’,N),一維小波變換近似序列提取函數。
我們提取特征參數的時候,選取了db6小波,利用MATLAB提供的小波分解函數進行了5級分解。小波的選取和分解級數的選取,是我們經過不斷試驗后的結果。
[c,l]=wavedec(X,5,’db6’);
上式中X是經過端點檢測后截取的語音段。上述函數返回的近似和細節都存放在c中,l存放的是近似和各階細節系數對應的長度。
之后用appcoef(C,L,’wname’,N)提取近似系數,用detcoef(C,L,N)提取各階細節系數。
這樣便通過小波變換分解得到了近似和各階系數。我們根據分解后各階系數能量分布的不同來區別不同來源的聲音。求得各階的能量和總能量。使用近似系數和各階細節系數能量占總能量的比值將作為特征參數,用于語音來源的識別。
5 訓練和識別過程
在訓練階段,從train文件夾下讀取樣本數據,獲取特征參數,將這些參數保存下來作為模板數據。
在我們目前的系統中,共有7種不同來源的聲音,因此在訓練階段,我們讀取了7個語音文件提取特征參數,作為模板庫。把模板數據存儲在mfcc.mat 文件中。在識別階段只需要把mfcc.mat文件導入進去,便獲得了模板數據。
在識別階段,我們將待識別的語音文件輸入進來。通過和訓練階段一樣的方法得到特征參數。得到待測語音的特征參數以后,便可以求待測語音特征參數和模板語音特征參數的距離。求得測試語音和7個模板語音特征參數的距離后,將距離從小到大排序。排序之后將距離最小的作為識別的結果。
在我們系統的測試階段,我們錄制了兩份不同來源的語音。將其中一組作為模板,另外一組作為測試。7段語音的來源均得到了正確的識別結果。
6 結束語
不同來源的語音經過小波分解之后,各級小波系數的能量分布將不同。該語音來源識別系統將小波分解后各層系數的能量百分比作為特征系數。該系統首先經過端點檢測得到一段連續的語音信號,然后用db6小波進行5級小波分解,之后求得各級小波的能量百分比作為特征參數。先經過訓練階段得到模板數據,然后在識別階段得到待測語音和模板語音特征參數的距離,選取距離最小的作為識別結果。
參考文獻
[1]劉然.基于小波變換的說話人識別應用研究[D].西安:西安電子科技大學,2011
[2]李戰明,王貞.基于小波包分析特征參數的說話人識別系統[J].電聲技術,2005,(06)
[3]李宏松,蘇健民,黃英來,于慧伶.基于聲音信號的特征提取方法[J].信息技術,2006,(01)
[4]魏星,周萍. 語音識別系統及其特征參數的提取研究[J]. 計算機現代化,2009,(09)
作者簡介:鄺斌(1993,10-),男,江西贛州人,本科,主要研究:音頻信號處理。