張可欣,劉云翔
(上海應用技術大學計算機科學與信息工程學院,上海 201418)
語音情感識別是指賦予計算機和人腦相同的能力,通過說話者的語音分析說話者的情感狀態,主要應用于教育業、服務業、偵察業[1-3]。
在現有的研究中,在語音特征值的選擇、特征值的降維、分類器的構建方面取得了很大的進展[4-6]。深度學習在情感分類當中應用廣泛,深度學習分類器有卷積神經網絡(DNN)、雙向循環記憶神經網絡(BLSTM)、深度置信神經網絡[7-9]。自然環境中數據集存在差異,使用遷移學習消除源域數據和目標域數據的差異[10-11]。
傳統的語音增強方法有頻譜相減、小波分解變化、維納濾波語音增強方法、生成對抗網絡方法[12-14]。文中的改進方法在于融合自然語言處理領域的知識來解決語音增強的問題。首先利用文本特征,通過對文本信息的分詞、向量化、輸入到編碼器,把聲學特征和編碼器的輸出一起輸入到解碼器,解碼器的輸出作為聲學模型。文本信號輸入該訓練過的聲學模型,使用多任務學習的DNN 分類器,實現了更加高效的語音情感識別。
在文本特征輸入到編碼器之前,需要對文本進行預處理,包括去停用詞、Jieba 分詞、文本特征向量化,達到去除冗余信息、充分利用上下文語義關系的效果,提高情感分類的效率。在文本預處理的步驟,經過對文本特征的處理操作,為利用文本特征進行語音增強打下了基礎。
文本中經常存在“嗯”、“啊”、“哦”、“嗎”等無實際意義的虛詞,它們的存在加大了情感分類的復雜度。應首先查閱停用詞字典,對比文本中的詞是否在停用詞字典中,若是,則過濾掉。Jieba 分詞首先基于前綴詞典實現高效的詞圖掃描,生成句子中漢字所有可能成詞情況所構成的有向無環圖,然后根據詞頻按照動態規劃的方法來尋找概率最大的分詞路徑,找出基于詞頻的最大切分組合。Jieba 分詞可以把文本詞匯最精準地切分,速度相比常見的分詞方法,如最大匹配算法、臨近匹配算法、基于統計的方法要快。
TF-IDF 表示文本特征的重要程度。選擇TFIDF 值大的特征,剔除TF-IDF 小的特征,可以減少貢獻度小的信息的干擾,計算公式如下:
TFi表示特征詞i的詞頻,D為全部文本數量,Di為包含特征詞i的文本數。
常用的詞向量模型是Word2vec,其局限性在于不能根據上下文的語義識別一詞多義的情況,容易引起歧義。例如,“炒魷魚”既可以指吃的炒魷魚,又可以指下崗;“蘋果”既可以指一種水果,又可以指一種手機的品牌。傳統的詞向量對于一詞多義的識別率低,然而BERT 模型能夠根據語義做出識別,可以更好地實現上下文的關聯。BERT 模型結構圖如圖1 所示。該模型由Transformer 構成,預訓練任務分為遮蔽詞預測任務和下一句判斷任務[15]。

圖1 BERT結構
1.3.1 Transformer結構
Transformer 是Seq2seq 的改進,它引入了多頭注意力機制。Seq2seq 由編碼器和解碼器組成。編碼器把輸入的文本信息壓縮成固定長度的向量,解碼器把向量輸出為和編碼器長度相等的向量序列。在編碼器中,先使用多頭注意力機制,增強文本關注上下文的語義信息。多頭注意力機制的計算如下:
1)計算Query(Q),Key(K)和Value(V)值。
其中,WQ、WK、WV分別表示Q、K、V的權重矩陣。權重的計算公式為:
2)計算每個頭部的權重:
3)計算所有頭部的權重之和:
計算完多頭注意力機制后,進入add&norm 層進行權重的相加以及歸一化處理,經過feed forward 層之后再進行add&norm 層的處理。從編碼器中輸出,輸入到解碼器,把固定長度的向量解碼為可變長度的輸出序列。這樣就通過BERT 模型完成了文本向量化。Encoder-Decoder 模型結構如圖2 所示。

