史少寒,周曉彥,李大鵬
(南京信息工程大學電子與信息工程學院,江蘇 南京 211800)
語音是人類用來進行相互交流的重要工具之一。隨著人工智能領域取得突破性發展,人們越來越關注語音信號處理技術[1]。對用戶進行語音情感的分析,可以使人機之間的交互變得更加生動和高效。
語音情感識別的主要過程有提取語音特征和構建識別模型。
就特征的提取而言,目前主要選取的語音特征有能量特征、基音頻率特征、共振峰特征、梅爾倒譜系數特征(Mel-scale Frequency Cepstral Coefficients,MFCC)等[2]。目前有大量集成現代機器學習算法與音頻信號處理的技術被運用到了語音情感識別工作的特征提取[3]。Chen 等[4]使用線性擬合以獲得倒譜系數來進行語音分析。在深度學習領域,盧官明等[5]利用卷積神經網絡將更高層次的特征從低層特征中提取出來。也有一部分學者關注特征融合,傅升等[6]運用遺傳算法將聲學特征融合進行分析,王頗等[7]將發音動作與聲音特征融合進行語音分析。但是,在更為細節的特征提取中的特征補齊問題上,大都采用了補零的方法,這會導致無效信息的冗余[8]。
就模型的構建而言,目前的主流方法是深度學習或者機器學習模型。語音情感識別中,深度學習主要使用卷積神經網絡、循環神經網絡或將二者結合[9-11]。Sun[12]構建的基于性別信息的區域卷積神經網絡(Region-based Convolutional Neural Networks,RCNN)成效卓著。也有學者將運用于其他領域的神經網絡遷移至語音情感識別工作中,Oord 等[13]開創性地提出了因果擴張卷積并將其運用在了語音序列處理工作中,Tang 等[14]將因果擴張卷積的運用進一步擴展到長語音情感的識別,Kim 等[15]通過連接卷積神經網絡(Convolutional Neural Networks,CNN)與長短期記憶(Long Short-Term Memory networks,LSTM)網絡構建的CNN-LSTM 模型在柏林語音集上取得了極佳的效果,成為在柏林語音集表現最優的模型之一。在機器學習方面,李書玲等[16]使用支持向量機(Support Vector Machine,SVM)同遺傳算法混用的模型在中文語音集的語音情感識別工作上取得了不俗的表現。
為避免特征補齊時補零造成無效信息的冗余,本文對傳統方法進行改進,構建了一種基于差分整合移動平均自回歸模型(Autoregressive Integrated Moving Average,ARIMA)的特征補齊的語音情感算法。該算法首先進行數據處理,選取需要的特征,并利用ARIMA 模型進行特征補齊,消除語音間的差異。然后,通過因果擴張卷積神經網絡和長短期記憶網絡,對處理完的特征數據構建最適合的語音情感識別模型。最后實驗結果表明:用ARIMA 方法進行特征補齊將分類器的上限提高了約6%,準確率提高2.3%。用因果擴張卷積神經網絡和長短期記憶網絡搭建的模型與卷積神經網絡相比,準確率提升10%。
差分整合移動平均自回歸[17]模型能夠進行時間序列的預測,其基本思想是:將被預測對象隨著時間推移產生的數據作為一個隨機時間序列,并建立相應的模型對其進行描述,若其被識別,則能夠預測未來值[18]。因此,利用ARIMA 的因果特性可以對缺失的語音信息進行一定的彌補。
ARIMA 算法步驟如圖1 所示。第一,選取觀察值序列,并檢測序列的平穩性。若序列不平穩,利用差分運算對其進行平穩化處理。第二,對序列進行白噪聲檢驗。若為白噪聲,則通過補零補齊,不為白噪聲則繼續進行模式識別。第三,根據識別規則建立模型,觀察自相關圖、偏自相關圖或依據赤池信息準則[19](Akaike Information Criterion,AIC)確定模型階數。第四,進行模型擬合和模型檢驗,若通過檢驗,則繼續進行預測。第五,對未來的時間序列進行預測。

圖1 ARIMA 算法步驟
傳統的卷積神經網絡并無法直接處理具有因果性的時間序列,為使卷積能夠處理時間序列,對其通常處理圖像的卷積窗進行修改,實現對時序信號的“因果卷積”處理。因果卷積的主要思想是根據x1…xt和y1…yt-1去預測yt,使得yt接近于實際值。圖2為因果卷積的計算示意圖。

