【論文筆記】語音情感識別之聲譜圖卷積方法
本文章主體基于PilgrimHui的《論文筆記:語音情感識別(二)聲譜圖+CRNN》,在原來基礎(chǔ)上,補充了數(shù)據(jù)處理部分以及論文方法的一些細節(jié),歡迎語音情感分析領(lǐng)域的同學一起討論。
1. An Attention Pooling based Representation Learning Method for Speech Emotion Recognition(2018 InterSpeech)
(1)數(shù)據(jù)處理:訓練集:給定一個句子,按2秒時間窗切分,窗移為1秒(overlap 1s),切分成多個segments。測試集:時間窗大小跟訓練集一致,不同的是窗移為0.4秒(overlap 1.6s)。
(2)頻譜提?。簩γ總€segment,采用40毫秒Hamming窗,10ms窗移,得到一系列frames(舉例大小199*D)。對每個frame進行DFT變換(參數(shù)NFFT=1600)得到每幀的頻譜,將所有frames的頻譜合并(多個一維向量縱向拼接得到矩陣)得到該segment的頻譜圖(N*(NFFT/2+1)=199*801)。截斷頻譜圖(矩陣)的列(去除了頻率較高部分),變成199*400的頻譜圖,轉(zhuǎn)置后變成400*199,補零padding后變成400*200,水平方向表示時間,垂直方向表示頻率。
(3)頻譜處理:對于頻譜矩陣預處理的做法是先歸一化到[-1, 1],然后做一個u為256的u率壓擴。u率壓擴通過增大數(shù)值較小的元素,人為改變數(shù)據(jù)的分布,減少矩陣中最大值與最小值之間的差距,在信號處理領(lǐng)域認為可以改善信噪比率而不需要增添更多的數(shù)據(jù),論文作者認為可以提高訓練的穩(wěn)定性。我在復現(xiàn)的時候,發(fā)現(xiàn)有些數(shù)據(jù)集進行歸一化和u率壓擴能提升性能,但有的數(shù)據(jù)集效果不佳。
(4)論文模型:論文的模型如下圖,輸入聲譜圖,CNN先用兩個不同的卷積核分別提取時域特征和頻域特征,concat后喂給后面的CNN,在最后一層使用attention pooling的技術(shù),在IEMOCAP的四類情感上取得71.8% 的weighted accuracy (WA) 和68% 的unweighted accuracy (UA),WA就是平時說的準確率,而UA是求各類的準確率然后做平均 。比state-of-art多了3%的WA和4%的UA。
(5)模型訓練與預測:訓練階段,每個segment對應一個label,作為一個sample輸入模型訓練,因此一句話將產(chǎn)生多個sample用于訓練。預測階段對每個segment進行預測,然后將一句話的所有segment預測概率取平均,得到一句話的預測標簽。
(6)論文代碼實現(xiàn)基于python_speech_feature庫,其中有三種聲譜圖可以選擇,振幅圖,能量圖,log能量圖。PilgrimHui認為:debug的時候發(fā)現(xiàn)振幅和能量值的range還是挺大的,用log可以把range很大的值壓到比較小的范圍,所以我用的是log能量圖。論文中提到對聲譜圖做一個預處理,說是可以讓訓練過程更加穩(wěn)定,我在實現(xiàn)論文的時候有發(fā)現(xiàn)不加這個預處理結(jié)果會比較高。預處理的做法是先歸一化到[-1, 1],然后做一個u為256的u率壓擴,看到這里的256我估計論文是把聲譜圖直接保存成圖像后做的歸一化,而我是保存成聲譜圖矩陣來作為輸入。
(7)PilgrimHui復現(xiàn)的經(jīng)驗:我在復現(xiàn)這篇論文模型的時候一直都達不到論文中的結(jié)果,反復看了一下,最后是注意到論文在attention pooling合并前對bottom-up attention的feature map先做了一個softmax,這個softmax我覺得很奇怪,把它去掉后發(fā)現(xiàn)準確率飆升,可以達到論文中的實驗結(jié)果,甚至可以超出??赡芫唧w實現(xiàn)細節(jié)上有一些其它的出入。
2. Efficient Emotion Recognition from Speech Using Deep Learning on Spectrograms(2017 InterSpeech)
(1)數(shù)據(jù)處理:跟上一篇論文類似,只是每個segment的大小為3秒,不過segments之間沒有重合,訓練集測試集處理方式一致。采用的也是Hamming窗,窗大小為20ms/40ms,窗移為10ms,DFT的參數(shù)length=800/1600(頻率分辨率用10HZ/20HZ)。采用log-spectrum表示頻譜。數(shù)據(jù)集用的也是IEMOCAP,16k采樣率,四種情緒分類。
(2)論文模型:模型結(jié)構(gòu)圖如下圖,輸入的也是頻譜圖,實驗對比了不同網(wǎng)絡(luò)結(jié)構(gòu)(全卷積網(wǎng)絡(luò),卷積+LSTM結(jié)構(gòu),attention結(jié)構(gòu)),LSTM+CNN的方式效果最佳,attention機制并沒有提升效果。
(3)模型訓練與預測:訓練階段,每個segment對應一個label,作為一個sample輸入模型訓練,因此一句話將產(chǎn)生多個sample用于訓練。預測階段對每個segment進行預測,然后將一句話的所有segment預測概率取平均,得到一句話的預測標簽。
(4)論文還介紹了一種兩步預測的方法,先經(jīng)過1個四分類器(4個情感),如果是中立類,則要另外通過3個二分類器來判定最后的情感。這么做可以提升UA,其背后直覺的解釋是,一個非中立情感的大部分性質(zhì)都是中立的,情感性質(zhì)只占一小部分,所以對于中立類,需要進一步判定。
(5)調(diào)參經(jīng)驗:Hamming窗大小為40ms效果最佳,20ms性能略低0-2%;頻率分辨率10HZ比20HZ性能略高1-3%。
3. Deep Spectrum Feature Representations for Speech Emotion Recognition(2018 ACM MM workshop——ASMMC-MMAC)
(1)數(shù)據(jù)處理:25ms的Hamming窗,每次移動10ms,在一個時間窗(frame)下,采用STFT變換得到頻譜向量,將一句話的各frame的頻譜向量按時間軸拼接、開平方(都為正值,失去相位信息),得到該句話的頻譜圖,之后采用40bands梅爾濾波器得到mel頻譜圖。
(2)輸入的是梅爾尺度的聲譜圖(可以用librosa庫調(diào)包得到),論文沒有詳細介紹輸入部分和網(wǎng)絡(luò)的銜接,CNN這邊如何處理變長語音不明確,BLSTM則是把很多幀當成一個序列來輸入。數(shù)據(jù)集用的也是IEMOCAP。
(3)論文也探討了幾種預處理和網(wǎng)絡(luò)結(jié)構(gòu)的實驗影響。比較了聲譜圖特征和其它兩個特征集(eGeMAPS和ComParE)的效果(喂給SVM),聲譜圖特征會稍微好一點。
(4)調(diào)參經(jīng)驗:Hamming窗大小為25ms效果最佳,優(yōu)于15ms-200ms,對應窗移10ms;Mel bands設(shè)定在40最佳,優(yōu)于30,60,80,100。因此最佳組合:window_size, window_shift,mel_bands = 25,10,40。
4. An Image-based Deep Spectrum Feature Representation for the Recognition of Emotional Speech(2017 ACM MM)
(1)數(shù)據(jù)處理:Hanning窗,窗大小為256個樣本點,重合點128個即128的窗移。每個窗下的信號做FFT變換,求得log-powerspectrum(對數(shù)能量譜)。采用藍、綠、黃三色填充得到大小不同的圖片,放縮裁剪得到227*227大小的頻譜圖。
(2)聲譜圖輸入caffe中預訓練好的AlexNet訓練,然后從第二個全連接層取出特征向量,跟兩種傳統(tǒng)特征集eGeMAPS,ComParE和BoAW(bag-of-audio-words,對LLDs特征的一種組織,LLDs指那些人工設(shè)計的低水平描述符)進行比較(喂給SVM),論文簡單介紹了這三種特征。數(shù)據(jù)集用的是FAU-AIBO,有兩種分類方式,一種是五分類,一種是二分類。
(3)做特征比較的時候使用了三個版本的FAU-AIBO數(shù)據(jù)比較,分別是clean,noisy和de-noised。其中de-noised是對noisy數(shù)據(jù)做了一個去噪,使用了一個三層LSTM模型,輸入是100個Mel譜,模型在幾個噪音版本的Audio Visual Interest Corpus上訓練。
(4)比較發(fā)現(xiàn)聲譜圖提取的特征對于噪音數(shù)據(jù)具有更好的魯棒性,同時可以看到de-noised系統(tǒng)的去噪并沒有生效(和noisy版本的表現(xiàn)一樣差)。
5. Emotion Recognition from Variable-Length Speech Segments Using Deep Learning on Spectrograms(2018 InterSpeech)
(1)數(shù)據(jù)處理:給定一個句子,采用40毫秒Hamming窗,10ms窗移,得到一系列frames(舉例大小199*D)。對每個frame進行DFT變換(參數(shù)NFFT=1600)得到每幀的頻譜,將所有frames的頻譜合并(多個一維向量縱向拼接得到矩陣)得到該句子的頻譜圖(N*(NFFT/2+1)=199*801)。截斷頻譜圖(矩陣)的列(去除了頻率較高部分),變成199*400的頻譜圖,轉(zhuǎn)置后變成400*199,補零padding后變成400*200,水平方向表示時間,垂直方向表示頻率。跟論文1不同的是,沒有預先切分等長的segment,導致得到的頻譜圖高度都是400,寬度N不定長。
(2)頻譜處理:對訓練集采用z normalization進行歸一化,即0均值1標準差的歸一化。
(3)論文模型:模型結(jié)構(gòu)如下圖所示。卷積學習空間信息,GRU學習時間信息,全連接層做最后的分類。注意:卷積只做一維卷積,即只做時域上的卷積(x軸)。
(4)通常的定長做法:為了使得模型能夠輸入定長樣本,通常會把語音劃分成等長樣本(比如3秒)訓練,然后在預測階段也做分割,做多個預測來平均得分。
(5)變長做法:本文用了一種可以在預測階段直接接受變長樣本而不需要切割的方法,具體做法為:使時間長度類似的樣本放在一個batch中然后pad到當前batch最長樣本的長度。訓練/預測的時候使用一個Mask矩陣(向量)來獲得有效(valid)的輸入?yún)^(qū)域,padding區(qū)域丟棄即可,需要注意的是max pooling的時候要處理好邊界問題,對于跨邊界數(shù)據(jù)把邊緣值作為padding數(shù)據(jù)。
(6)訓練的時候給不同長度的句子(loss)分配反比權(quán)重。另外為了處理IEMOCAP的不平衡問題給不同類別也分配反比權(quán)重,之前幾篇在IEMOCAP上做實驗的論文也有用到這個方法,還有使用重采樣的方法。
6. Investigation on Joint Representation Learning for Robust Feature Extraction in Speech Emotion Recognition(2018 InterSpeech)
(1)數(shù)據(jù)處理:IEMOCAP數(shù)據(jù),Hamming窗,25ms時間窗,10ms的窗移。每個窗下的信號采用1024個點的短時傅立葉變換STFT,之后40-bands的log-mel spectrogram。之后以30幀為單位,重疊10幀地移動,將一句話的頻譜劃分成多個segments頻譜。每個segment長度315ms(研究標明長度超過250ms的segment能保留豐富的情緒信息{Emotion classification via utterance-level dynamics: A pattern-based approach to characterizing affective expressions.})。
(2)模型方法:結(jié)合了CNN和RNN和CRNN被廣泛用于語音情感識別,然而這些模型只是簡單地使用了聲譜圖的信息,并不能捕捉足夠的情感特征。本文提出的HSF-CRNN模型結(jié)合了HSF手工特征,可以學習更好的情感特征,在2018 InterSpeech非典型情感挑戰(zhàn)數(shù)據(jù)集 和 IEMOCAP 上做了實驗,比baseline(CRNN)的效果要好。
(3)模型結(jié)構(gòu):模型如下兩圖,第一個是baseline,第二個是本文的模型。CRNN部分輸入的是聲譜圖,而LLD(Low Level Descriptors)指的是基頻,能量,過零率,MFCC,LPCC等這些特征。HSF(High level Statistics Functions)是在LLD基礎(chǔ)上做統(tǒng)計得到的特征,描述了整個utterance的動態(tài)情感內(nèi)容。
(4)還一種multi-CRNN的方法:采用兩種不同長度的segment劃分方法,可以讓一句話得到兩個頻譜圖序列。分別輸入到兩個CRNN,將最后的輸出拼接融合,輸出到softmax分類器。效果優(yōu)于單個頻譜圖的CRNN,低于HSF-CRNN。
7. Using Regional Saliency for Speech Emotion Recognition(2017 ICASSP)
(1)數(shù)據(jù)處理:Hamming窗,25ms時間窗,15ms窗移(10ms重疊)得到多個frames。采用openSmile toolkit,對每個frame提取40-band的梅爾頻譜,之后對一個人的所有特征采用均值為0標準差為1的歸一化。數(shù)據(jù)集用的是IEMOCAP和MSP-IMPROV。
(2)數(shù)據(jù)增廣:加速和減速語音信號,參數(shù)為0.9倍速和1.1倍速。數(shù)據(jù)增廣后提升2-3%。
(3)將CNN應用于低水平的時域特征(本文用的是40維的log Mel filterbank)來識別情感顯著區(qū),這樣就不需要在utterance水平上做統(tǒng)計運算。如下圖所示,在時間方向上卷積,卷積核的大小在時間軸方向為s,頻域方向跟頻譜大小一致為d,一幀一幀地卷,然后用全局最大池化來捕捉時間上的重要區(qū)域。
(4)實驗表明了論文的模型(使用區(qū)域顯著信息)比“在utterance水平上做統(tǒng)計然后送入全連接”(使用統(tǒng)計特征)的效果好。實驗還對比了和“流行的特征集InterSpeech09,InterSpeech13,GeMAPS和eGeMAPS用在SVM”的表現(xiàn),有優(yōu)有劣,相較于傳統(tǒng)算法提升并不明顯。不過論文的模型只使用了40個特征。另外還使用了速度增強來提高表現(xiàn)。
8. 3-D Convolutional Recurrent Neural Networks with Attention Model for Speech Emotion Recognition(2018 IEEE Signal Processing Letters)
(1)數(shù)據(jù)處理:3秒作為一個segment,每句話劃分成多個segments。對每個segment加Hamming窗,25ms時間窗,10ms窗移(15ms重疊)得到多個frames。針對全局(非個人)的語音進行均值為0標準差為1的歸一化。
(2)頻譜處理:對語音信號DFT后的能量譜進行梅爾濾波然后取log,得到log-Mels,又計算log-Mels的deltas和delta-deltas特征,如下圖所示,三種特征組成三個通道,橫向上是梅爾濾波組,論文設(shè)定為40個,縱向上是時間,丟進3維卷積,池化,線性層,LSTM,然后做個attention,最后接全連接和softmax分類。數(shù)據(jù)集是IEMOCAP和EmoDB。
(3)LSTM的時間序列中,每個時間片是一個frame卷積后的特征。
(4)模型訓練與預測:訓練階段,每個segment對應一個label,作為一個sample輸入模型訓練,因此一句話將產(chǎn)生多個sample用于訓練。預測階段對每個segment進行預測,然后將一句話的所有segment預測概率取max pooling,得到一句話的預測標簽。
(5)論文做了消解(ablation)學習,發(fā)現(xiàn)6個卷積層在IEMOCAP上效果最好,5個卷積層在EmoDB上最好。另外對比了DNN-ELM和二維卷積,發(fā)現(xiàn)本文模型效果最好。
(6)代碼開源:https://github.com/xuanjihe/speech-emotion-recognition
9. A Feature Fusion Method Based On Extreme Learning Machine For Speech Emotion Recognition(2018 ICASSP)
(1)數(shù)據(jù)處理:語音信號按窗大小265ms,窗移25ms切分成N段segments,每段采用短時傅里葉變換STFT采樣256個點,窗大小為256個點,每次重疊50%的窗移。如此,每個segment得到一張頻譜圖。
(2)一句話的各segment通過啟發(fā)性特征+CNN深度特征拼接,得到該segment的特征。然后求均值,得到這句話的特征。完了之后輸入到ELM分類。本文在流行的“聲譜圖+CRNN”框架上做了改進,第一個改進是加入啟發(fā)性特征,第二個改進是用ELM的方法替代BLSTM。
(3)啟發(fā)性特征有384維,是2009 InterSpeech 挑戰(zhàn)賽提議的統(tǒng)計特征,使用openSMILE獲得。數(shù)據(jù)集為EmoDB
(4)BLSTM結(jié)構(gòu)比較復雜,而ELM是一種單隱層網(wǎng)絡(luò)的學習算法,它的訓練更快。另外,BLSTM在數(shù)據(jù)不充足的時候訓練效果并不理想。
(5)研究標明長度超過250ms的segment能保留豐富的情緒信息{Emotion classification via utterance-level dynamics: A pattern-based approach to characterizing affective expressions}。
隨時獲取華為云AI最新動態(tài),歡迎關(guān)注華為云AI公眾號: