李田港,葉 碩,葉光明,褚 鈺
(1.武漢郵電科學(xué)研究院,湖北 武漢 430000;2.武漢烽火眾智數(shù)字技術(shù)有限責(zé)任公司,湖北 武漢 430000)
語(yǔ)言是人類最常用的信息交換方式,一段語(yǔ)音中通常包含說(shuō)話人的三部分內(nèi)容:聲音特征信息、語(yǔ)言內(nèi)容信息、語(yǔ)音情感信息。同樣的語(yǔ)言,使用不同的情感表達(dá),效果往往不同。語(yǔ)音情感識(shí)別(speech emotion recognition,SER)即是對(duì)語(yǔ)音中包含的情感信息進(jìn)行研究。
如何提取語(yǔ)音中具有判別特性的情感特征,一直是該識(shí)別任務(wù)的難點(diǎn)。心理學(xué)將情感分為了離散型和連續(xù)型[1],離散型語(yǔ)音情感是指語(yǔ)音中只包含一種情緒或只有一種突出情緒,針對(duì)離散語(yǔ)音,常用特征可以分為低級(jí)描述(common low-level descriptors,LLDs)和高級(jí)描述的水平統(tǒng)計(jì)函數(shù)(high-level statistical functions,HSFs)[2-3]。
低級(jí)描述包括:基音頻率(fundamental frequency)、能量(energy)、過(guò)零率(zero-crossing)、抖動(dòng)(jitter)、梅爾濾波特征(Mel-filterbank features)、共振峰位置/帶寬(formant locations/bandwidths)、諧波噪聲比(harmonics-to-noise ratio)。
高級(jí)描述包括:均值(mean)、方差(variance)、最小值(min)、最大值(max)、范圍(range)、高階矩(higher order moments)、線性回歸系數(shù)(linear regression coefficients)等。
常用的分類方法包括:支持向量機(jī)(support vector machine,SVM)、K最近鄰(K-nearest neighbor,KNN)、反向傳播神經(jīng)網(wǎng)絡(luò)(back propagation neural networks,BPNN)、隱馬爾可夫模型(hidden Markov model,HMM)等。近年來(lái)神經(jīng)網(wǎng)絡(luò)發(fā)展迅猛,相關(guān)技術(shù)也被應(yīng)用于語(yǔ)音情感識(shí)別的研究。
文中著重研究離散型的情感語(yǔ)音識(shí)別,提取語(yǔ)音多個(gè)與情感分類相關(guān)的特征,使用多種算法對(duì)語(yǔ)音情感進(jìn)行識(shí)別,同時(shí)提出一種基于距離加權(quán)的KNN改進(jìn)算法和基于集成學(xué)習(xí)的加權(quán)投票算法,用于更好地實(shí)現(xiàn)語(yǔ)音情感識(shí)別。
目前與語(yǔ)音情感有關(guān)的聲學(xué)特征大致可以分為三類:韻律學(xué)特征、基于譜的相關(guān)特征、音質(zhì)特征。
韻律學(xué)特征注重音高、快慢以及輕重等方面的變化[4]。韻律能夠幫助人們理解說(shuō)話人語(yǔ)音信息中的重點(diǎn),使話語(yǔ)自然流暢,人們能夠更快地獲取有效信息,包含著豐富的情緒特征。文中提取短時(shí)能量、基音頻率、過(guò)零率、濁音幀差分基音等作為語(yǔ)音情感識(shí)別的主要特征。
基于譜的相關(guān)特征一般為L(zhǎng)PCC(linear predictor cepstral coefficient)與MFCC(Mel-frequency cepstral coefficient)。譜特征被認(rèn)為是聲道形狀變化和發(fā)聲運(yùn)動(dòng)之間相關(guān)性的體現(xiàn)[5]。研究者發(fā)現(xiàn)語(yǔ)音中的情感內(nèi)容對(duì)頻譜能量在各個(gè)頻譜區(qū)間的分布有著明顯的影響[6]。由于人聽(tīng)到的聲音高低和頻率大小不成線性正比關(guān)系,MFCC特征基于人耳聽(tīng)覺(jué)特性,在語(yǔ)音情感分類中具有良好的魯棒性和正確度,因此文中提取的譜相關(guān)特征為MFCC及其一階差分。
聲音質(zhì)量是人們賦予語(yǔ)音的一種主觀評(píng)價(jià)指標(biāo),用于衡量語(yǔ)音是否純凈、清晰、容易辨識(shí)等[7]。用于衡量聲音質(zhì)量的聲學(xué)特征一般有:共振峰頻率及其帶寬、頻率微擾和振幅微擾、聲門參數(shù)等,其中共振峰頻率的分布特性決定語(yǔ)音的音色[8]。文中提取的聲音質(zhì)量特征為第一、二、三共振峰頻率特征。
對(duì)語(yǔ)音信號(hào)進(jìn)行預(yù)處理、分幀、加窗,以幀為最小單位對(duì)語(yǔ)音信號(hào)特征進(jìn)行提取,并計(jì)算特征的相關(guān)統(tǒng)計(jì)量。具體特征及其統(tǒng)計(jì)量如表1所示。
表1 語(yǔ)音情感特征提取
KNN算法的思想是對(duì)于一個(gè)待分類樣本,找出其在特征空間中最鄰近的K個(gè)樣本,將這K個(gè)樣本中出現(xiàn)個(gè)數(shù)最多的類標(biāo)簽作為該待分類樣本的分類標(biāo)簽,因此分類結(jié)果只與近鄰的幾個(gè)樣本有關(guān)。
這種惰性學(xué)習(xí)方式依賴訓(xùn)練樣本,每個(gè)訓(xùn)練樣本都要保存,且對(duì)于每個(gè)待測(cè)樣本都要計(jì)算一遍其與所有訓(xùn)練樣本的距離,空間、計(jì)算開(kāi)銷較大,而各個(gè)近鄰又對(duì)分類結(jié)果影響相同,這與實(shí)際的分類情況有所不同;此外,對(duì)每個(gè)待測(cè)樣本分類,只用到了近鄰樣本的信息,不能充分利用樣本的分布信息。
基于距離的加權(quán)KNN是對(duì)傳統(tǒng)KNN算法的一種改進(jìn),其思想是對(duì)每個(gè)近鄰樣本,根據(jù)其與待測(cè)樣本距離的遠(yuǎn)近,賦予不同的權(quán)重,距離越近權(quán)重越大。
文中提出的算法是對(duì)加權(quán)KNN做進(jìn)一步改進(jìn),引入類平均距離[9]作為加權(quán)依據(jù)。類平均距離可以反映出同一類相鄰樣本之間的距離更接近,不同類的類平均距離有較大差異。改進(jìn)算法的實(shí)現(xiàn)如下:
算法1:類平均距離計(jì)算。
輸出:m維數(shù)組array[]:存儲(chǔ)類標(biāo)簽;m維數(shù)組array_ad[]:存儲(chǔ)類平均距離。
1:forh=1,2,…,mdo
2:初始化n維數(shù)組t[],t_ad[]和變量counter為0;l=lh;
3:fori=1,2,…,nhdo
4:forj=1,2,…,Kdo
5:將樣本與同類其他樣本的第j維特征值進(jìn)行比較;找出在第j維上特征差值最小的樣本;
6:若t[]中無(wú)該樣本,則存入t[];
7:end for
8:for allt[]do
9:計(jì)算t[]每個(gè)樣本與xli的歐氏距離;
10:end for
11:去掉最大值;求距離均值并存入t_ad[]
12:counter加1;
13:end for
14:計(jì)算數(shù)組t_ad[]前q個(gè)元素的均值,存入array_d[h];將類標(biāo)簽l存入數(shù)組array[h]
15:end for
在算法1中,首先計(jì)算一個(gè)類中每個(gè)樣本與其同類最近鄰樣本的平均距離,再對(duì)該類所有樣本與其同類最近鄰樣本的平均距離求平均值,以此平均值作為該類的類平均距離;然后求出待分類樣本的K近鄰樣本,計(jì)算每個(gè)近鄰樣本類平均距離和該近鄰樣本與待分類樣本之間距離的差值之比;將差值之比最大的t個(gè)近鄰樣本刪除,認(rèn)為這t個(gè)近鄰樣本與待測(cè)樣本的距離和分別對(duì)應(yīng)的類平均距離偏差大,與待分類樣本屬于同一類的可能性小,t一般設(shè)置為1。
算法2:基于類平均距離的改進(jìn)加權(quán)KNN分類器。
輸入:語(yǔ)音樣本訓(xùn)練集D,總樣本數(shù)n,分類數(shù)m,分類樣本數(shù)nh,h=1,2,…,m;最近鄰參數(shù)K和整數(shù)閾值t;待分類樣本以及數(shù)組array[]和array_d[];
輸出:待分類樣本的分類標(biāo)簽。
1:for allDdo
2:計(jì)算每個(gè)訓(xùn)練樣本與待分類樣本的歐氏距離;找出K個(gè)距離最小的樣本,存入K維數(shù)組N[];
3:將對(duì)應(yīng)的歐氏距離存入K維數(shù)組d[];將對(duì)應(yīng)的類標(biāo)簽存入K維數(shù)組label[];
4:end for
5:fori=1,2,…,Kdo
6:計(jì)算N[i]與待分類樣本距離d[i]和類平均距離array_ad[label[i]]的差值之比的絕對(duì)值:ratio[i]=|(d[i]-array_ad[label[i]])/array_ad[label[i]]|;
7:end for
8:將ratio[]中最大的t個(gè)元素置0;
9:fori=1,2,…,K
10:計(jì)算weight[label[i]]=1+b×ratio[i];
11:end for
12:將數(shù)組weight中最大元素對(duì)應(yīng)的分類標(biāo)簽作為待分類樣本的分類
算法2對(duì)余下的每個(gè)近鄰樣本,根據(jù)其差值之比計(jì)算權(quán)重,最后對(duì)待分類樣本根據(jù)余下的近鄰樣本和權(quán)重進(jìn)行加權(quán)多數(shù)投票,確定待分類樣本的類別。
集成學(xué)習(xí)是一種將多個(gè)學(xué)習(xí)結(jié)果進(jìn)行擇優(yōu)整合[10],從而獲得比單個(gè)學(xué)習(xí)器更好的學(xué)習(xí)效果的機(jī)器學(xué)習(xí)方法。為提升語(yǔ)音情感分類正確度,文中還考慮支持向量機(jī)(SVM)、反向傳播神經(jīng)網(wǎng)絡(luò)(BPNN)、隱馬爾可夫模型(HMM)在語(yǔ)音情感識(shí)別任務(wù)中的表現(xiàn)。
SVM是建立在統(tǒng)計(jì)學(xué)習(xí)理論和結(jié)構(gòu)風(fēng)險(xiǎn)最小化準(zhǔn)則基礎(chǔ)上的一種算法。將原始的數(shù)據(jù)樣本從線性不可分的低維空間映射到一個(gè)高維的特征空間,并尋找一個(gè)滿足分類要求的最優(yōu)分類超平面,以此完成分類任務(wù)[11]。該方法在保證分類精度的同時(shí)能夠使超平面兩側(cè)的空白區(qū)域最大化,對(duì)解決小樣本分類任務(wù)具有較好的表現(xiàn)。
BPNN是最常用的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)方式,誤差的逆?zhèn)鞑タ捎行в?jì)算權(quán)重參數(shù)的梯度。文中搭建一個(gè)三層神經(jīng)網(wǎng)絡(luò),分為輸入層、隱藏層、輸出層。輸入為語(yǔ)音信號(hào)多維特征向量組成的訓(xùn)練樣本,隱藏層神經(jīng)元數(shù)為10個(gè),隱藏層和輸出層使用對(duì)數(shù)Sigmoid激勵(lì)函數(shù),用于解決高維非線性可分問(wèn)題,每個(gè)輸出神經(jīng)元分別輸出5類情感的預(yù)測(cè)概率。使用均方誤差作為損失函數(shù)。設(shè)置訓(xùn)練次數(shù)為150,網(wǎng)絡(luò)性能目標(biāo)為10-6。
HMM是一種用參數(shù)表示的、基于語(yǔ)音信號(hào)的時(shí)間序列結(jié)構(gòu)建立的、用于描述其隨機(jī)過(guò)程統(tǒng)計(jì)特性的概率模型[12-13]。語(yǔ)音的情感在短時(shí)間內(nèi)具有一致性,將語(yǔ)音部分分割成極小的時(shí)間片段,那么該片段的特性近似穩(wěn)定,總過(guò)程可視為從某一相對(duì)穩(wěn)定特性到另一相對(duì)穩(wěn)定特性的轉(zhuǎn)移。因此對(duì)不同情感構(gòu)建HMM,可以完成對(duì)語(yǔ)音情感的分類。文中擬采用從上述的五種分類算法中選出三種分類效果較好的算法,對(duì)其分類結(jié)果以加權(quán)投票的方式進(jìn)行集成學(xué)習(xí)。
本實(shí)驗(yàn)采用三種不同語(yǔ)種公開(kāi)數(shù)據(jù)集:德國(guó)柏林德語(yǔ)語(yǔ)料庫(kù)[14]、中國(guó)中科院漢語(yǔ)語(yǔ)料庫(kù)以及EmoV-DB英語(yǔ)情感語(yǔ)料庫(kù)。德國(guó)柏林德語(yǔ)語(yǔ)料庫(kù)中包含7種情感,共535句情感語(yǔ)音信號(hào),音頻采樣頻率為16 kHz,16 bit量化。從中選擇了anger、happiness、neutral、sadness和fear共5種情感,每種情感隨機(jī)選取50條語(yǔ)音組建德語(yǔ)數(shù)據(jù)集。
漢語(yǔ)情感語(yǔ)料庫(kù),采樣頻率為16 kHz,16 bit量化,共4個(gè)發(fā)音人,每人的語(yǔ)音有6種情感。從中選擇anger、happiness、neutral、sadness和fear共5種情感,每種情感隨機(jī)選取50條語(yǔ)音組建漢語(yǔ)數(shù)據(jù)集。
Emov-DB,其采樣頻率為16 kHz,16 bit量化,共4個(gè)發(fā)音人,每個(gè)人的語(yǔ)音有5種情感neutral,sleepiness,anger,disgust和amused。每種情感隨機(jī)選擇50條語(yǔ)音組建英語(yǔ)數(shù)據(jù)集。
文中所述5種算法分別在3個(gè)語(yǔ)音樣本訓(xùn)練集進(jìn)行折數(shù)為5折的交叉驗(yàn)證:隨機(jī)將每個(gè)訓(xùn)練集均分為5份大小一致的互斥子集,每個(gè)子集都保持情感種類分布的一致性,每次實(shí)驗(yàn)從中選擇4個(gè)子集的并集作為訓(xùn)練集,余下的1個(gè)子集作為驗(yàn)證集。為了保證數(shù)據(jù)分布的均衡性,對(duì)數(shù)據(jù)集的樣本按不同類別分別進(jìn)行均分再合并。最終可以獲得5組訓(xùn)練/驗(yàn)證集,進(jìn)行5次訓(xùn)練,得到5個(gè)驗(yàn)證結(jié)果的均值。
實(shí)驗(yàn)首先對(duì)比不同半徑下,改進(jìn)的W-KNN算法和傳統(tǒng)KNN算法各自的表現(xiàn),對(duì)三個(gè)數(shù)據(jù)集采用5折交叉驗(yàn)證求均值,在K取值為1-20的情況下,5種情感分類結(jié)果如圖1所示,從左至右依次為德語(yǔ)、漢語(yǔ)、英語(yǔ)數(shù)據(jù)集,實(shí)折線為文中改進(jìn)后算法的識(shí)別率??梢钥闯?,改進(jìn)后的KNN算法優(yōu)于傳統(tǒng)KNN算法,在三個(gè)數(shù)據(jù)集上最大提升幅度分別為5.6%、9.6%、5.2%。
圖1 不同K值下的KNN算法與W-KNN算法的識(shí)別正確率
圖2是KNN算法和改進(jìn)KNN算法在綜合考慮計(jì)算成本和計(jì)算速度后,分別在三個(gè)數(shù)據(jù)集上對(duì)五種情感的識(shí)別率。從左至右依次為德語(yǔ)、漢語(yǔ)、英語(yǔ)數(shù)據(jù)集,星折線為文中改進(jìn)后算法的識(shí)別率,情緒依次為生氣、高興、中性、悲傷、驚恐。可以看出,德語(yǔ)數(shù)據(jù)集上,改進(jìn)算法對(duì)生氣、高興、中性和悲傷情感的識(shí)別效果優(yōu)于傳統(tǒng)算法;漢語(yǔ)數(shù)據(jù)集上,改進(jìn)算法對(duì)生氣、高興、中性和驚恐情感的識(shí)別效果優(yōu)于傳統(tǒng)算法;英語(yǔ)數(shù)據(jù)集上,改進(jìn)算法對(duì)高興、中性和悲傷情感的識(shí)別效果優(yōu)于傳統(tǒng)算法。不同情感的識(shí)別正確率有一定差距,分析原因,認(rèn)為語(yǔ)音情感識(shí)別的正確率與語(yǔ)種有一定關(guān)系,不同語(yǔ)種對(duì)不同情感的表現(xiàn)力不相同。
圖2 KNN與W-KNN對(duì)不同情感的識(shí)別正確率
進(jìn)一步,文中使用SVM,HMM和BP神經(jīng)網(wǎng)絡(luò)在三個(gè)數(shù)據(jù)集上進(jìn)行驗(yàn)證,實(shí)驗(yàn)發(fā)現(xiàn),基于HMM的分類方法,對(duì)HMM的狀態(tài)數(shù)N的選擇具有較大依賴,但N的增大,將增加時(shí)間開(kāi)銷,還會(huì)造成系統(tǒng)冗余,為此,只選取W-KNN、SVM和BP神經(jīng)網(wǎng)絡(luò)結(jié)果進(jìn)行集成學(xué)習(xí),各個(gè)算法結(jié)果如圖3所示,從上到下依次為德語(yǔ)、漢語(yǔ)、英語(yǔ)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果。
圖3 算法在不同數(shù)據(jù)集上的表現(xiàn)
結(jié)果表明,改進(jìn)后的W-KNN的效果基本與其余集成所用分類方法持平,不存在明顯短板,在集成中可以有效貢獻(xiàn)準(zhǔn)確率。在德語(yǔ)語(yǔ)料庫(kù)中,文中算法對(duì)高興和驚恐情感的識(shí)別均優(yōu)于其余算法,在生氣和中性情感上與BP神經(jīng)網(wǎng)絡(luò)算法持平;漢語(yǔ)語(yǔ)料庫(kù)中,文中算法對(duì)生氣、悲傷和驚恐情感的識(shí)別均優(yōu)于其余算法;英語(yǔ)語(yǔ)料庫(kù)中,文中算法對(duì)生氣、中性和厭惡情感的識(shí)別均優(yōu)于其余算法。圖4是上述5種算法對(duì)語(yǔ)音情感整體識(shí)別正確率的折線圖,從圖中可以看到,所提出的基于集成學(xué)習(xí)的加權(quán)投票算法具有最好的識(shí)別效果。德語(yǔ)和漢語(yǔ)語(yǔ)料庫(kù)中,文中算法均優(yōu)于其余算法;英語(yǔ)語(yǔ)料庫(kù)中,文中算法與BP神經(jīng)網(wǎng)絡(luò)算法識(shí)別效果持平。這一點(diǎn)與所選基分類器的分類表現(xiàn)差異較大有關(guān),BP神經(jīng)網(wǎng)絡(luò)在英語(yǔ)語(yǔ)料庫(kù)上的表現(xiàn)很大程度上影響了其他算法在集成學(xué)習(xí)中所占權(quán)重。
圖4 五種算法情感識(shí)別率
語(yǔ)音情感識(shí)別作為語(yǔ)音識(shí)別的一環(huán),具有重要的研究?jī)r(jià)值。通過(guò)研究發(fā)現(xiàn),在離散語(yǔ)音情感識(shí)別中,語(yǔ)音信號(hào)的不同特征對(duì)最后的分類結(jié)果有不同程度的影響,如何尋找更有效的情緒特征,是當(dāng)前研究者面臨的一大問(wèn)題。
此外,由于人類情感具有模糊的時(shí)間邊界,情感識(shí)別是一項(xiàng)具有挑戰(zhàn)性的任務(wù)。每個(gè)人的情感表達(dá)方式不同,一個(gè)話語(yǔ)可能包含不止一種情感[15],維度型情感語(yǔ)音的識(shí)別依然存在許多難點(diǎn)需要攻克,針對(duì)此類問(wèn)題可以使用長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)做進(jìn)一步的研究。