圖2 因果卷積示意圖
但因果卷積的卷積窗大小有限,導致每一個卷積層所能探知到的輸入單元有限。若擴大卷積窗大小,計算量會激增,輸出層的信息也會變少。因此,Oord等[13]提出因果擴張卷積。圖3 為因果擴張卷積的示意圖。與因果卷積相比,因果擴張卷積在隱藏層與輸出層增加了擴張度,其能夠探知到的單元數沒有減少,輸出張量大小也無區別,但大大減少了運算次數。在輸出相同的情況下探知范圍也更加龐大。
長短期記憶[20]模型對循環神經網絡(Recurrent Neural Networks,RNN)進行改進,采用不同的方法計算隱藏狀態,避免了在遞歸神經網絡傳播過程中產生梯度爆炸和梯度消失,能夠實現長時間的記憶。LSTM 的結構主要有遺忘門、輸入門和輸出門,其計算過程如下[21]:
首先,以xt作為LSTM 網絡的輸入,ht為LSTM細胞單元的隱藏向量。在t時刻,通過遺忘門對上個細胞單元狀態Ct-1中的無用歷史進行選擇性忘記,控制保留到當前細胞單元狀態Ct的信息量為:
其次,輸入門決定多少新信息能保存到細胞單元狀態:
式中:Wf、bf分別為忘記門的權重和偏置,Wi、bi分別為輸入門的權重和偏置,是需要訓練的參數。σ為Sigmoid 函數。
然后,上個細胞單元狀態Ct-1更新為當前細胞單元狀態Ct:
最后,輸出門決定從當前細胞單元狀態Ct輸出的最終信息ht:
式中:WC、bC分別為細胞單元狀態的權重和偏置,Wo、bo分別為輸出門的權重和偏置,同樣,也是需要被訓練的參數。
本算法主要包括三部分,第一部分是數據處理,描述從語音集中選取和處理語音特征的過程。第二部分是系統模型的構建。第三部分是對系統的分析。本算法流程見圖4。

圖4 語音情感識別實驗流程
Kim 等[15]提出的CNN-LSTM 模型根據研究經驗選取了GeMAP 特征集[22]中的20 個特征,并在柏林語音集上進行實驗取得了非常好的效果,因此,本文所有使用的語音情感識別模型均使用CNN-LSTM所選取的特征。
在過往的研究中,對特征沿時間軸補零或截斷,會造成信息的冗余、丟失[8]。Tang 等[14]對語音特征利用因果模型建模取得了比較好的效果,說明語音特征的因果性有著相當的利用價值。ARIMA 方法正是一種利用序列因果性進行特征補齊的算法,其表達式為ARIMA(p,q,d),其中p為自回歸系數,d為對序列進行差分運算的次數,q為移動平均系數。
設定每一個特征共提取512 幀,從每一個語音樣本中提取的一個512 幀20 維特征矩陣稱為特征參數圖。對于特征超過512 幀的語音進行截斷,無法達到的利用ARIMA 進行信息補齊。
本文提出一種以ARIMA 模型為基礎的序列補齊方式,整個算法流程見圖5。

圖5 ARIMA(p,d,q)模型特征補齊流程
對于一個特征向量[y],首先進行序列平穩判斷,若序列平滑則可進入下一步,否則對其進行差分直到滿足平滑的條件。經過平滑判定的特征向量在之后要進行白噪聲判斷。若序列[y]的自相關系數值恒定并且均值恒定,表示序列為純隨機過程與觀察值之間毫無關系,此時無法再繼續利用ARIMA 方法補齊缺失值,進行補零補齊。若不為白噪聲則繼續進行ARIMA 參數補齊。在進行ARIMA 參數補齊時,首先要進行模式識別,這里使用Box-Jenkins[23]方法進行識別,即通過序列自相關與偏相關函數的截尾與拖尾性選擇模型。確定好模型的類型后,需要選取合適的p,q值,從而進一步確定模型階數。然后,通過最小二乘法估計參數。最后,進行Q值檢驗,不通過便重新進行模式識別,通過就進行模型預測填補特征缺失特征。這樣,通過基于ARIMA 模型補齊參數方法以及截斷就可以對柏林數據集同一提取20×512 大小的特征張量。
語音情感識別模型應注意兩個問題,一是語音特征作為時間序列要注意模型的因果性,二是計算機對語音的采樣導致特征由連續變為離散,而語音本身是有連續特性,所以要權衡語音序列離散特性與連續特性。
首先,用因果卷積提取離散特征。設定卷積窗大小為(1,N),對每一個特征沿時間軸進行卷積。經過這樣的卷積后,得到的輸出張量仍有繼續精取特征的空間。如圖6 所示,利用擴張卷積法對這二十個特征進行融合,卷積窗設為(2K,M),這樣可以讓特征沿著特征類別進行整合。由于這一過程使用擴張卷積,有擴張率L,卷積窗視野能夠達到(2K+L-1,M)。之后,再對輸出沿著特征方向卷積即可以獲得較為理想的精簡高維離散特征。

圖6 因果擴張卷積精取離散特征過程
同時,對離散特征提取連續特性能夠體現出語音中的情緒波動,這里采用LSTM 網絡。最后得到的輸出向量既有離散特性又有連續特性,保證了整個過程都是端到端的網絡,未產生割裂感。
本文參考Kim 等[15]提出的CNN-LSTM 模型最終構建MYNET(即本文構建的模型)模型。此模型的具體參數見表1。該模型通過因果卷積以及擴張卷積等提取離散特征再借由LSTM 模型提取連續特性,最后由SOFTMAX 分類器進行分類。

