張 衛(wèi),賈 宇,張雪英
(1.山西財經大學信息學院,山西 太原 030006;2.太原理工大學信息與計算機學院,山西 太原 030024)
語音是人和人進行信息傳遞的重要方式之一,也是傳遞情感的重要媒介。因此,機器辨別語音情感變得愈加重要,同時成為人機交互研究的一個重要分支。機器分析語音情感信號,主要分為語音的預處理、特征提取、構建識別模型三部分。在特征提取方面,現(xiàn)階段的語音特征數量不斷增加,所以需要提取出更加有效、低冗余的情感識別特征。識別模型選取方面,近些年隨著機器學習和深度學習相關技術的不斷發(fā)展,帶來了更多的識別模型,如支持向量機(Support Vector Machine,SVM)[1],卷積神經網絡(Convolutional Neural Networks,CNN)[2,3],循環(huán)神經網絡(Recurrent Neural Network, RNN)[4,5],這些模型帶來了不錯的識別效果,都同時在語音情感分類上取得了一定的成果。不過支持向量機是通過對音頻信號分析轉化為特征向量后進行分類,對于復雜的高維語音特征,非線性的變換能力弱的缺陷使得支持向量機無法充分利用淺層特征達到很好地分類效果。而卷積神經網絡通過多層一維卷積核對淺層的語音特征進行深度提取,在很多應用方面展現(xiàn)出了很好地效果。但語音信號屬于一種時序信息,卷積神經網絡模型一定程度上割裂了特征在時間上的聯(lián)系。循環(huán)神經網絡具有一定的記憶功能,理論上可以較好地處理時序數據,但是隨著數據的時間增加,會出現(xiàn)梯度消失或者梯度爆炸的問題。
混合語音情感識別是對不同語種的情感共同進行識別,雖然人類在情感方面具有同性,但具體的情感在不同的語種表達上又會有各自的特點與差異性。所以使用單語種的情感識別方法進行混合語料庫識別,識別率會有明顯的下降。鐘琪[6]在混合語料庫的實驗中驗證中文CASIA和德語EMO-DB的四分類混合庫識別率最高只有73.44%。文獻[7]中使用了i-vector、MFCC、SDC系數作為分類特征,并使用多任務框架進行混合語中的分類,平均識別率最高只有64%。文獻[8]中提出了一種引入最大均值差異和特征降維算法來尋求特征的鄰近空間的方法,但在平均識別率也只有56.8%。不過可以看出,混合語種識別率低的原因就是不同語種之間特征分布相似度不同,造成特征共性不足,單語種的情感特征泛化能力弱。
文獻[9]中提到了使用降噪自編碼器對原始數據集提取的特征進行加噪還原,最終提取出深度的特征進行單語種的情感分類,取得了一定準確率的提升。文獻[10]將語音特征輸入到長短時記憶單元(Long Short Term Memory,LSTM)中,并將輸出使用支持向量機進行分類,進一步提升了分類準確率。針對以上的不同分類模型的問題和優(yōu)勢,本文提出了自編碼器+LSTM的模型進行混合語音庫的情感分類識別。自編碼器是通過對稱的神經網絡進行輸入特征的壓縮還原,本文通過此原理將原始特征進行變換,并獲取更抽象的深層次信息,利用這一特點可以有效的提取混合語種的深度特征,從而獲得不同語種特征之間的共性。同時將LSTM作為處理數據的模型,一方面可以充分利用時序信息,另一方面通過門函數可以改進循環(huán)神經網絡出現(xiàn)的梯度消失和爆炸的問題。最后將LSTM層輸出數據傳輸到Softmax層進行分類,驗證該模型分類的有效性。
自編碼器是由Hinton提出的一種構建對稱神經網絡的方法,主要用于實現(xiàn)數據降噪、特征降維[11]和特征提取[12]。自編碼器為了學習數據的內部特征,限制了數據內部的表示空間的維度,迫使模型必須學習一些低維特征對輸入特征進行表示,從而實現(xiàn)了數據的降維和特征提取。
一個完整的自編碼器結構通常如圖1所示,包含編碼和解碼兩部分。通過對輸入的特征自監(jiān)督學習,自編碼器嘗試建立一個恒等函數,將輸入特征x送入編碼器壓縮到潛在空間中,得到的輸出數據編碼h。解碼器的目的是將潛在空間中的數據盡可能地解碼成原來的輸入,編碼器的輸出h作為解碼器的輸入數據,通過解碼后獲得輸出數據y。再通過縮小編碼器的輸入x和解碼器的輸出y之間的誤差,反向重復調節(jié)自編碼器的參數。最終訓練好的自編碼器的編碼h就是得到的深層次特征。
圖1 自編碼器結構
假設原始輸入x={x1,x2,…,xn},經編碼器f后,獲得編碼h=f(x),再輸入到解碼器g后,獲得解碼重構信號y={y1,y2,…,yn}。訓練自編碼器的誤差函數L使用均方誤差重構,整個訓練過程,設置目標的輸出y和輸入x相等。網絡訓練中的編碼、解碼以及誤差函數通過式(1)表達
h=σ1(W12x+b1)
y=σ2(W23h+b2)
L(x,y)=‖x-y‖2
(1)
σ1和σ2分別是隱藏層和輸出層激活函數,根據數據的具體情況,會在Tanh、Sig-moid、Relu中進行選擇。通常隱藏層選取Sigmoid函數,輸出層選取線性函數。
通過反復最小化損失函數,算法完成了對自編碼器的訓練。當完成訓練之后,編碼h具備了原有淺層特征不具備的更抽象的特征意義,比原始特征具備了更強的魯棒性,可以作為情感的分類特征。
Goller[13]提出循環(huán)神經網絡(RNN)。與傳統(tǒng)的神經網絡不同,RNN是一種具有記憶功能的網絡。RNN是將之前的信息進行記憶,并將該信息和新輸入的特征一起作為新的輸入,可以很好的表征時序變化的數據,因此應用在語音數據分類上會有較好的效果[14]。但是RNN在面對長序列訓練過程中,由于迭代層數逐漸增大,會出現(xiàn)梯度消失[15]的問題,所以使用RNN的變形體LSTM模型可以處理更長的序列。LSTM模型最先由HoHochreiter & Schmidhuber[16]提出,后來由Alex Graves[17]改進,梯度消失的問題通過引入門函數來解決。文獻[18]中使用了LSTM進行語音情感分類。LSTM通過使用輸入門、遺忘門、輸出門三個單元完成記憶的控制過程,從而獲取一段時長的時序規(guī)律。LSTM在面對由一系列幀構成的語音信號數據處理過程時,展現(xiàn)出了比傳統(tǒng)分類更好的效果。xt指第t個輸入序列元素值;Ct指記憶單元(cell)或稱為細胞狀態(tài),是網絡的核心,控制信息的傳遞;i指輸入門(inputgate) 決定當前xt保留多少信息給Ct;ft指遺忘門(forgetgate)決定能夠保留多少前一時刻的細胞狀態(tài)Ct-1至當前的Ct;Ot指輸出門(outputgate)決定Ct傳送多少至當前狀態(tài)的輸出ht;ht-1指在t-1 時刻的隱層狀態(tài)。其單元結構如圖2所示,各個門的更新步驟按照式(2)進行。
圖2 LSTM單元結構
(2)
LSTM 通過門函數,控制歷史信息的傳遞,使得前幾幀部分特征可以與當前幀特征共同決定當前的輸出結果,最后LSTM層得到的所有輸出送入softmax層對每一類標簽進行概率分類,理論上其步長越長,挖掘出的信息量越多,因此具備了一定的時間序列的處理能力和預測能力。
本文將提取原始的180維特征輸入到自編碼器當中進行訓練,通過多次縮小損失函數后,提取中間隱藏層的深度特征,將隱藏的深度特征輸入到單層的LSTM中進行識別分類。
通過對語音庫提取MFCC[19]、MEL Spect-rogram Frequency[20]、Chorma三種類型特征,共獲得180維特征。提取的特征見表1。
表1 輸入的原始特征
將180維原始特征送入自編碼器中,進行特征還原重構,其中編碼器使用一個500維的神經層,解碼時使用sigmoid函數完成自編碼器的結構見圖3,具體參數見表2。
圖3 自編碼結構
表2 自編碼器參數
通過自編碼器隱藏層提取的500維深度特征,傳輸至單LSTM層,最后連接到soft-max層,整個模型的結構見圖4。
圖4 自編碼器+LSTM模型結構
綜上,本文提出了一種針對混合庫語音情感分類任務,利用自編碼器提取深度特征后,再將深度特征輸入到LSTM層,充分利用LSTM模型的處理時序數據的能力。該模型不僅能夠有效地將不同語種有較大差異性的原始特征進行重構,提取出具有更多共性的深層次特征。并通過LSTM層,充分利用這些深層特征,分類準確率得到較明顯的提升。
本實驗使用德文EMO-DB語料庫和中文CASIA語料庫的語音數據進行情感識別分類,EMO-DB由10名人員錄制,包括憤怒、高興、害怕、傷心、無聊、厭惡、中興七種情感。CASIA由2名男性和2名女性每人對憤怒、高興、害怕、自然、驚訝、悲傷六種感情進行錄制。為了進行混合語音探究,本次實驗先分別使用SVM、CNN、LSTM對兩個語音庫單獨進行識別,獲取不同模型對單語音庫的識別率。再使用兩個庫共同擁有的憤怒、高興、害怕、傷心、中興五種感情進行分類測試。其中德語有408條數據,中文有1000條數據。按照8:2的比例劃分訓練集和測試集,訓練集共1126條,測試集共282條。最終按照十折交叉驗證完成實驗。實驗環(huán)境使用深度學習框架Keras。
首先進行了單語言和混合語音的情感識別。將180維原始特征(見表1)分別輸入不同的分類模型進行情感識別,識別結果如表3所示。使用加粗標明了每一種語種識別率最高的識別模型對應的識別率。其中CNN使用三層一維卷積層,LSTM使用單層結構,具體參數見表4和表5。
表3 單語言及混合語音庫情感識別率
表4 CNN網絡參數
表5 LSTM網絡參數
實驗結果發(fā)現(xiàn)德語的情感識別準確率要遠高于中文語音庫,且不同識別模型的識別效果差距不太大。中文語音情感識別率偏低,識別模型選用SVM識別效果會更好。另外通過對比,發(fā)現(xiàn)混合語音的識別準確率會受到不同語言特征的影響,并不會很高,大致與中文數據庫識別率相似,其中混合庫使用SVM和LSTM的識別率略低于CASIA,使用CNN識別率高2.6%。
由此可知,識別模型的選擇以及找到不同語種之間的特征聯(lián)系,才可以使混合情感識別的準確率得到提高。因此設計了下面的自編碼器特征訓練進行試驗。
表6統(tǒng)計了原始180維特征、降維120維自編碼器特征、500維自編碼器特征、500維降噪自編碼器特征分別在SVM、CNN、LSTM的識別效果。
此次試驗分別使用SVM、CNN和LSTM三種模型對原始180維特征、自編碼壓縮120維特征、自編碼500維特征、降噪自編碼500維特征進行分類。
在表6顯示了當使用原始特征直接連Softmax層進行分類時,識別率只有65.7%。但原始特征經過自編碼器訓練后提取出的深度特征接入Softmax層后都有明顯的提升,其中自編碼器500維特征的識別率有71.2%。SVM在自編碼120維特征效果最好,達到了78.2%。而CNN在500維的降噪自編碼器和自編碼器特征中識別率最高,達到了78%。LSTM方面,500維的自編碼器特征識別率可以提升到81.6%,較原始特征有較好的提升效果,同時也略優(yōu)于其它幾種特征和不同識別模型的組合。這說明自編碼器對混合語音的特征進行無監(jiān)督訓練起到了較好的效果,使混合數據之間建立了聯(lián)系。降噪自編碼器是對數據一定程度破壞再進行重構,對比原始特征,識別率也有一定程度的提升,但是不如自編碼器直接訓練的效果好。其主要原因是加噪聲時,原始特征是否能變得更加適合情感分類有一定的隨機性,加噪后的數據對于分類更多的起到的是副作用。由此可見降噪自編碼器之所以可以提升識別率,主要依靠自編碼器對特征的深度提取的作用。
表6 自編碼器特征在混合語音庫的識別率
圖5是多次進行不同隱藏層神經元數量構建模型分類的識別率圖。當隱藏層神經元較少時,識別率不能達到最高。當神經元數量達到500左右時,識別率基本達到最好,而且當神經元過多時,輸出特征過大,計算速度會變慢,同時識別率也有下降趨勢。所以無論神經元數量過大還是過小,都不利于無監(jiān)督訓練過程特征的重構。所以500維取得了一個較好的效果。降噪自編碼器是對數據一定程度破壞再進行重構,對比原始特征,識別率也有一定程度的提升,但是不如自編碼器直接訓練的效果好,可見降噪自編碼器之所以可以提升識別率,主要依靠自編碼器對特征的深度提取的作用。
圖5 隱藏層神經元數對情感識別率的影響
在日益全球化的趨勢下,多語言的交流越來越重要。針對混合語言情感特征差異性導致的識別率較低的問題。本文通過對比單語言和混合語音情感識別,提出了使用自編碼器+LSTM的分類方法來提升識別效果。其中自編碼器用來對語音特征進行變換,抽象更深層次的特征。LSTM則充分利用不同幀的時序信息進行情感分類,實驗證明該方法比原始特征直接分類至少提升了7.5%的準確率。本研究只考慮使用MFCC,MEL Spectrogram Frequency,Chroma三種特征輸入自編碼器進行深度提取,而且只使用了中文和德文語音庫進行探究,對于其它語種的特點掌握的不夠充分。未來工作將進一步使用更多的語音庫以及更多的特征和不同的方法對進行處理來獲得更好的效果