薛均曉, 黃世博, 王亞博, 張朝陽, 石 磊
(1.鄭州大學(xué) 軟件學(xué)院,河南 鄭州 450002; 2.鄭州大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,河南 鄭州 450002; 3.鄭州大學(xué) 信息工程學(xué)院,河南 鄭州 450001)
語音情感識(shí)別是人機(jī)交互領(lǐng)域的重要技術(shù),在安全駕駛、采集病人情緒狀態(tài)、結(jié)合情感輔助發(fā)言等方面都有廣泛的應(yīng)用?,F(xiàn)實(shí)生活中,由于語音多樣性、環(huán)境多樣性,以及說話者的說話習(xí)慣、性別、語氣、音調(diào)、語速等問題,導(dǎo)致語音的情感識(shí)別成為一項(xiàng)具有挑戰(zhàn)性的工作。
近年來,隨著深度學(xué)習(xí)的迅速發(fā)展,研究人員在語音情感識(shí)別領(lǐng)域運(yùn)用深度學(xué)習(xí)技術(shù),取得了很好的成果[1-4],但仍存在一些需要改進(jìn)的地方:①對(duì)于語音的分析中并沒有全部關(guān)注到語音的空間特征、時(shí)序特征以及前后語義關(guān)系;②對(duì)于語音樣本長(zhǎng)度參差不齊的問題,填充長(zhǎng)度過長(zhǎng)會(huì)導(dǎo)致每個(gè)樣本中增添很多冗余信息,過短則會(huì)導(dǎo)致數(shù)據(jù)丟失。
針對(duì)上述問題,本文提出一種基于時(shí)空特征的語音情感識(shí)別方法。該方法由空間特征提取模塊、時(shí)間特征提取模塊以及特征融合模塊組成。空間特征提取模塊關(guān)注語音的空間特征,時(shí)間特征提取模塊關(guān)注語音的時(shí)間特征和語音信號(hào)中前后語義關(guān)系。為了解決語音長(zhǎng)度不一導(dǎo)致填充時(shí)信息丟失或冗余問題,模型采用3種補(bǔ)零填充長(zhǎng)度得到3個(gè)不同尺度的語譜圖,分別提取它們的空間特征、時(shí)間特征以及前后語義關(guān)系,在特征融合模塊中將提取得到的3個(gè)特征向量融合到一起。
目前主要有2種描述情感的方法:基于離散的方法和基于維度的方法。
情感的離散描述方法是將情感離散化,并進(jìn)一步類別化。陳煒亮等[5]提出一種新的情感識(shí)別模型MFCCG-PCA,實(shí)現(xiàn)生氣、高興、害怕、悲傷、驚訝和中性6種情感的分類。離散的描述方式簡(jiǎn)單并且應(yīng)用廣泛,但是情感描述單一。
情感的維度描述方法是將情感狀態(tài)描述為一種笛卡爾空間,空間的每個(gè)維度對(duì)應(yīng)1種情感屬性。Schlosberg[6]提出倒圓錐三維情感空間,從3個(gè)維度對(duì)情感進(jìn)行描述,將情感描述成1個(gè)倒立圓錐形的空間模型?;诰S度的情感描述方法利用多維的數(shù)值來表示情感,能夠描述情感的微妙變化。
早期的語音情感識(shí)別模型主要有隱馬爾可夫模型、支持向量機(jī)等傳統(tǒng)的模型。Lin等[7]利用隱馬爾可夫模型和支持向量機(jī)識(shí)別5種情緒。Pan等[8]探究線性預(yù)測(cè)頻譜編碼(LPCC)、梅爾頻譜系數(shù)(MFCC)等特征,并在相關(guān)數(shù)據(jù)集上訓(xùn)練支持向量機(jī)。
近年來,基于深度學(xué)習(xí)的方法成為語音情感識(shí)別的研究熱點(diǎn)。Mao等[9]提出使用卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)情感顯著性特征;Trigeorgis等[10]結(jié)合卷積神經(jīng)網(wǎng)絡(luò)和長(zhǎng)短期記憶網(wǎng)絡(luò),提出解決“情境感知”情感相關(guān)特征的方法;Badshah等[11]提出3個(gè)卷積神經(jīng)網(wǎng)絡(luò)結(jié)合3個(gè)全連接層的模型從語譜圖中提取特征,并預(yù)測(cè)7種情感;Tzirakis等[12]利用卷積神經(jīng)網(wǎng)絡(luò)和長(zhǎng)短期記憶網(wǎng)絡(luò),提出一種端到端的連續(xù)語音情感識(shí)別方法;Zhang等[13]利用預(yù)訓(xùn)練的AlexNet模型以及支持向量機(jī)預(yù)測(cè)話語級(jí)情緒。
本文提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)CNN和雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(BiGRU)的語音情感識(shí)別模型TSTNet,模型結(jié)構(gòu)如圖1所示。在數(shù)據(jù)預(yù)處理部分,首先對(duì)一個(gè)語音信號(hào)樣本進(jìn)行傅里葉變換,針對(duì)3種補(bǔ)零填充長(zhǎng)度得到3個(gè)不同尺度的語譜圖,然后將其依次輸入空間特征提取模塊和時(shí)間特征提取模塊中,得到3個(gè)特征向量,最后將這3個(gè)特征向量進(jìn)行特征融合和情感分類。
圖1 TSTNet模型結(jié)構(gòu)Figure 1 TSTNet model structure
在預(yù)處理部分考慮到語音長(zhǎng)度相差很大的問題,首先將普通的WAV語音信號(hào)采用3種補(bǔ)零填充長(zhǎng)度進(jìn)行填充,并轉(zhuǎn)換為語譜圖?;趯?duì)數(shù)據(jù)信號(hào)長(zhǎng)度分布情況的分析,選擇的3種填充長(zhǎng)度分別為400、800、1 500。語譜圖的轉(zhuǎn)換過程如圖2所示。
圖2 語譜圖轉(zhuǎn)換過程Figure 2 Spectrogram conversion process
首先對(duì)語音信號(hào)進(jìn)行采樣、量化、編碼處理,使之轉(zhuǎn)變成數(shù)字信號(hào)。通過下采樣,將語音信號(hào)的采樣率由44.1 kHz轉(zhuǎn)化為16 kHz。為避免在傅里葉變換操作期間出現(xiàn)數(shù)值問題,對(duì)模數(shù)轉(zhuǎn)換后的數(shù)據(jù)幀預(yù)加重,并進(jìn)行分幀、加窗以及短時(shí)傅里葉變換,得到需要的語譜圖(spectrogram)。
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks, CNN)對(duì)于圖像和語音的特征提取有出色的表現(xiàn)。將2.1節(jié)中的3個(gè)不同尺度的語譜圖其中之一(維度為 [L, 200, 1],L∈ (400, 800, 1 500)) 送入CNN中,利用CNN去捕獲音頻的局部特征,其他2個(gè)語譜圖處理過程與此相同。卷積層的計(jì)算式為
Yi=f(Wi?X+bi)。
(1)
式中:X∈RL×200×1為語譜圖矩陣;Wi為卷積核的權(quán)重值;?為卷積操作;bi為卷積核的偏置值,i為卷積核數(shù);f(·)表示ReLU函數(shù),其定義為
Yi=max(0,Zi)。
(2)
式中:Zi=Wi?X+bi。將得到的特征Yi輸入平均池化層,一個(gè)池化區(qū)的計(jì)算式為
(3)
式中:Rj為池化區(qū)的像素點(diǎn)數(shù);j為區(qū)域數(shù);Pi為Yi一個(gè)通道中的池化區(qū);i為池化區(qū)第i個(gè)像素點(diǎn)。
在空間特征提取模塊,模型使用6層卷積神經(jīng)網(wǎng)絡(luò),卷積核通道分別為32、32、64、64、128、128,卷積核大小均為3×3。3個(gè)語譜圖經(jīng)過空間特征提取模塊得到3個(gè)特征向量,送入時(shí)間特征提取模塊中。
GRU[14](gate recurrent unit)是循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks, RNN)的變體。將空間特征提取模塊中提取的3個(gè)特征向量展開,分別輸入GRU,一個(gè)GRU單元的計(jì)算式為
zt=σ(Wt·[xt,ht-1]);
(4)
rt=σ(Wt·[xt,ht-1]);
(5)
(6)
(7)
圖3 GRU單元Figure 3 GRU unit
圖4 BiGRU模型結(jié)構(gòu)Figure 4 BiGRU model structure
At=f(ht-1,xt);
(8)
(9)
式中:f、f′分別表示GRU單元前向、后向傳播;ht-1、ht+1分別表示前向傳播中時(shí)刻(t-1)狀態(tài)輸入、后向傳播中時(shí)刻(t+1)狀態(tài)輸入。
時(shí)間特征提取模塊中BiGRU層數(shù)為2層,中間設(shè)置一層Dropout層,BiGRU序列長(zhǎng)度設(shè)置為128。
TSTNet模型利用CNN處理由語音生成的語譜圖,提取出語音中的局部區(qū)域特征;BiGRU關(guān)注語音的時(shí)間特征以及前后語義關(guān)系,故將CNN與BiGRU結(jié)合搭建TSTNet模型。
3種尺度的語譜圖經(jīng)過空間特征提取模塊、時(shí)間特征提取模塊之后,得到3個(gè)特征向量。在特征融合模塊中,將這3個(gè)特征向量拼接在一起,得到1個(gè)新的特征向量。將該特征向量輸入1個(gè)FC層和1個(gè)Softmax函數(shù),得到最終的語音情感識(shí)別結(jié)果。如圖1中的特征融合模塊所示。
實(shí)驗(yàn)數(shù)據(jù)集來自科大訊飛,數(shù)據(jù)集總共有7 004個(gè)音頻樣本,詳細(xì)描述如表1所示。樣本標(biāo)簽分布如圖5所示,可知標(biāo)簽數(shù)量分布均勻。實(shí)驗(yàn)按照8∶2的比例隨機(jī)劃分?jǐn)?shù)據(jù)集,80%的樣本作為訓(xùn)練集,20%的樣本作為測(cè)試集。
表1 科大訊飛數(shù)據(jù)集Table 1 HKUST IFLYTEK data set
圖5 數(shù)據(jù)集標(biāo)簽分布情況Figure 5 Data set label distribution
實(shí)驗(yàn)使用Keras框架搭建TSTNet模型,所用到的硬件設(shè)備為NVIDIA RTX2080Ti。模型參數(shù)配置的詳細(xì)情況如表2所示。
表2 模型參數(shù)配置Table 2 Model parameter configuration
將TSTNet模型的實(shí)驗(yàn)結(jié)果和以下5個(gè)已有的情感識(shí)別模型的實(shí)驗(yàn)結(jié)果進(jìn)行對(duì)比,實(shí)驗(yàn)指標(biāo)為準(zhǔn)確率、精確率、召回率和F1值。
(1)MFCC+隨機(jī)森林。提取語音數(shù)據(jù)中的MFCC特征,將提取的MFCC歸一化并求最大值得到語音特征向量,用隨機(jī)森林去擬合提取的特征向量。
(2)語譜圖+CNN。通過傅里葉變換將語音轉(zhuǎn)化為語譜圖,用CNN網(wǎng)絡(luò)提取語譜圖特征。
(3)MFCC+CNN?;贛FCC+CNN的方法已經(jīng)被應(yīng)用于多種領(lǐng)域中,比如在語音識(shí)別[15]領(lǐng)域,此方法獲得了很好的效果。在語音情感識(shí)別任務(wù)中,提取語音中的MFCC特征,然后輸入CNN網(wǎng)絡(luò)中對(duì)情感進(jìn)行識(shí)別。
(4)語譜圖+CNN+RNN。在語譜圖和CNN的基礎(chǔ)上加上RNN,去捕捉語音的時(shí)序特征。
(5)語譜圖+CNN+LSTM。LSTM廣泛應(yīng)用于語音識(shí)別[16]、文本情感分析[17]中。這里將CNN和LSTM結(jié)合應(yīng)用于情感識(shí)別中。
TSTNet模型與后4種模型對(duì)比,得到實(shí)驗(yàn)的訓(xùn)練準(zhǔn)確率曲線和損失值曲線,分別如圖6、7所示。從圖6、7中可知,相比于其他方法的模型,TSTNet模型在準(zhǔn)確率和損失值上都表現(xiàn)良好,得到了較好的準(zhǔn)確率;TSTNet模型訓(xùn)練的波動(dòng)幅度相對(duì)平穩(wěn),對(duì)數(shù)據(jù)擬合程度較好。
圖6 準(zhǔn)確率曲線Figure 6 Accuracy curve
圖7 損失值曲線Figure 7 Loss value curve
TSTNet模型和以上模型在準(zhǔn)確率、精確率、召回率和F1上的測(cè)試集表現(xiàn)情況如表3所示。從表3中可以看出,基于深度學(xué)習(xí)的方法比傳統(tǒng)方法效果好,并且TSTNet模型在準(zhǔn)確率、精確率、召回率、F1值上都得到了較好的結(jié)果。
表3 不同模型在準(zhǔn)確率、精確率、召回率、F1值上的表現(xiàn)Table 3 Performance of different models on accuracy, precision, recall, and F1 values %
本文方法采用不同的語音填充長(zhǎng)度,分別為400、800、1 500,最后在特征融合模塊將它們集成到一起。為了驗(yàn)證模型中集成方法的有效性以及BiGRU特征提取的有效性,訓(xùn)練了4個(gè)實(shí)驗(yàn)?zāi)P?,填充長(zhǎng)度分別為400、800、1 500以及填充長(zhǎng)度為800但沒有使用BiGRU,對(duì)比結(jié)果如表4所示,訓(xùn)練過程準(zhǔn)確率曲線如圖8所示。
表4 TSTNet模型消融實(shí)驗(yàn)Table 4 TSTNet model ablation experiment
圖8 模型訓(xùn)練準(zhǔn)確率曲線Figure 8 Model training accuracy curve
由表4和圖8可知,填充長(zhǎng)度為800的模型比沒有使用BiGRU(填充長(zhǎng)度為800)的模型的準(zhǔn)確率高,集成3種填充長(zhǎng)度的TSTNet比3個(gè)單一填充的實(shí)驗(yàn)效果明顯。由此可驗(yàn)證TSTNet模型中的BiGRU可以關(guān)注到語音的前后語義關(guān)系。前后語義關(guān)系以及不同填充長(zhǎng)度的集成方法對(duì)于語音情感識(shí)別準(zhǔn)確率的提高有重要的意義。
本文提出了一種語音情感識(shí)別模型TSTNet,該模型結(jié)合CNN和BiGRU,能夠關(guān)注語音信號(hào)中的前后雙向語義關(guān)系(two-way semantic relationship)以及時(shí)空特征(spatial-temporal features)。采用3種不同的填充長(zhǎng)度進(jìn)行特征融合,能較好緩解語音長(zhǎng)度相差大導(dǎo)致填充時(shí)信息丟失或冗余的問題。本文方法在實(shí)驗(yàn)數(shù)據(jù)集上能夠得到94.69%的識(shí)別準(zhǔn)確率,相對(duì)于基于MFCC和隨機(jī)森林等語音情感識(shí)別方法,本文方法在多項(xiàng)實(shí)驗(yàn)指標(biāo)上效果顯著。