【论文笔记】基于聚类特征深度LSTM的语音情感识别
Clustering-Based Speech Emotion Recognition by Incorporating Learned Features and Deep BiLSTM
IEEE Access - South Korea, Pakistan
關鍵詞:語音情感識別、深度雙向LSTM、關鍵片段、序列選擇、CNN特征歸一化、RBFN
摘要
傳統SER主要注重手工特征和使用傳統CNN模型來提取高階特征,增加識別準確率和整個模型的復雜度。本文提出了新的框架:
SER簡介
- SER背景
- 傳統方法用的是手工提取的特征
- 2-D CNN本來是用在圖像處理領域,現在也應用于SER
- CNN-LSTM提取空間-時間特征
- 但是CNN的使用會增加計算復雜度和網絡參數
- 所以使用K-means聚類,采用RBF(為什么非要用RBF不用其他的?)作為相似度度量,從每個簇抽取一個片段
- 后將抽取的片段經過STFT算法得到頻譜圖,隨后放入CNN(Resnet模型的FC-1000層)
- CNN的輸出通過均值方差正則化,并輸入深度BiLSTM網絡提取時序信息并通過softmax層輸出預測結果
- 本文的創新點:
SER調研
SER系統分為兩個部分:特征選擇和分類,特征提取有CNN或者高斯混合模型等等。CNN最近在特征提取興起,有采用預訓練模型做遷移學習提取特征的,LSTM-RNN用來學習時序信息,還有不需要手工特征輸入的端到端的方法。
CNN-LSTM結合的方法用來捕捉高階特征和時序信息,有文章采用預訓練CNN和SVM結合做情感分類。
提出的SER方法
框架分為三個模塊,第一個模塊有兩個部分:
第一個,將音頻文件分成多個片段并找出連續片段只差,獲得的差值通過一個閾值確保相似度并通過shot邊界檢測(這里好像是圖像處理的相關內容,這里是怎么用的呢?)找到聚類所使用的K值。若兩幀之差大于閾值,K值加一。每一簇都找到一個距離中心最近的關鍵片段,我們采用RBF作為聚類算法的相似度估計。
第二部分,用STFT畫出所選擇關鍵序列的頻譜圖,后采用預訓練的Resnet101中的FC-1000層提取特征。具體的網絡結構在表1中給出:
學習到的特征通過均值和標準差進行歸一化,最后通過深度雙向LSTM學習時序信息,獲得序列信息,并預測最終情感分類。網絡結構如下:
A. 預處理和序列選擇
首先將語音分幀,窗長為500ms,每個片段的標簽是整個語段的標簽,后通過K均值聚類。采用RBF代替K-Means中的歐幾里得距離矩陣,K值的選擇并不是隨機的,而是通過shot邊界檢測動態的估計相似性。(這里需要注意,每個文件的K值是不同的)
B. 基于RBF的相似度度量
RBF是計算片段之間相似性的非線性方法,人類大腦通過非線性過程識別和分辨模式。本文模型是基于RBFN的非線性模型,我們使用映射函數來找到兩語音片段間的相似性,其中也用到歸一化的概念。一維高斯模型是一個很好的選擇,因為其可以平滑映射函數。
函數中心為z,寬度參數是σ\sigmaσ,這個函數用來度量x和中心z之間的相似程度,RBFN中有不同的RBF,用來進行非線性估計:
拓展的映射函數如下:
其有N個RBF,說明有多個中心z,為了減少網絡計算量,這里每一個片段僅僅采用了一維的高斯RBF:
x表示語音信號片段,z表示每個片段的RBF中心,σ\sigmaσ表示每個片段的RBF寬度。其中寬度是可變的,共有P個RBF,參數調整、非線性加權和樣本方差估計如下:
如果特定語音信號片段更相關,標準差會很小,如果標準差很大意味著片段不想管,較小的σ\sigmaσ值對距離的變化更加敏感。
C. CNN特征提取和RNN
本文采用CNN提取語音片段特征,RNN提取時序特征,后采用預訓練的CNN提取特征,提取的每個片段特征作為RNN的一個時間步,RNN最后一個時間步的輸出作為情感分類的最終結果。訓練大量復雜序列信息只用LSTM是不能正確識別的,本文采用多層深度Bi-LSTM進行序列識別,內部結構和記憶模塊信息如圖:
D. 雙向LSTM
本文采用多層LSTM的概念,采用前向和后向結合的Bi-LSTM網絡進行訓練,其中20%數據作為驗證集,從訓練數據中分離,并且通過交叉驗證計算錯誤率,優化器采用Adam,學習率為0.001。
實驗設置和結果
實驗數據集: IEMOCAP、Emo-DB、RAVDESS三個。IEMOCAP數據集包含10個人,有五個session,每個session是兩兩對話,每個語音片段長度約3~15s,共使用了4種情緒,采樣率16KHz;Emo-DB有10人,5男5女,每個語音片段約2~3s,包含7種情緒,采樣率16KHz;RAVDESS包含24人,12男12女,共有8種情緒,訓練數據分布除了neutral數量相同,采樣率48000Hz。這三個數據庫在speaker independent的實驗中均采用五折交叉驗證,80%用于訓練其余用來測試。
實驗評估: 本文通過speaker independent和speaker dependent兩種方式評估,將每一個語段按照時間t分成片段,有25%重疊部分(具體這個時間t應該取多少?)。基于RBF的相似度度量采用K均值聚類在每一簇選擇關鍵片段(距離聚類中心最近的一個片段)。選擇好關鍵片段后,通過Resnet101模型的FC-1000進行高階特征提取,選擇全局平均值和標準差來歸一化提高整個模型的準確率。歸一化的特征輸入到BiLATM中,經過softmax層后,輸出預測概率。系統使用MATLAB 2019b中的神經網絡工具箱進行特征提取、模型訓練和評估。數據被分為80%用于訓練和20%用于測試。
模型優化: 選擇Adam作為優化器,實驗中比較了特征歸一化和沒有歸一化結果的差異,選擇了512作為batch-size,0.001作為學習率,實驗表明,歸一化使得預測準確率有所提升。(文中是三個數據庫的結果,這里只給出了一個IEMOCAP的),SD和SI分別代表speaker dependent和speaker independent。
實驗還對數據的訓練和測試時間進行了比較,該模型因為從數據中選取關鍵片段作為訓練數據,大大減少了數據處理時間。
SI實驗: 五折交叉驗證,80%的speaker作為訓練數據,20%的speaker作為測試數據,結果如下:
貌似這里沒有和baseline進行相應的比較,其中happy、neutral和sad情緒容易和其他情緒進行混淆。
SD實驗: 將所有文件混合為一個集合, 隨機選取80%的數據進行訓練,20%用于測試和驗證。結果如下:
同樣,似乎happy情緒是最容易進行混淆的情緒,可能是因為訓練數據數量受限,語音數據較圖像、視頻等數據少得多,容易識別錯誤。
討論
和其他很多baseline進行比較后,我們會發現,該模型能夠大幅度提高識別準確率:
同時還將該模型和其他預訓練的CNN模型進行比較,結果如下:
上面結果可以看出本文模型的效果遠大于其它CNN模型的效果。
我想對本文進行復現,復現的內容在以后的博客中給出,也希望大家閱讀后指出我閱讀過程中的錯誤,多多交流,謝謝大家閱讀。
總結
以上是生活随笔為你收集整理的【论文笔记】基于聚类特征深度LSTM的语音情感识别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Django 时间与时区设置问题
- 下一篇: 关闭Windows10 易升