圖2 Encoder-Decoder模型結構
1.3.2 BERT模型預訓練
BERT 模型預訓練分為遮蔽詞預測和下一句判斷兩個任務。遮蔽詞預測任務中會隨機地用特殊符號遮蔽住部分詞匯,然后用其他的詞匯來預測被遮蔽的詞匯,被遮蔽的詞匯占15%,這些被遮蔽的詞語被特殊符號替代的占80%,被隨機詞替代及保持原樣的概率各占10%[18]。由于遮蔽詞預測不能夠判斷句子之間的聯系,需要利用下一句判斷任務,判斷一個句子是不是另一個句子的下一句。
語音合成模型也是基于Encoder-Decoder 的模型。Encoder-Decoder 模型在上一節已經介紹?;舅枷胧抢肐EMOCAP 數據庫的文本信息與語音信號合成,達到利用文本信息使得語音效果增強的目的。編碼器由預網和CBHG 模塊構成,解碼器由預網和兩層殘差的GRU 構成。把經過BERT 模型向量化的文本輸入到編碼器中,編碼器的輸出和語音信號輸入到解碼器,解碼器的輸出作為聲學模型。然后利用測試集的文本,輸入到聲學模型中,完成語音信號的合成。語音合成模型如圖3 所示。

圖3 語音合成模型
編碼器的輸入是經BERT 模型處理過的詞向量。編碼器由預網和CBHG 模塊構成。預網由兩個隱藏層網絡組成。第一個隱藏層的神經單元數目等于輸入向量的維度,設置為256 個神經單元。第二個隱藏層的神經元數目等于第一個隱藏層神經元數目的一半,設置為128 個神經單元。隱藏層選取Relu 激活函數進行非線性變化。為了提高模型的泛化能力,dropout 設置為0.5。CBHG 模塊首先使用一維卷積層,卷積層的激活函數選取Relu 函數,進行局部特征向量的建模。然后進行最大池化操作,池化層的步長設置為1,寬度設置為2,然后輸入到多層高速公路網絡。高速公路網絡設置為4 層、128 個神經單元,實現高層特征的提取。最后雙向GRU 從前后兩個方向進行雙向的文本特征提取,并把它表示成連續空間的向量。GRU 的神經單元數為128[16]。
解碼器的輸入為編碼器對文本信息的輸出以及語音特征。語音特征的提取選用Python 中的librosa工具包,提取MFCC 特征值和語譜圖特征,并把提取的聲學特征輸入到解碼器。解碼器由預網和兩層GRU 組成,預網結構如編碼器所述。每層GRU 有256 個神經單元。GRU 所有單元的輸出之和作為解碼器的輸出,即聲學模型。
多任務學習將主任務和若干個輔助任務關聯起來,能提高分類的泛化性。在多任務學習的神經網絡模型中,網絡底層是共享隱藏層,學習任務之間的聯系;頂層是任務特有層,學習每個任務的特有屬性。多任務學習結構圖如圖4 所示。經過語音合成與增強得到的語音信號,再二次提取MFCC 和語譜圖特征值,進行多任務學習的分類。分類的主任務為情感識別,輔助任務為性別分類。多任務學習基于DNN 結構。在網絡模型的共享隱藏層中,設置隱藏層的層數為2 層,每層由128 個單元組成。隱藏層共享兩個屬性之間的隱藏層中的節點。Dense層前面與隱藏層連接,后面為每個任務分別連接,起到學習特定任務的作用。連接在Dense層之后的是softmax分類器,這里有兩個任務,所以連接兩個softmax 分類器。定義網絡模型,使用Python 中 的基于tensorflow 的kearas 定義。情感分類器的損失記為Lov1,權重為β,性別分類的損失記為Lov2,權重為γ,損失值Lov=βLov1+γLov2。同時訓練兩個模型,使總損失值最小。

