王 富,孫林慧,蘇 敏,趙 城
(南京郵電大學 通信與信息工程學院 寬帶無線通信與傳感網技術教育部重點實驗室,江蘇 南京 210003)
近年來,隨著人工智能的飛速發展,人機交互技術得到了廣泛應用。目前,雖已有很多人機交互產品在生活中得到應用,但都無法從情感層面去理解人類意圖。為了實現更加智能化的人機交互,人機交互產品必須能夠充分理解人類情感。語音作為人類日常生活中交流的主要方式,其所承載的情感信息越來越受到研究者重視,并被應用到人機交互領域[1-2]。目前,語音情感識別存在兩大難點[3]:一是如何尋找有效的語音情感特征,二是如何構造合適的語音情感識別模型。
當前,被應用于語音情感識別的特征參數主要有韻律學特征、基于譜的特征和音質特征[4]。由于語音信號的這些特征分別從不同的方面對語音情感信息進行表達,且單一的特征識別效果不理想,因此特征聯合的語音情感識別成為當前的主要研究方向[5-6]。文獻[7]將語音信號的能量、基音頻率、同態頻率系數和共振峰應用到語音情感識別中,并在生氣、高興和傷心三種情感的識別中取得了87.25%的正確識別率。Wang K等將語音信號的前120個傅里葉系數(Fourier parameters,FP)和梅爾倒譜系數(Mel-frequency cepstral coefficient,MFCC)應用到語音情感識別中,在德國柏林語音情感數據庫的六種情感識別中取得了79.51%的正確識別率[8]。語音情感識別是一個典型的模式識別問題,分類器的性能對識別效果具有重要的作用。目前,在語音情感識別領域應用比較廣的分類器有:高斯混合模型(Gaussian mixture model,GMM)[9]、人工神經網絡(artificial neutral network,ANN)[10]和支持向量機(support vector machines,SVM)等。其中,SVM在解決非線性、小樣本以及高維模式識別等方面表現出了特有的優勢,因此廣泛應用于語音情感識別中[11-12]。文獻[13]將多級SVM分類算法應用到德國柏林情感語料庫七種情感的識別中,并取得了63.74%的正確識別率。同時,在多種情感識別的情況下,基于決策樹SVM的識別模型也被應用到語音情感識別中,并取得了不錯的效果[14]。但是,SVM的核函數及其參數對SVM的識別效果影響比較大,目前研究領域中還沒有統一的標準,一般是多次嘗試取其經驗值,或者是通過尋優算法對其參數進行尋優。目前,應用于SVM參數尋優的算法主要有微粒群優化算法(particle swarm optimization,PSO)、遺傳算法(genetic algorithm,GA)等[15-16]。
在語音多種情感識別中,由于部分情感狀態容易混淆,語音情感之間的可分性存在差異,導致語音情感識別的識別率不高;同時,對于不同的訓練集,SVM參數懲罰因子和核函數參數對識別結果也存在一定影響。為了有效提高語音情感識別系統的識別率,提出了一種基于參數尋優決策樹SVM的語音情感識別方法,并通過實驗對該方法進行驗證。
在語音情感識別中,特征參數通常以幀為單位進行提取,由于單幀含有的信息較少,大部分研究者將特征參數以多幀為單位計算統計變量的形式用于情感識別任務。文中采用MFCC和傅里葉系數這兩種特征,并以多幀為單位分別計算這兩種特征的5個統計變量(最大值、最小值、均值、標準差和中值),并將其應用于識別任務。
MFCC參數是根據人耳聽覺特性,將頻譜最終轉化為倒譜域上的系數。它將人耳的聽覺感知特性和語音信號的產生機制有效地結合起來,具有較好的識別性能和抗噪能力,廣泛應用于語音識別中。文中選取了24維MFCC參數以及它的一階差分作為特征參數。
傅里葉分析是信號領域主要的分析方法之一。近年來,研究者通過傅里葉分析提取了語音信號的傅里葉系數,并將其應用于語音情感識別,取得了不錯的效果[17]。傅里葉系數的提取過程:語音信號首先經過預加重、分幀、加窗等預處理,然后進行傅里葉變換得到諧波系數,并計算每個諧波系數的模值得到傅里葉系數。文中采用它的前160個系數用于識別。
SVM是一種應用廣泛的機器學習方法。對于非線性可分的問題,它的基本思想是:通過非線性變換將輸入空間映射到一個高維特征空間中,數據被超平面進行分割,在高維空間變得可分,因此在高維空間中尋找一個最優超平面是訓練SVM的目標[17]。
非線性可分的支持向量機對應的目標函數如下:
(1)
其中,ω為權系數向量;b為常量;C為懲罰系數,它控制著對錯分樣本的懲罰程度,具有平衡模型復雜度和損失誤差的作用;ξI為松弛因子,用來調整分類面允許分類過程中存在一定的錯分樣本。
數據空間樣本點xi和xj,采用數據空間到特征空間的映射函數Φ(),應用核函數變換等式:(xi,xj)→K(xi,xj)=Φ(xi)·Φ(xj),得到最優超平面函數:
(2)
其中,αi為拉格朗日因子。
SVM用于處理分類問題時,有一對多(one-to-all)和一對一(one-to-one)兩種策略。根據前期的分析研究,一對一的分類策略更有效,故文中采用該策略。核函數是支持向量機的關鍵,目前常用的核函數有線性核函數、多項式核函數、徑向基核函數和多層感知機核函數等。根據前期的實驗發現,文中采用效果最好的徑向基核函數。如何選擇合適的懲罰因子C和核函數參數g是訓練一個SVM分類器的關鍵問題。
遺傳算法是一種借鑒生物界的進化規律演變而來的隨機優化搜索方法[18]。遺傳算法參數優化是將需要優化的參數進行二進制編碼構成染色體,隨機產生初始的群體。在遺傳進化過程中,利用基于適應度函數的選擇策略來模擬“優勝劣汰”生存法則進行個體選擇,采用交叉和變異兩個過程來產生下一代種群,種群不斷進行優化直到滿足終止條件。最后一代的染色體作為全局最優解,經過解碼得到優化后的參數。
文中采用遺傳算法對SVM參數進行尋優的具體步驟為:
(1)參數初始化,并對SVM的懲罰因子C和核函數參數g進行二進制編碼,然后隨機產生初始種群。
(2)將解碼后的參數C和g代入SVM分類函數中,把訓練得到的識別率作為適應度值。適應度越高的個體遺傳給下一代的概率就越大,反之則越小。
(3)選擇操作,根據適應度值在每代進化中模擬“優勝劣汰”生存法則,從群體中選取優良的個體,作為父代再產生新的群體。
(4)交叉操作,挑選出選擇操作后的個體,按照交叉概率產生新個體。
(5)變異操作,在群體個體中,根據變異的概率來改變某基音座的基音,從而產生新個體。
(6)解碼并計算適應度值,同時將子代和父代之間的分類識別率進行比較,更新最優個體。
(7)判斷迭代次數或者適應度值是否滿足終止條件。如果沒有,則重復步驟3~6;如果滿足條件,則執行步驟8。
(8)輸出最優解C和g。
在多種情感識別中,由于情感間的混淆度比較大,從而降低了整體的識別率。針對此問題,先將比較接近的情感歸為一類,用一級SVM進行粗分類,然后針對容易混淆的情感通過利用不同的特征參數來訓練不同的SVM進行細分類,從而實現對所有情感的分類。
首先定義一個情感狀態集合E={e1,e2,…,en},其中情感狀態的個數s=n。情感混淆度是指各類情感之間的相似度,定義第i類情感ei和第j類情感ej的混淆度為Ii,j,其表示第i類情感誤判為第j類情感和第j類情感誤判為第i類情感的概率的平均值[13]。計算公式為:
(3)
其中,x為測試樣本;r為測試樣本x所對應的分類結果。
決策樹SVM構造算法的具體步驟如下:
(1)利用MFCC參數及傅里葉系數和傳統SVM的方法計算出情感識別混淆矩陣,并根據混淆矩陣計算出各類情感之間的混淆度。
(2)將混淆度超過閾值P的情感分為一類,且初次分類時閾值被設置為6%。若情感不重復,則將其分為一組;若與其他組內情感重復,則將重復組并為一組。即若Ia,b>P,Ic,d>P,則將a,b分為一組,c,d分為一組;若Ia,b>P,Ib,c>P,則將a,b,c分為一組。如果某種情感與其他情感的混淆度都小于閾值,則將其單獨歸為一類。
(3)對于未分組的情感類別,根據式3計算與其他情感類別之間的混淆度,轉至步驟2,將其分入已有組或者單獨成組。
(4)計算各組中情感類別個數,如果個數大于2,則將閾值P增加6%,并轉至步驟1;否則,轉至步驟5。
(5)所有情感都完成分組,結束。
為了更好地提高多分類語音情感識別的識別率,提出了基于參數尋優決策樹SVM的語音情感識別方法。該方法首先將語音信號進行預處理,提取語音信號的MFCC系數和傅里葉系數。然后采用MFCC系數及傅里葉系數和傳統SVM進行實驗得到情感間的混淆矩陣,并根據混淆矩陣計算得到情感間的混淆度,同時根據決策樹SVM構造策略來構造決策樹SVM。當決策樹SVM構造完成之后,采用遺傳算法為決策樹SVM中每個SVM的懲罰因子C及其核函數參數g進行尋優,并將尋優后的參數用于訓練SVM模型。
實驗采用的語料庫為中科院漢語情感語音庫,該語料庫由中科院自動化所錄制并提供。該語料庫由兩名男性和兩名女性專業發音人錄制而成,包括生氣(angry)、高興(happy)、害怕(fear)、平靜(neutral)、驚訝(surprise)和傷心(sad)六種不同情感,共1 200條語句。該語料庫的采樣率為16 000樣值/秒,采用16 bit量化,并以wav的格式存儲。文中利用所有的情感語句進行實驗。為了排除性別和說話人對實驗的影響,實驗均是采用十折交叉驗證的方法,即每種情感的語料隨機分成十份,且每一份中各類情感的比重相同。在識別時,將每一部分輪流抽取九份作為訓練數據,剩下的一份作為測試數據。最后將十次識別結果的平均值作為最終的識別結果。采用的分類器為SVM分類器,并使用臺灣大學林智仁教授開發的LIBSVM工具箱來實現SVM。實驗環境為Matlab2013a,LIBSVM的安裝環境為Visual Studio 2010。
在提取語音信號的參數時,都先對語音信號進行端點檢測,并且以幀長為256點、幀移為128點的形式對語音信號進行分幀。實驗所選的特征參數為傅里葉系數的前160個、24階的MFCC及其一階差分,并求出它們各自的統計變量(最大值、最小值、均值、中值、方差),共1 040維,構成聯合特征。同時,所有的特征參數數據都進行歸一化。
3.2.1 基于參數尋優決策樹SVM的具體構造
首先,采用傳統的MFCC參數及傅里葉系數和傳統的SVM對語音庫中的六種情感進行實驗,得到六種情感之間的混淆矩陣,如表1所示。

