王 振
河南林業職業學院
語音作為人類之間交流的主要傳播媒體,已經引起研究者的廣泛關注。在日益普遍的人機交互系統中,情感識別起著重要的作用。語音包含豐富的情緒信息,如何從語音信號中提取這些信息,對于自動語音情感識別具有重要意義。
聲學特征作為語音情感識別的重要組成部分,對其提取引起了很多研究興趣。這些研究都致力于設計一些手勢特征,對于情感識別來說這些特征是最有特色的。最近,機器學習社區直接從原始未處理數據中推導出輸入信號,背后的原因是網絡可以對原始輸入信號的中間表示自動學習,因此可以提高性能。因此,我們通過專門設計的可直接從輸入語音頻譜圖中導出情緒類別的可變長度深度神經網絡構建情緒識別系統。
頻譜圖是信號的時頻分解。在我們的工作中,卷積神經網絡首先被構造為空間譜圖模式,它有效地學習代表情緒信息,然后使用遞歸神經網絡來模擬句子上的時間結構,它由譜圖表示,最后由全連接層導出情緒類別。
這類似于以前的Satt的工作。然而,與將語音輸入分成較小的固定長度的段相比,我們這里的神經網絡能夠處理可變長度語音段,這是它的優點,它可以解決在語音分割過程中引起的精度損失。
近年來,深度學習方法已經應用到語音處理領域,用于特征提取與分類/回歸。在語音識別中,直接使用語音波形的自動語音識別特征的是Hinton和Jaitly。他們通過直接在語音時間信號上訓練受限玻爾茲曼機器來學習中間表示,沒有以端到端的方式對系統進行訓練。Bhargava和Rose使用疊加的瓶頸深度神經網絡訓練窗口化語音波形,在相同體系結構上獲得的結果比相應的MFCC略差。
在語音情感識別領域,已經使用深度神經網絡進行了一些特征學習的研究。喬治等人提出了一個卷積循環神經網絡,其對原始信號進行操作,在語音數據中執行端到端的情緒預測任務。Satt等人將CNN和LSTM結合,分類線性間隔頻譜圖中的情緒。然而,這些方法都是將語音輸入分為較小的固定長度的部分,這會在訓練和預測階段損失準確性,我們使用可變長度的神經網絡的方法來解決這個問題。
每個長于3秒的句子被Satt等人分割成長度相等的短子句,在提取光譜圖后,將不夠3秒的部分用零填充到3秒。在整個提議的系統中,這些較短的子句都用于訓練和測試階段,每個子句被分配相應的整個句子的情感標簽。在測試短語期間,整個句子的情感類別的預測通過平均各個子句的后驗概率來實現。雖然這種方法可以減少構建神經網絡的難度(確保輸入長度相等),但會引入一些錯誤。實際上,為每個子句分配相應整句的情感標簽并不是一個好的處理方法。觀察表明,只有一部分語音在非中性情緒句子中包含明顯的非中性情緒信息。
以上問題表明,使用整句作為輸入比分成幾段更合理。但是句子的長度一般是不同的,所以我們的研究旨在設計一個神經網絡來處理可變長度的輸入序列。
眾所周知,卷積神經網絡可以被認為是一種使用同一神經元的許多相同拷貝的神經網絡。這可以使網絡擁有大量的神經元并表達計算量大的模型,同時保持實際參數的數量描述神經元行為的值需要被學習得相當小。
遞歸神經網絡是流行的模型,在許多序列建模任務中顯示出很大的希望。它們對序列的每個元素執行相同的任務,輸出依賴于以前的計算。為了計算效率,輸入序列通常是固定長度的。可變長度序列通常被填充到相同的長度,但是我們可以忽略無效填充時間步的輸出,以便可以正確處理可變長度的序列。
可變長度深度神經網絡的輸入是全句子的譜圖,輸出是句子情感類別的分類結果。為了比較,我們使用與Satt使用的相似的頻譜圖提取設置神經網絡。
每個句子都標有一種情感,采用一系列重疊的漢明窗口,幀步長為10毫秒,幀長度為40毫秒。對于每一幀,我們計算一個長度為1600的DFT(對于10Hz的網格分辨率)。我們使用0-4KHz的頻率范圍,忽略其余部分。在短時間譜聚合之后,我們得到一個大小為N×M的矩陣,其中N對于不同的句子是可變的,代表所選擇的時間網格分辨率,并且M=400等于所選擇的頻率網格分辨率。然后將DFT數據轉換為對數功率譜,然后使用訓練數據集的平均值和標準差對z歸一化進行歸一化。
在我們的工作中,輸入序列在訓練階段在同一批次中被填充到相同長度且為零,但不同批次之間的長度不同。預測階段不使用填充,所以我們的神經網絡需要具備避免填充值對輸出干擾的能力。令S=[x1,x2,...,xV,...,xT]為輸入序列,其中S1=[x1,x2,...,xV]為有效部分,S2=[xV+1,xV+2,...,xT]是填充部分。
首先,對于卷積神經網絡,我們可以使用掩碼來保留來自S1的輸出并忽略來自S2的輸出,其可以表示如下:
Sconv=Conv(S)·Mask(S)(1)
其中Conv(S)是S的卷積層的輸出,Mask(S)是一個掩蔽矩陣,Sconv=[y1,y2,...,yV,...,yT]是與S相同長度的輸出序列,其中[y1,y2,...,yV]是掩碼矩陣有效部分的值,[yV+1,...,yT]是填充部分的零值。有效輸出可以通過Conv(S)和Mask(S)之間的元素乘法實現。此外,卷積層通常與匯集層交織在一起。我們需要注意有效部分和填充部分之間的邊界值,這會引入無效信息。例如,假設Sconv是最大池化層的輸入。如果池化內核大小為2,并且輸入路徑包含yV和yV+1,則當yV<0且yV+1=0時,輸出將為yV+1。但預期值應為yV,因為yV+1是填充值。在我們的實驗中,這個問題會導致神經網絡不會收斂的問題。因此,在我們的設計中輸入到最大池層之前,yV將被屏蔽為零。這樣,填充或不填充,相同的輸入將在卷積層和合并層之后產生相同的輸出,它確保了訓練階段和預測階段的一致性,因為在預測階段沒有填充。
其次,對于遞歸神經網絡,因為語音情感識別是一個序列分類問題,所以我們只需要最后一個有效時間步中的輸出。假設S是遞歸神經網絡的輸入,預期結果應該是t=V時的輸出。此外,在雙向遞歸神經網絡中,反向遞歸神經網絡的輸出應該在t=0處。最終輸出是正向和反向遞歸神經網絡輸出的串聯。
在本文中,我們提出了一個可變長度的神經網絡,在頻譜圖上運行,從可變長度的語音片段中執行情感分類任務。通過將全句輸入到模型中,我們的方法可以有效地緩解傳統定長方法將句子拆分為更小的固定長度段時所引入的中性情緒和其他情緒之間的混淆。與以前的固定長度神經網絡相比,加權精度(WA)和不加權精度(UA)達到了普通基準數據集IEMOCAP的最新技術水平。