圖4 多任務學習結構圖
IEMOCAP 數據庫是一個多模態的數據庫,包括文本和語音信號。該數據集包含憤怒、快樂、悲傷、中立、沮喪、興奮、恐懼、驚訝等情感。IEMOCAP 數據庫支持視頻和音頻,還有所有話語的文本轉錄。數據庫中包含5 331 條音頻和文本轉錄話語。此次實驗按照數據樣本的90%劃分為訓練集、10%劃分為測試集。測試集的文本用來增強合成語音信號。實驗運行環境選擇Windows 系統,編程語言使用Python編程,深度學習的框架選取tensorflow 和kearas。
BERT 模型的dropout 值設置為0.5,迭代次數設置10 次,學習率設置為0.01。多任務學習分類模型以及語音合成模型的參數設置如2、3 部分所述。文中使用準確率來評價實驗方法的優劣。準確率的計算可表示為正確分類的數目與總數目的比值。
為了證明設計的語音增強效果優于對比文獻方法,需要設計多組對比實驗。第一組實驗的目的是證明BERT 模型比Word2vec 模型好。設計思路為分別使用BERT 和Word2vec 對文本進行向量化,然后同樣使用文本-語音合成模型與多任務學習分類器。第二組實驗目的是證明提到的文本-語音增強模型優于其他對比文獻的語音增強方法,同樣使用BERT 模型進行文本向量化,語音增強用文中方法和頻譜相減、小波分解變化、增強方法對比,然后用多任務學習分類器分類。第三組實驗目的是證明同時學習性別和情感分類優于只學習情感分類一個任務,對比實驗使用BERT 模型+文本-語音增強模型以及一個使用單任務的DNN、一個使用多任務的DNN。
如表1 所示,BERT 詞向量與Word2vec 詞向量相比,準確率提高了6%,原因在于BERT 詞向量解決了Word2vec詞向量一詞多義的問題,以及BERT 的多頭注意力機制更能有效地學習上下文信息。文本-語音增強模型的識別率為92%,頻譜相減的準確率為85%,小波分解的準確率為89%,證明了文中語音增強方法優于小波分解法和頻譜相減法。原因在于用文本特征增強語音特征避免了頻譜相減法引入“音樂噪聲”,解決了小波分解法閾值確定的問題。多任務學習的準確率與單任務DNN 相比,提升了4%,因為多任務學習可以利用不同任務之間的關聯。

表1 對比實驗的結果
下面對比其他利用編碼器和解碼器的語音增強方法,并進行分析。實驗結果如表2 所示。由表2 可知,文獻[16]、文獻[17]、文獻[19]和文中方法的識別準確率分別為84%、86.7%、82%和92%。文中方法改進之處在于:①利用文本信息增強語音的效果優于利用語音信號增強,這是因為文本信息不容易受到環境噪聲、語言文化差異的影響,能夠更加直觀地表達情感;②對文本信息進行去停用詞、特征權重計算操作篩選有用特征值,大量的文本信息會加大文本-語音合成的工作量;③對文本特征的BERT 向量化,根據文本的上下文避免一詞多義造成的歧義;④利用多任務學習,考慮了性別差異[20]。

表2 對比文獻的識別準確率
文中使用文本信息增強語音信號,實現了語音和文本兩個模態的融合以及自然語言處理和語音情感識別兩個交叉領域的創新應用。對文本信號進行去停用詞、Jieba 分詞、使用TF-IDF 計算權重,挑選權重大的文本特征。用BERT 模型將挑選的文本特征向量化,可以利用上下文的語義信息,解決了Word2vec 詞向量一詞多義及識別率不準確的問題。將BERT 模型的輸出輸入到Encoder 中,Encoder 的輸出和語音特征輸入到Decoder,完成聲學模型的訓練。在合成階段,利用測試集的文本信息輸入到聲學模型,完成了合成。對合成后的語音信號進行二次特征提取,最終在基于多任務學習的DNN 模型完成了分類。文中方法的改進之處在于:①利用文本信息增強語音信號,避免引入“音樂噪聲”和閾值確定困難的問題;②對于增強后的語音信號,同時學習性別分類和情感分類這兩個任務。多任務學習既可以學習各自任務的特征,也可以學習共享的特征。如果只考慮到不同任務的差異,而忽略共享信息,會造成識別率下降。