表1 六種情感的識別率混淆矩陣 %
根據式3計算六種情感間的混淆度,得到任意兩種情感間的混淆度,如表2所示。

表2 六種情感的類別間混淆度 %
從表2中可得,生氣與驚訝的混淆度為7.25%,高興與生氣的混淆度為6.75%,它們之間的混淆度都大于初次分類的閾值6%,依據決策樹SVM構造策略的步驟2可知,將生氣、高興、驚訝歸為一大類;由于害怕與傷心兩種情感之間的混淆度為34%,同理可將害怕和傷心歸為一大類;由于平靜與其他情感之間的混淆度都小于初次分類的閾值6%,所以將其單獨歸為一大類。此時,通過SVM1對這三大類情感進行區分。
根據決策樹SVM構造算法中的步驟4,需要對生氣、高興和驚訝三種情感進行再分類,因此通過構造算法得到這三類情感之間的混淆度如下:生氣與驚訝之間的混淆度為7.25%,高興與驚訝之間的混淆度為11.5%,高興與生氣之間的混淆度為8%。其混淆度都小于第二次分類的閾值12%,根據決策樹SVM構造算法,將生氣、高興和驚訝歸為一類,采用SVM2直接進行分類。對于害怕和傷心這兩種情感,直接采用SVM3進行二分類。
在SVM的訓練過程中,SVM的懲罰因子C和核函數參數g對識別效果影響較大,且不同的訓練集需要不同的參數值。因此,采用遺傳算法為決策樹SVM中每個SVM的懲罰因子C和核函數參數g進行尋優,并將尋優后的參數用于訓練SVM模型。
得到的基于參數尋優決策樹SVM的結構如圖1所示。

