劉瀟營, 鄭郁正, 李國良
(成都信息工程學院,四川成都 610225)
語音識別是研究如何使機器能夠準確地聽懂人所說的話,實質就是一種模式識別。是近20年來發展起來的一門新興學科,是人機通信的自然媒介,具有重要的應用價值。目前,語音識別的方法主要有以下兩種:(1)隱馬爾可夫模型(HMM)識別算法,這是當前使用較廣且發展較成熟的算法,算法通過對大量聲音數據進行數據統計,建立識別條的統計模型,然后從待識別聲音中提取特征,與這些模型匹配,通過比較匹配分數以獲得識別結果。但統計模型的建立需要依賴一個較大的聲音庫。這在實際工作中占有很大的工作量。且模型需要的存儲量和匹配計算的運算量相對較大。(2)神經網絡。神經網絡是模仿人類大腦神經元所設計的智能系統,具有很強的分類能力。但是由于神經網絡具有訓練時間過長,訓練時容易陷入局部最優化,泛化能力差等缺點,很難轉化到實際應用中。[1]
支持向量機(support vector machine)是基于統計學理論發展起來的新的機器學習方法,由Vapnik等人提出[2,3]。支持向量機針對有限的小樣本,尋找最少的支持向量,最大化分類間隔,確定最優的分類線等方法提高了泛化能力,減小了經驗風險。支持向量機最初是為了解決二分類的問題而設計的。而在實際中很多時候面臨的是一個多分類的問題。如何將支持向量機推廣到多分類的情況中,很多文獻都提出了不同的方法[4]。多類(M-ary)支持向量機[5]即為其中一種,它是多個二分類支持向量機的組合,具有使用向量機數目少,速度快等優點,尤其適用于語音識別實時性的要求。
支持向量機的原理如圖1所示,圖中黑白圓圈分別表示兩種不同類別。帶有斜杠線的圓圈為支持向量。其中H為分類線,在二維空間中,存在多條這種分類線,其中,最優分類線的條件是距離兩類樣本之間的間隙保持最大,在多維空間中,如果存在一個超平面能夠將兩類樣本準確地分開,且樣本距離平面的間隙保持最大,則該平面為最優超平面。H1,H2分別為兩類中離H最近的樣本且平行于H的直線,它們之間的距離為分類間隔[6]。
設有 n個樣本:(xi,yi),yi∈{-1,1},i=1,2,…,n
當線性可分,對于所有樣本存在超平面w?x+b=0,滿足


圖1 支持向量機原理圖
當線性不可分,則需引入松弛變量ζ,滿足

C為懲罰因子,為>0的正數。

K(xi,xj)為核函數。當非線性不可分時,通常將低維空間的數據通過非線性的函數映射到高維空間,再在高維空間內解決分類的問題。如果選取的非線性函數恰當,那么在輸入空間內的線性不可分問題可轉化為線性可分問題,因此,通常在高維空間的運算中,用核函數取代線性空間中的內積。
決策函數為:

常用的核函數:
(1)線性核函數(linear) K(x,xi)=x?xi
(2)多項式核函數(poly) K(x,xi)=[(x?xi)+1]p,p為多項式的階數。
M-ary支持向量機由Sebald和Buchlew等人在2000年提出。支持向量機多分類使用較多的算法有“一對一”或者是“一對多”[7]。這兩種算法的缺點是存在多少種類別就得構建多少個支持向量機,增加了訓練的時間,耗費了系統較多的資源。M-ary支持向量機也是由多個二分類器組合而成,從文獻[5,8]中得知,在處理 k類問題時,只需要構造log2k個M-ary子分類器。M-ary支持向量機的結構如圖2所示。
M-ary支持向量機按照以下規則構造子分類器:

上式中k為分類器的個數,S={1,2,3,…,k}。則原本k分類的問題即轉換成log2k類問題。樣本集按上式規則分為+1,-1兩類。設樣本 xi對應的第k個子分類器的輸出為y^k,則樣本的最終類別通過以下方程來計算:


圖2 M-ary支持向量機構造圖
要構成一個完整的語音識別系統,除了具備一個優良的識別算法,還需要有相應的前端處理部分才能夠進行有效的工作。
從圖3得知,要對語音信號進行識別,首先從信號中提取出表征其特征的參數,特征參數的好壞直接影響識別的效果。語音信號是一種時變的非平穩信號,它的頻譜特性隨著時間的改變而改變,但傳統的線性預測倒譜系數(LPC),美爾倒譜系數(MFCC)都是利用語音信號的短時非平穩特性提取參數,因此,這些方法對于提取有效的語音特征有一定的局限性。

圖3 語音識別系統框圖
近年來,小波理論發展迅速,被廣泛應用于信號的處理與分析中。小波變換能夠很好的表征以低頻信息為主的信號,但是對于高頻信息較多的信號,不能很好地分析其細節信息。小波包理論是一種非平穩信號的分析方法,是小波分析的推廣,繼承了小波變換多分辨率的思想,非均勻的劃分時頻空間,對頻帶進行多層劃分,將小波變換沒有細分的高頻部分進行更為詳細的分解,更有利于對包含大量中、高頻信息的信號進行時頻局部化的分析。這些特點使小波包分析方法有別于傳統的語音處理中的短時傅立葉分析方法。
由于人耳對語音信號的感知是非線性的,比較敏感的區域集中分布在24個頻帶,稱為臨界頻帶[9]。MFCC參數的提取就是根據這24個頻帶構建了24個帶通濾波器,將其輸出的對數能量再進行DCT變換得到。小波包提取信號特征參數也是根據相同的原理,在小波包分解結束后,選取處于這24個頻帶上的小波包頻帶結點,計算其對數能量再進行DCT變換。
小波包提取特征參數的過程如下:
(1)對語音信號進行預加重,消噪,分幀,加窗。分幀是為了提高特征參數的精度。

