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