表1 模型參數
本文模型訓練采用柏林語音集,其有10 個個體語音片段。每次訓練選取9 個語音作為訓練集,剩余1 個作為測試集,共訓練10 次,保證每個個體都能成為測試集,訓練出分類器1~10。
最后,將兩種輸出向量首位拼接,通過ReLU 函數激活后,再作為分類器的輸入,從而解決了離散特征和連續特征維數不同的問題。
本文構建的模型主要由兩個部分構成,先是通過因果卷積提取輸入信號的離散特征的高維特征,然后利用LSTM 提取高維離散特征的連續特性,這樣,輸入分類器的特征既是語音信號的離散特征,又能體現出連續特性,可以獲得更好的效果。
為了進一步對比模型結構,構建連續特征與離散特征并行提取的模型MYNET2。其特征提取方式和MYNET 相同。另外,構建一個未基于ARIMA 方法,而僅以零進行數據補齊的MYNET0 模型。
下面,對MYNET2、MYNET0 進行訓練測試,運用的方法和參數都和MYNET 相同,訓練結果見表2。由表看出,MYNET2 的訓練效果弱于MYNET,這是由于離散特征與連續特征維數不合,融合不佳。普通補零的MYNET0,與基于ARIMA 方法補齊數據的MYNET 相比,僅一個分類器較高,效果較差。

表2 不同模型結構對比測試結果
綜上,使用ARIMA 算法補齊特征,分類測試準確率均值提升了2.3%,上限提升了6%,模型表現更穩定,有更強的泛用性。
為進一步驗證MYNET 模型的有效性,參考徐華南[21]提出的基于具有雙線性特征的BCNN 構建的模型與上文提到的一些模型,分別做了以下對比實驗:①CNN-LSTM:Kim 等[15]提出的CNN-LSTM 模型;②SVM:李書玲等[13]提出的SVM 方法分類的模型;③CNN_base:提取出的語音特征僅輸入到CNN網絡中進行語音情感分析;④BCNN_base:在③的基礎上,將CNN 得到的特征通過雙線性池化進行融合,得到基于BCNN 空間特征的準確率;⑤BCNN_BLSTM_base:在③的基礎上,輸入到CNN-BLSTM 網絡,并結合④中的BCNN,得到基于BCNN 時間和空間特征的準確率。
最終比較結果匯集于表3。

表3 不同方案對比測試結果
從結果來看,使用LSTM 能夠顯著提高識別準確率。另外,與普通的卷積神經網絡和雙線性卷積神經網絡相比,MYNET 識別率也較高,與卷積神經網絡相比提升10%,說明因果擴張卷積能增強模型的穩定性。使用SVM 方法分類的模型,相比于其他方案,識別率較低。因此,對于MYNET 模型而言,基于因果擴張卷積和LSTM 構建情感識別模型,一定程度上增強了算法的表現力。
使用van der Maaten 等[24]提出的TSNE 降維法對SOFTMAX 分類器的輸入特征進行降維可視化,做出圖7 所示的情感分類混淆矩陣。由圖可發現,較為溫和的情緒集中于可視化圖的中間,且它們的分界線在交界處糾纏。極端情緒遠離溫和情緒簇的中心,但無聊與開心情緒卻與極端情緒有交集。值得注意的是,憤怒情緒的中心離厭惡、恐懼較遠,但這兩個情緒的邊界上有被判為憤怒的語音。

圖7 情緒分類可視化
將可視化結果做數字化處理,得到圖8 所示的情感分類混淆矩陣,發現誤判主要集中在悲傷、自然、開心這些溫和情緒簇的邊界。雖然圖7 中憤怒情緒分布較為分散且覆蓋較廣,但圖8 中其誤判只發生在與無聊之間的判斷。而溫和情緒間分類的錯誤占57.4%,可見該模型在溫和情緒間的分類表現乏力。

圖8 情感分類混淆矩陣
綜上,本算法成功構建了一個語音情感識別模型,但此模型對溫和情緒判斷的準確性還有待提高。
本文提出一種基于ARIMA 算法特征補齊的語音情感識別算法,該方法首先利用ARIMA 算法進行特征補齊,然后基于因果卷積網絡和LSTM 構建MYNET 識別模型,采用柏林語音集進行實驗證實,實驗結果表明,本方法有效地提高了語音情感識別的準確率,增強了模型的表現力和泛用性,但對溫和情緒判斷的準確性還有待提高。
通過本文分析可知,EMNET、MYNET 或與其類似的模型架構在處理該語音集時幾乎已是最優方案,若要實現質的提升需要徹底摒棄這種模型構建思想,采用其他方式。但也可以像Letaifa 等[25]一樣考慮對語音集進行優化,如根據語音的聲學特性為其增加額外的標簽以輔助訓練。或是對于選取的特征進行優化,例如姚森[26]就運用了隨機森林的方法進行特征的選取。