圖1 基于參數尋優決策樹SVM結構框圖
3.2.2 參數優化選擇實驗
對于決策樹SVM中的每個SVM,先采用遺傳算法對其參數C和g進行優化,然后用最優參數進行SVM的訓練與識別。遺傳算法的參數設置如下:交叉率和變異率分別為0.6和0.035,種群數量為20,最大迭代次數為200,參數采用二進制進行編碼。通過參數優化實驗,得到決策樹SVM中各個SVM的參數值,如表3所示。

表3 遺傳算法尋優后的各個SVM的參數值
3.2.3 與其他方法的性能比較
為了驗證決策樹SVM分類模型的有效性,采用1 040維的聯合特征作為特征參數,并用決策樹SVM作為分類器進行實驗,得到各類情感的識別率如表4所示。

表4 基于聯合特征和決策樹SVM的 語音情感識別結果 %
將表4與表1的識別結果進行對比可知:平靜情感的識別率略微降低,生氣情感的識別率保持不變,其他四種情感的識別率都有所提高,同時平均識別率由74.5%提高到75.08%,從而證明了決策樹SVM對語音情感識別的有效性。因為決策樹SVM的識別方法根據混淆度,首先對情感進行粗分類,將容易混淆的情感歸為一類,降低了情感之間的混淆度,從而提高了所有情感的平均識別率。
為了驗證參數尋優對語音情感識別的有效性,采用提出的基于參數尋優決策樹SVM的語音情感識別方法進行實驗,得到的識別結果如表5所示。

表5 基于參數尋優決策樹SVM的 語音情感識別 %
通過表4和表5可知,文中方法使得除了驚訝之外的其他五種情感的識別率都得到了不同程度的提高,且平均識別率也由75.08%提高到81%。原因是在SVM的訓練過程中,SVM的懲罰因子C和核函數參數g對識別效果影響較大,且不同的訓練集需要不同的參數值;而通過遺傳算法對SVM參數進行優化,得到了每個SVM的最優參數,從而使語音情感識別系統的平均識別率得到提高。
在多種情感識別的情況下,為了有效提高語音情感識別系統的識別率,提出了基于參數尋優決策樹SVM的語音情感識別方法。在中文情感語音庫的實驗結果表明,該方法可以有效提高語音情感識別正確率。但依然存在不足之處,由于決策樹SVM中的每個SVM都需要通過遺傳算法進行尋優,會花費一定的時間。在下一步的研究工作中,將會尋找耗時更少的優化算法,以縮短整個識別系統的時間。