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