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