俞穎, 黃風(fēng)華, 劉永芬
(1.陽(yáng)光學(xué)院 空間數(shù)據(jù)挖掘與應(yīng)用福建省高校工程研究中心; 2.陽(yáng)光學(xué)院 人工智能學(xué)院;3.福建農(nóng)林大學(xué) 金山學(xué)院: 福建 福州 350001 )
語(yǔ)音是人際交流的重要媒介.語(yǔ)音信號(hào)中不僅包含所要傳遞的語(yǔ)義信息,還包含豐富的情感信息,因此如何使計(jì)算機(jī)從語(yǔ)音信號(hào)中自動(dòng)識(shí)別出說(shuō)話人的情感狀態(tài)及其變化,是實(shí)現(xiàn)自然人機(jī)交互技術(shù)的關(guān)鍵前提.目前,語(yǔ)音情感識(shí)別存在兩大難點(diǎn):一是如何尋找有效的語(yǔ)音情感特征,二是如何構(gòu)造合適的語(yǔ)音情感識(shí)別模型[1].研究[2-3]顯示,單一特征情感識(shí)別的效果并不理想,因此學(xué)者們更多的是采用多特征聯(lián)合的方法來(lái)識(shí)別語(yǔ)音情感;但采用多特征聯(lián)合的方法易使情感特征的維數(shù)偏高,進(jìn)而增加計(jì)算的復(fù)雜度.近年來(lái),支持向量機(jī)(SVM)和人工神經(jīng)網(wǎng)絡(luò)(ANN)模型被廣泛應(yīng)用于語(yǔ)音情感識(shí)別.例如:文獻(xiàn)[4]通過(guò)構(gòu)造多個(gè)SVM分類器進(jìn)行語(yǔ)音感情識(shí)別,該方法雖然提高了語(yǔ)音情感識(shí)別率,但因所構(gòu)造的SVM分類器較多使得識(shí)別過(guò)程較為復(fù)雜;文獻(xiàn)[5]提出了一種將傳統(tǒng)的主成份分析法(PCA算法)和SVM分類器相結(jié)合的語(yǔ)音情感識(shí)別方法,該方法可有效降低語(yǔ)音情感識(shí)別的計(jì)算量,但傳統(tǒng)的PCA算法在降維過(guò)程中需要較高的時(shí)間耗費(fèi);文獻(xiàn)[6]采用改進(jìn)遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)來(lái)進(jìn)行語(yǔ)音情感識(shí)別,該方法的語(yǔ)音情感識(shí)別率較高,但識(shí)別過(guò)程中所用的特征維數(shù)較高,增加了語(yǔ)音情感識(shí)別的計(jì)算量.基于上述研究,本文利用快速主成份分析法(Fast_PCA算法)和優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)提出一種新的語(yǔ)音情感識(shí)別方法,并通過(guò)實(shí)驗(yàn)驗(yàn)證本文方法的有效性.
常用的語(yǔ)音情感特征主要包含韻律學(xué)特征、基于譜的特征和音質(zhì)特征.語(yǔ)音處理的特征參數(shù)通常是以幀為單位提取的,但由于單幀信號(hào)所含的信息量較少,因此用于情感識(shí)別的特征參數(shù)多采用連續(xù)多幀的提取特征值,然后通過(guò)計(jì)算這些特征值的統(tǒng)計(jì)量來(lái)組合情感識(shí)別的特征參數(shù).基于中文與西方語(yǔ)種在語(yǔ)音和情感表達(dá)上存在的差異[5],本文將中西方語(yǔ)種語(yǔ)音信號(hào)中的基音頻率、短時(shí)能量、短時(shí)幅值、短時(shí)平均過(guò)零率、共振峰、語(yǔ)音持續(xù)時(shí)間及梅爾頻率倒譜系數(shù)(MFCC)作為原始的語(yǔ)音情感特征,并通過(guò)計(jì)算這7類原始語(yǔ)音的情感特征值及其一階差分、二階差分的統(tǒng)計(jì)值(統(tǒng)計(jì)值主要包括最大值、最小值、均值、中值、標(biāo)準(zhǔn)差、方差等)來(lái)獲取語(yǔ)音信號(hào)的高維度聯(lián)合特征.
1) 基音頻率.基音頻率(簡(jiǎn)稱基頻)是指發(fā)濁音時(shí)聲帶產(chǎn)生的周期性的振動(dòng)頻率,它能夠反映聲道的特征.一般來(lái)說(shuō),男性的基頻較低,女性的基頻較高,且不同情感狀態(tài)下基頻的大小不同[7].
2) 短時(shí)能量.短時(shí)能量是指每幀信號(hào)的短時(shí)平均能量,它反映的是語(yǔ)音的能量或語(yǔ)音振幅隨時(shí)間緩慢變化的規(guī)律[8].設(shè)x(l)為語(yǔ)音時(shí)域信號(hào),N為每幀的長(zhǎng)度,w(m)為窗函數(shù),xn(m)為加窗分幀處理后的第n幀語(yǔ)音信號(hào).定義xn(m)=w(m)x(n+m), 則短時(shí)能量譜En的計(jì)算公式[5]為
(1)
3)短時(shí)幅值.短時(shí)幅值也是度量語(yǔ)音信號(hào)能量大小的一個(gè)指標(biāo),它與短時(shí)能量的區(qū)別在于計(jì)算時(shí)無(wú)論取何采樣值,都不會(huì)因?yàn)閷?duì)語(yǔ)音信號(hào)值取二次方而造成分幀之間的能量值有較大差異.短時(shí)幅值Mn的計(jì)算公式[5]為
(2)
4)短時(shí)平均過(guò)零率.短時(shí)平均過(guò)零率是指每幀語(yǔ)音信號(hào)在零值上下所波動(dòng)的次數(shù).濁音具有較低的過(guò)零率,清音具有較高的過(guò)零率,利用短時(shí)平均過(guò)零率可以從背景噪聲中找出語(yǔ)音信號(hào)并判斷出語(yǔ)音的起點(diǎn)和終點(diǎn)[9].
5)共振峰.共振峰是聲源通過(guò)聲道時(shí)產(chǎn)生的一組共振頻率.當(dāng)人處在不同的神經(jīng)緊張程度下,聲道發(fā)生形變,共振頻率也發(fā)生改變[10].本文利用線性預(yù)測(cè)法提取語(yǔ)音信號(hào)中的共振峰頻率,并計(jì)算第1至第3共振峰的相關(guān)統(tǒng)計(jì)特性.計(jì)算所得的相關(guān)統(tǒng)計(jì)特性作為語(yǔ)音信號(hào)的特征參數(shù).
6)語(yǔ)音持續(xù)時(shí)間.語(yǔ)音持續(xù)時(shí)間是指情感發(fā)音的持續(xù)時(shí)間.因歡快、憤怒和驚奇的發(fā)音長(zhǎng)度相對(duì)較短,而悲傷的語(yǔ)音持續(xù)時(shí)間相對(duì)較長(zhǎng),因此可以利用語(yǔ)音的時(shí)間構(gòu)造來(lái)進(jìn)行情感區(qū)分.
7) MFCC系數(shù).MFCC系數(shù)反映的是人的感知能力與語(yǔ)音信號(hào)的頻率之間存在的特定關(guān)系.MFCC系數(shù)的計(jì)算以Mel頻率為基準(zhǔn),其計(jì)算表達(dá)式[11]為
mel(f)=2 595×log10(1+f/700),
(3)
其中f是語(yǔ)音頻率.
研究表明,利用PCA算法中的線性變換可將高維空間中的樣本數(shù)據(jù)投影到低維空間中,從而達(dá)到特征降維的目的[12];但傳統(tǒng)的PCA算法在特征降維過(guò)程中需要對(duì)樣本的協(xié)方差矩陣進(jìn)行本征值和本征向量的求解,計(jì)算量較大.快速主成份分析法[13]是PCA算法的一種改進(jìn)方法,該方法在特征降維過(guò)程中能夠通過(guò)求解低維度的協(xié)方差轉(zhuǎn)置矩陣的本征向量值及本征值來(lái)代替求解高維度協(xié)方差矩陣本征向量值及本征值,因此可實(shí)現(xiàn)語(yǔ)音情感特征的高效降維.
設(shè)D是構(gòu)成語(yǔ)音情感特征向量的樣本矩陣,D∈Rn ×m, 其中n為語(yǔ)音樣本數(shù)量,m為語(yǔ)音樣本特征維數(shù).設(shè)mA為樣本均值,k為降維的維數(shù).則Fast_PCA算法降維的具體步驟可描述為:
Step 1 將D矩陣中的每個(gè)樣本減去mA, 得到中心化樣本矩陣Zn ×m.
Step 2 計(jì)算協(xié)方差轉(zhuǎn)置矩陣T,T=Z×ZT.
大禹集團(tuán)持續(xù)穩(wěn)步推進(jìn)節(jié)水設(shè)施農(nóng)業(yè)連鎖服務(wù)中心建設(shè),現(xiàn)有連鎖直營(yíng)店和加盟店近200家,向著逐步改善資本運(yùn)營(yíng)效率,快速擴(kuò)大市場(chǎng)覆蓋面方面持續(xù)邁進(jìn)??萍佳邪l(fā)實(shí)力是公司的核心競(jìng)爭(zhēng)力,公司累計(jì)獲得科研成果和專利技術(shù)共計(jì)180余項(xiàng),成為國(guó)家知識(shí)產(chǎn)權(quán)局第一批國(guó)家級(jí)知識(shí)產(chǎn)權(quán)優(yōu)勢(shì)企業(yè),并成立了節(jié)水灌溉產(chǎn)業(yè)戰(zhàn)略聯(lián)盟、大禹節(jié)水灌溉技術(shù)研究院、大禹節(jié)水院士專家工作站,力促公司科研水平邁向新高度。
Step 3 計(jì)算協(xié)方差轉(zhuǎn)置矩陣T的最大k個(gè)特征值和特征向量V1.
Step 4 對(duì)特征向量V1左乘ZT, 得到協(xié)方差矩陣的特征向量V,V=ZT×V1.
Step 5 對(duì)V進(jìn)行歸一化處理.
Step 6 計(jì)算Z×V, 將特征向量線性降維到k維空間.
圖1 3層BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)
BP神經(jīng)網(wǎng)絡(luò)具有較強(qiáng)的非線性映射能力,其能夠通過(guò)學(xué)習(xí)自適應(yīng)地更新神經(jīng)網(wǎng)絡(luò)的權(quán)值來(lái)逼近求解問(wèn)題的最優(yōu)解,因而被廣泛應(yīng)用于圖像分類、語(yǔ)音識(shí)別等領(lǐng)域.BP神經(jīng)網(wǎng)絡(luò)屬于多層前饋神經(jīng)網(wǎng)絡(luò),包含1個(gè)輸入層、多個(gè)隱含層和1個(gè)輸出層,層與層之間采用全連接方式,其最大的優(yōu)點(diǎn)是可以通過(guò)訓(xùn)練樣本反向傳播調(diào)節(jié)網(wǎng)絡(luò)的權(quán)值和閥值來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)的誤差平方和最小的目的[14].3層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示.圖1中,x1,x2,…,xn為BP神經(jīng)網(wǎng)絡(luò)的輸入信號(hào)值,y1,y2,…,ym為BP神經(jīng)網(wǎng)絡(luò)的輸出信號(hào)值.盡管BP神經(jīng)網(wǎng)絡(luò)具有很強(qiáng)的自學(xué)習(xí)和自適應(yīng)能力,但其仍存在一些不足之處,如網(wǎng)絡(luò)的權(quán)值及閥值是隨機(jī)初始化的,網(wǎng)絡(luò)的收斂速度較慢,當(dāng)網(wǎng)絡(luò)中存在多個(gè)極小值時(shí)問(wèn)題的解容易陷入局部最優(yōu)解.
為了克服BP神經(jīng)網(wǎng)絡(luò)自身存在的缺陷,本文采用遺傳算法對(duì)BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閥值進(jìn)行全局優(yōu)化搜索,通過(guò)訓(xùn)練、搭建語(yǔ)音情感分析BP網(wǎng)絡(luò)模型來(lái)提高語(yǔ)音情感識(shí)別的精度.利用遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的具體步驟如下:
Step 1 初始化BP神經(jīng)網(wǎng)絡(luò),確定網(wǎng)絡(luò)的輸入層、隱含層及輸出層,產(chǎn)生網(wǎng)絡(luò)的初始權(quán)值和閥值.
Step 3 隨機(jī)產(chǎn)生一個(gè)種群,并進(jìn)行染色體編碼;計(jì)算BP網(wǎng)絡(luò)誤差,確定染色體的適應(yīng)度值.
Step 4 對(duì)種群進(jìn)行遺傳迭代,根據(jù)個(gè)體適應(yīng)度選擇染色體并進(jìn)行交叉和變異,由此產(chǎn)生一個(gè)新的種群.
Step 5 計(jì)算新種群的適應(yīng)度,并更新該種群的染色體.
Step 6 判斷是否滿足退出條件,如果是則可獲得最優(yōu)BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閥值,轉(zhuǎn)Step 7; 否則轉(zhuǎn)Step 4, 繼續(xù)迭代.
Step 7 更新BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,生成優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型.
圖2 改進(jìn)的語(yǔ)音情感識(shí)別方法的流程圖
本文提出的語(yǔ)音情感識(shí)別改進(jìn)方法的具體工作流程如圖2所示,具體操作步驟為:
1)對(duì)語(yǔ)音情感語(yǔ)料庫(kù)進(jìn)行預(yù)處理.首先通過(guò)分析語(yǔ)音情感語(yǔ)料庫(kù)的特征為語(yǔ)料庫(kù)中的語(yǔ)音數(shù)據(jù)添加識(shí)別標(biāo)簽,然后對(duì)語(yǔ)音數(shù)據(jù)進(jìn)行特征提取、特征聯(lián)合以及歸一化處理.
2)建立訓(xùn)練集D1和測(cè)試集D2.首先利用Fast_PCA算法計(jì)算語(yǔ)音特征參數(shù)的主成份分量并分析其對(duì)語(yǔ)音特征的貢獻(xiàn)度,然后通過(guò)確定有效的特征維數(shù)將語(yǔ)音特征集劃分為訓(xùn)練集D1和測(cè)試集D2.
3)建立語(yǔ)音情感識(shí)別模型.首先利用訓(xùn)練集D1對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,并采用遺傳算法對(duì)網(wǎng)絡(luò)模型的參數(shù)進(jìn)行優(yōu)化;然后利用迭代動(dòng)態(tài)調(diào)節(jié)神經(jīng)網(wǎng)絡(luò)權(quán)值(閾值)獲得最優(yōu)的語(yǔ)音情感識(shí)別模型.
4)分析語(yǔ)音情感的識(shí)別性能.首先利用測(cè)試集D2對(duì)建立的最優(yōu)語(yǔ)音情感識(shí)別模型進(jìn)行驗(yàn)證,然后計(jì)算情感識(shí)別精度并進(jìn)行精度分析.
算法在Matlab R2014a環(huán)境下實(shí)現(xiàn)編程,計(jì)算機(jī)的配置為:Intel(R) i5-4570R, 8 G內(nèi)存,Windows7.為了更好地進(jìn)行語(yǔ)音情感識(shí)別效果對(duì)比,分別選擇國(guó)內(nèi)具有代表性的中科院自動(dòng)化所模式識(shí)別實(shí)驗(yàn)室提供的CASIA漢語(yǔ)情感語(yǔ)料庫(kù)[15]和柏林工業(yè)大學(xué)提供的德語(yǔ)情感語(yǔ)料庫(kù)[16]進(jìn)行語(yǔ)音情感識(shí)別驗(yàn)證.這兩個(gè)情感語(yǔ)料均在無(wú)噪聲環(huán)境下獲取,采樣率為16 kHz,采樣精度為16 bit.情感語(yǔ)料庫(kù)的基本信息如表1所示.
表1 語(yǔ)料庫(kù)信息表
在CASIA漢語(yǔ)情感語(yǔ)料庫(kù)、柏林德語(yǔ)情感語(yǔ)料庫(kù)中提取每句語(yǔ)料的7類原始語(yǔ)音情感特征(基音頻率、短時(shí)能量、短時(shí)幅值、短時(shí)平均過(guò)零率、共振峰、語(yǔ)音持續(xù)時(shí)間及MFCC),然后計(jì)算這7類原始特征的特征值及其一階差分、二階差分的統(tǒng)計(jì)值.根據(jù)計(jì)算所得結(jié)果,將其組合成186維的語(yǔ)音情感聯(lián)合特征,用以表示每句語(yǔ)料的情感信息.
為了驗(yàn)證本文所提出的語(yǔ)音情感識(shí)別改進(jìn)方法對(duì)語(yǔ)音情感特征的降維效果,采用Fast_PCA算法分別對(duì)2個(gè)語(yǔ)料庫(kù)的特征參數(shù)進(jìn)行降維處理.圖3和圖4為2個(gè)語(yǔ)料庫(kù)降維后的前10維主成份分量對(duì)原始語(yǔ)料信息的貢獻(xiàn)比例,表2為2個(gè)語(yǔ)料庫(kù)在不同降維處理時(shí)所耗費(fèi)的時(shí)間及對(duì)原始語(yǔ)料信息的貢獻(xiàn)比例.從圖3和圖4可以看出,第1維到第10維對(duì)原始語(yǔ)料信息的貢獻(xiàn)比例呈逐漸降低的趨勢(shì),其中第1維對(duì)原始語(yǔ)料信息的貢獻(xiàn)比例分別為36.87%和28.29%,第2維對(duì)原始語(yǔ)料信息的貢獻(xiàn)比例均為15%左右,第10維對(duì)原始語(yǔ)料信息的貢獻(xiàn)比例均低于5%以下.這表明經(jīng)過(guò)Fast_PCA算法特征降維后,對(duì)原始語(yǔ)料信息的貢獻(xiàn)程度起主要作用的主成份分量集中在低維區(qū).從表2可以看出,增加維數(shù)時(shí)降維時(shí)間雖呈增加趨勢(shì),但CASIA漢語(yǔ)情感語(yǔ)料庫(kù)和柏林德語(yǔ)情感語(yǔ)料庫(kù)的特征降維時(shí)間分別均低于0.1 s和0.2 s;當(dāng)語(yǔ)料情感特征維度降維至35維時(shí),其對(duì)原始語(yǔ)料信息的累計(jì)貢獻(xiàn)比例已經(jīng)超過(guò)95%.上述結(jié)果表明,采用Fast_PCA算法的降維效果較好.
圖3 降維后CASIA漢語(yǔ)情感語(yǔ)料庫(kù)的前10維主成份分量對(duì)原始語(yǔ)料信息的貢獻(xiàn)比例
圖4 降維后柏林德語(yǔ)情感語(yǔ)料庫(kù)的前10維主成份分量對(duì)原始語(yǔ)料信息的貢獻(xiàn)比例
表2 不同維數(shù)的降維處理時(shí)間及對(duì)原始語(yǔ)料信息的貢獻(xiàn)比例
為了進(jìn)一步驗(yàn)證本文方法對(duì)語(yǔ)音情感識(shí)別的有效性,將本文方法與傳統(tǒng)的無(wú)特征降維的SVM情感識(shí)別方法(SVM)、文獻(xiàn)[4]方法(PCA+多級(jí)SVM)及文獻(xiàn)[5]方法(PCA+SVM)進(jìn)行對(duì)比.BP神經(jīng)網(wǎng)絡(luò)和遺傳算法的相關(guān)參數(shù)設(shè)置如下:BP神經(jīng)網(wǎng)絡(luò)的輸出層采用二進(jìn)制進(jìn)行識(shí)別,CASIA漢語(yǔ)情感語(yǔ)料庫(kù)識(shí)別網(wǎng)絡(luò)的輸出層節(jié)點(diǎn)數(shù)為6, 柏林德語(yǔ)情感語(yǔ)料庫(kù)識(shí)別網(wǎng)絡(luò)的輸出層節(jié)點(diǎn)數(shù)為7; BP神經(jīng)網(wǎng)絡(luò)的最大迭代次數(shù)為2 000,學(xué)習(xí)率為0.01,目標(biāo)精度為0.001;遺傳算法的初始種群規(guī)模為30,交叉概率為0.3.
表3為基于CASIA漢語(yǔ)情感語(yǔ)料庫(kù)(其中50%用于訓(xùn)練集,50%用于測(cè)試集)的不同方法的語(yǔ)音情感識(shí)別效果.表4為基于柏林德語(yǔ)情感語(yǔ)料庫(kù)(其中70%用于訓(xùn)練集,30%用于測(cè)試集)的不同方法的語(yǔ)音情感識(shí)別效果.由表3和表4可以看出,本文方法的語(yǔ)音情感平均識(shí)別率顯著優(yōu)于其他3種方法(SVM、PCA+SVM和PCA+多級(jí)SVM).
表3 不同方法對(duì)CASIA漢語(yǔ)情感語(yǔ)料庫(kù)中的語(yǔ)音數(shù)據(jù)進(jìn)行情感識(shí)別的結(jié)果 %
表4 不同方法對(duì)柏林德語(yǔ)情感語(yǔ)料庫(kù)中的語(yǔ)音數(shù)據(jù)進(jìn)行情感識(shí)別的結(jié)果 %
研究表明,與傳統(tǒng)的SVM情感識(shí)別方法、PCA+SVM方法及PCA+多級(jí)SVM方法相比,本文提出的基于Fast_PCA算法的快速降維及遺傳算法參數(shù)優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)語(yǔ)音情感識(shí)別方法,不僅能夠以較低的時(shí)間代價(jià)實(shí)現(xiàn)特征維數(shù)降維,有效克服局部最優(yōu)問(wèn)題,而且情感識(shí)別的平均精度顯著優(yōu)于上述3種方法,因此本文方法具有很好的實(shí)用價(jià)值.本文所采用的語(yǔ)音情感語(yǔ)料庫(kù)均是在無(wú)噪聲條件下提取的,而在實(shí)際中語(yǔ)音信號(hào)的提取往往會(huì)受到背景噪聲的影響,因此今后我們將進(jìn)一步研究噪聲環(huán)境下的語(yǔ)音情感識(shí)別算法.