(2)對每幀信號進行小波包分解,并且計算對應臨界頻帶的結點小波系數的對數能量。

其中 WPXk,m為第k個子帶的第m個小波系數,Nk為第k個子帶的小波系數的個數,K為所選頻帶的頻帶編號。
(3)對Sk進行DCT變換,得到新的特征參數

p為特征參數的維數。
實驗的語音數據均由11250Hz采樣,16bit量化,在實驗室環境下錄取5位男生和5位女生的聲音,分別讀取10個單詞,每個單詞閱讀10遍,總共采集1000個樣本。其中500組作為訓練樣本,500組作為驗證樣本。數據按照幀長256點,幀移128點分幀。采用小波包提取出特征系數,小波函數為‘DB6'。進入M-ary支持向量機進行處理,支持向量機的核函數分別選取‘linear',‘poly',‘rbf'核函數進行比較。
為了使語音識別系統顯得直觀、實用,實驗在MATLAB環境下構建了GUI界面,如圖4、5所示,方便查看識別效果。
通過該GUI界面分為訓練和識別兩部分,訓練部分主要是將訓練集的特征參數輸入至M-ary支持向量機中,尋找支持向量,求取拉格朗日乘子,將訓練結果保存為.mat文件。識別部分通過load.mat文件的方式獲取訓練后的數據,再將此數據應用于需要進行識別的聲音,判定其所表征的含義。使用者可以自由的選定訓練模板的個數,在識別部分也可以選擇需要比較的模板的范圍。這樣可以提高識別效率,減少識別時間,提高系統的實時性。
為了選取最佳核函數,分別對‘linear',‘poly',‘rbf'的分類結果進行了比較,結果見表1。

圖4 訓練界面

圖5 識別界面

表1 分類結果比較圖
從表1中得知,‘rbf'核函數的分類效果最佳,‘linear'函數分類效果較差。因為‘rbf'核函數具有較強的非線性的特性,將低維空間的數據能夠更好地轉換到高維空間進行線性劃分。在接下來的實驗中,M-ary支持向量機都選定‘rbf'為其核函數。
為了比較識別效果,分別運用了BP網絡、SVM、M-ary SVM 進行語音實驗,實驗結果見表2。

表2 實驗結果1
從表2可以看出M-ary支持向量機的識別效果最好,SVM居中,BP網絡效果最差,且M-ary SVM所用的訓練時長最短,比SVM快了一半,那是因為與SVM 相比,M-ary的子分類器個數大為減少,所以訓練時間最少,而且精度也最高。為了充分驗證M-ary支持向量機的抗噪能力,即強健性。在訓練樣本中混入零均值的高斯白噪聲,測試樣本不變,此時信噪比為30dB。重新訓練支持向量機,此時這3種識別方法的抗噪測試比較結果見表3。

表3 實驗結果2
從表3可看出混入高斯白噪聲后,對訓練的時長影響不大,但對識別率都有一定的作用。BP網絡受噪聲干擾的影響最大,而SVM和M-ary SVM受的影響較小,識別率改變的幅度不大。這是因為SVM采用的是將數據從低維空間映射到高維空間的思想,由支持向量來決定最優分割線,由于噪聲的能量不大,加入的高斯白噪聲在低-高維轉換時,能起決定性影響的數據大量減少,所以,支持向量機的抗噪聲能力優于BP網絡,并且性能穩定。M-ary SVM的識別率和抗噪能力都是最優的。
介紹了M-ary SVM在語音識別系統上的應用,并引入BP網絡和標準SVM對其分類效果進行比較。從仿真結果看,M-ary SVM具有較為理想的分類能力,其抗噪能力也優于BP網絡和標準的SVM。但是M-ary SVM的識別正確率受樣本選取的影響較大,具有一定的局限性,希望在今后的研究中會得到進一步的改進與優化。
[1] 詹新明,黃南山,楊燦.語音識別技術研究進展[J].現代計算機,2008,(9):43-45.
[2] 張學工.關于統計學習理論與支持向量機[J].自動化學報,2000,26(1):32-42.
[3] Vapnik.The nature of statistical learning theory[M].New York:Spinger-verlag,1995.
[4] 張宏烈.支持向量機在字符識別中的應用研究[J].微計算機信息,2006,11:245-247.
[5] Daniel J Sebald,James A Bucklew.Support Vector Machines and the Multiple Hypothesis Test Problem[J].IEEE TRANSACTIONS ON SIGNAL PROCESSING,2001,49(11):2865-2872.
[6] 肖健華.智能模式識別方法[M].廣州:華南理工大學出版社,2006:148-155.
[7] 余輝,趙輝.支持向量機多類分類算法新研究[J].計算機工程與應用,2008,44(7):185-189.
[8] 肖燕彩,陳秀海.改進的M-ary支持向量機模型及其在變壓器故障診斷中的應用[J].上海交通大學學報,2008,42(12):2033-2036.
[9] 韓紀慶,張磊,鄭鐵然.語音信號處理[M].北京:清華大學出版社,2004:25-31.
[10] 飛思科技.小波分析理論與MATLAB7實現[M].北京:電子工業出版社,2005.