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