蒯紅權(quán) ,吳建華 ,吳 亮
(1.鹽城市經(jīng)貿(mào)高級(jí)職業(yè)學(xué)校實(shí)訓(xùn)處,江蘇 鹽城 224041;2.東南大學(xué)信息科學(xué)與工程學(xué)院,江蘇 南京 210096)
情感識(shí)別是人工智能未來(lái)的研究方向之一。在許多業(yè)務(wù)場(chǎng)景中,利用人工智能準(zhǔn)確地提取并利用對(duì)象的情感信息對(duì)于業(yè)務(wù)質(zhì)量的提高有著重大意義。語(yǔ)言作為人類(lèi)交流最原始,最重要的方式之一,不僅攜帶有語(yǔ)義信息,還攜帶著大量情感信息[1]。因此,語(yǔ)音情感識(shí)別問(wèn)題正受到越來(lái)越廣泛的關(guān)注。
近年來(lái),伴隨著硬件性能的提升帶來(lái)的計(jì)算機(jī)計(jì)算資源的爆炸性增加,深度學(xué)習(xí)在許多機(jī)器學(xué)習(xí)任務(wù)上取得了巨大的成功,成為了機(jī)器學(xué)習(xí)最受關(guān)注的分支。在其他領(lǐng)域取得成功之后,深度學(xué)習(xí)也被應(yīng)用到了語(yǔ)音情感識(shí)別任務(wù)中,并取得了比傳統(tǒng)機(jī)器學(xué)習(xí)方法更好的效果。
傳統(tǒng)的語(yǔ)音情感識(shí)別算法分為特征提取與特征分類(lèi)兩個(gè)步驟。首先需要對(duì)語(yǔ)音信號(hào)分幀,逐幀提取短時(shí)聲學(xué)特征,例如梅爾頻率倒譜系數(shù)(Mel Frequency Cepstrum Coefficient,MFCC)等,再?gòu)倪@些短時(shí)特征中提取長(zhǎng)時(shí)特征,最后將長(zhǎng)時(shí)特征輸入分類(lèi)器[2]。雖然深度學(xué)習(xí)技術(shù)的出現(xiàn)使以原始信號(hào)(或其FFT 譜)作為輸入進(jìn)行end-to-end(端到端)的語(yǔ)音情感識(shí)別得以實(shí)現(xiàn)[3],但實(shí)驗(yàn)結(jié)果表明,由于目前語(yǔ)音情感識(shí)別領(lǐng)域缺少大規(guī)模數(shù)據(jù)作為訓(xùn)練樣本,以手動(dòng)提取的傳統(tǒng)聲學(xué)特征作為模型的輸入仍然比以原始數(shù)據(jù)作為輸入更容易取得更好的性能[2],所以傳統(tǒng)聲學(xué)特征仍然被廣泛應(yīng)用于語(yǔ)音識(shí)別問(wèn)題。
因?yàn)檎Z(yǔ)音信號(hào)是一種典型的時(shí)序信號(hào),所以專(zhuān)門(mén)用于處理序列數(shù)據(jù)的RNN(Ruccurent Neural Network,循環(huán)神經(jīng)網(wǎng)絡(luò))是語(yǔ)音情感識(shí)別任務(wù)中最常用的一類(lèi)深度學(xué)習(xí)模型。此外,CNN(Convolutional Neural Network)的應(yīng)用也較為常見(jiàn)。自RNN 誕生以來(lái),產(chǎn)生了許多變體,其中最具代表性,也最為常用的模型是LSTM(Long Short Term Memory)[4]。目前大部分序列模型中采用的都是LSTM 或其變體GRU(Gated Recurrent Unit,門(mén)控循環(huán)單元),而非傳統(tǒng)RNN,在語(yǔ)音情感識(shí)別任務(wù)中也是如此。此外,相比于單向LSTM,雙向LSTM 在語(yǔ)音情感識(shí)別任務(wù)中的應(yīng)用要廣泛得多。
近年來(lái),注意力模型在機(jī)器翻譯等NLP(Natrual Language Processing,自然語(yǔ)言處理)領(lǐng)域取得了巨大成功。之后,這一技術(shù)被遷移到了語(yǔ)音情感識(shí)別任務(wù)中。研究者將注意力機(jī)制加入了傳統(tǒng)的CNN[5-6]和RNN[2,7],證明了注意力機(jī)制能夠有效提高語(yǔ)音情感識(shí)別算法的性能。其中,文獻(xiàn)[2]將注意力模型應(yīng)用于雙向LSTM 層的輸出,在時(shí)間維度對(duì)LSTM 的輸出序列進(jìn)行了加權(quán)平均,得到一個(gè)特征向量,再?gòu)脑撓蛄康玫阶罱K的分類(lèi)結(jié)果,該模型在IEMOCAP 數(shù)據(jù)集上取得了比傳統(tǒng)方法高1%~2%的識(shí)別性能。
對(duì)于一些復(fù)雜問(wèn)題,由于單層RNN 難以取得足夠高的性能,往往需要使用深度RNN。由于上述注意力模型的輸出并非一個(gè)序列,因此其只能應(yīng)用于最后一層RNN 的輸出,而不能應(yīng)用于多個(gè)RNN 層之間,無(wú)法與深度RNN 緊密結(jié)合。所以本文基于傳統(tǒng)的注意力機(jī)制,提出了分段注意力機(jī)制,并將其應(yīng)用于深度RNN 網(wǎng)絡(luò)中,提出了一個(gè)基于分段注意力的新型深度RNN 模型。該模型兩個(gè)LSTM 層之間加入了一個(gè)改進(jìn)的注意力機(jī)制,在時(shí)間維度上將前一級(jí)LSTM 層的輸出序列分割為若干區(qū)間,在每個(gè)區(qū)間內(nèi)進(jìn)行一個(gè)基于注意力機(jī)制的加權(quán)池化,以將該序列映射為一個(gè)較短的序列,作為下一級(jí)LSTM 層的輸入。我們使用36 個(gè)短時(shí)特征作為輸入,在CASIA 數(shù)據(jù)集上對(duì)該模型進(jìn)行了實(shí)驗(yàn),并將其與基于普通注意力機(jī)制的單層LSTM 與雙層LSTM 的性能進(jìn)行了對(duì)比,實(shí)驗(yàn)結(jié)果表明,該模型在CASIA 數(shù)據(jù)集上取得的識(shí)別性能比普通的雙層LSTM 模型高出了1%~2%,比普通的單層LSTM 高出了約5%。并且訓(xùn)練速度比普通雙層LSTM 模型高出約50%,略高于普通單層LSTM。
RNN 是一類(lèi)以序列數(shù)據(jù)作為輸入的神經(jīng)網(wǎng)絡(luò),特別適用于語(yǔ)音,文本等時(shí)序信息的分析。對(duì)RNN的研究始于20 世紀(jì)80—90 年代,并逐步發(fā)展為深度學(xué)習(xí)的主要模型之一。其中,目前最常見(jiàn)的循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)是LSTM,是為了解決傳統(tǒng)RNN 存在的長(zhǎng)期依賴(lài)問(wèn)題而產(chǎn)生的。由于其獨(dú)特的結(jié)構(gòu),LSTM 擅長(zhǎng)分析時(shí)間序列中間隔和延遲非常長(zhǎng)的重要事件。
大多數(shù)情況下而言,序列的不同部分并非同等重要。為了更加高效地提取出有用信息,算法應(yīng)該更著重于分析序列中更加重要的部分。然而,對(duì)于一般的RNN,輸入序列中各個(gè)元素具有相同權(quán)重,其不具備重點(diǎn)關(guān)注序列中特定部分的能力。而且,除了RNN之外,CNN 等其他模型也同樣具有這一不足,因此,近年來(lái)有關(guān)學(xué)者提出了注意力機(jī)制,用于幫助模型關(guān)注數(shù)據(jù)中更加重要的部分。
受到圖像處理領(lǐng)域SIFT 算法中高斯金字塔的啟發(fā),本文提出了一種基于分段注意力機(jī)制的循環(huán)神經(jīng)網(wǎng)絡(luò)模型,其結(jié)構(gòu)如圖1 所示。
圖1 基于分段注意力機(jī)制的深度RNN 模型
模型的輸入為二維張量,兩個(gè)維度分別為特征和時(shí)間。假設(shè)輸入樣本被分為T(mén)個(gè)時(shí)間片,對(duì)每一個(gè)時(shí)間片提取D維特征,則輸入張量大小為D×T,各個(gè)時(shí)間片的特征向量依次存放在張量的每一列。首先,輸入張量依次通過(guò)全連接層和雙向LSTM 層,得到一個(gè)新的二維張量。然后,該張量從時(shí)間維度被切割為多個(gè)片段,每個(gè)片段分別通過(guò)一個(gè)注意力層,映射為一個(gè)特征向量,每個(gè)時(shí)間片的輸出經(jīng)過(guò)組合后又得到新的二維張量。這個(gè)操作相當(dāng)于進(jìn)行了一次池化,假設(shè)每個(gè)時(shí)間片的長(zhǎng)度為L(zhǎng),則池化大小為1×L,輸出張量大小為D×(T/L)。最后,池化結(jié)果依次通過(guò)雙向LSTM 層,注意力層和Softmax 層,映射為概率向量。
該模型結(jié)構(gòu)能夠?qū)r(shí)序信息進(jìn)行層次化的分析,第一級(jí)LSTM 和注意力層用于對(duì)局部的特征進(jìn)行提取,第二級(jí)LSTM 和注意力層用于全局特征的提取。
圖2 為本文采用的注意力機(jī)制的原理示意圖。對(duì)于每一幀,我們計(jì)算LSTM 的輸出yt與向量u的內(nèi)積,記為pt:
圖2 注意力機(jī)制的一種實(shí)現(xiàn)
式中:u是一個(gè)可訓(xùn)練的向量。接下來(lái),我們計(jì)算pt的Softmax 函數(shù):
αt可理解為該幀輸出相對(duì)于最終輸出的權(quán)重。利用權(quán)重向量α對(duì)LSTM 的輸出進(jìn)行加權(quán)求和,得到最終的輸出向量:
將該向量作為分類(lèi)器的輸入即可得到分類(lèi)概率。
首先,和1.1 節(jié)類(lèi)似,利用公式(1),計(jì)算LSTM每一幀的輸出yt與向量u的內(nèi)積pt。接下來(lái),我們首先將LSTM 的輸出分割為若干區(qū)間。假設(shè)共有N個(gè)區(qū)間,每個(gè)區(qū)間長(zhǎng)度為L(zhǎng),設(shè)第n個(gè)區(qū)間為[nL,(n+1)L-1],在該區(qū)間內(nèi),我們計(jì)算pt的Softmax 函數(shù),作為各幀的權(quán)重:
在該區(qū)間內(nèi)利用該權(quán)重對(duì)LSTM 的輸出進(jìn)行加權(quán)求和,得到輸出向量:
因?yàn)楣灿衝個(gè)區(qū)間,所以分段注意力層將輸出一個(gè)長(zhǎng)度為n的序列z。當(dāng)n=1 時(shí),即退化為1.1節(jié)所述的普通注意力模型。
在我們的模型中,我們將第一層LSTM 的輸出,輸入分段注意力層,將分段注意力層的輸出作為第二層LSTM 的輸入,再將第二層LSTM 的輸出,輸入1.1 節(jié)所述的普通注意力層,將其輸出,輸入Softmax分類(lèi)器,得到分類(lèi)概率。
為檢驗(yàn)?zāi)P托阅?,我們?cè)贑ASIA 情感數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)。該數(shù)據(jù)集為中科院自動(dòng)化研究所建立的數(shù)據(jù)集,包括高興,生氣,悲傷,驚訝,恐懼和平靜6 種情緒,每類(lèi)1 200 個(gè)樣本,共7 200 個(gè)樣本。
首先,我們以25 ms 為幀長(zhǎng),10 ms 為幀移對(duì)語(yǔ)音進(jìn)行分幀,對(duì)較短樣本補(bǔ)0,對(duì)較長(zhǎng)樣本截去尾部,以將所有樣本的長(zhǎng)度統(tǒng)一為1 024 幀。接下來(lái),我們?cè)诜謳蟮恼Z(yǔ)音信號(hào)中對(duì)每一幀提取36 維短時(shí)特征(包括ZCR,energy,energy entropy,spectral centroid,spectral spread,spectral entropy,spectral flux,spectral roll-off,13 階MFCC,12 階chroma,chroma 的標(biāo)準(zhǔn)差,harmonic ratio 和pitch),作為模型的輸入。
本文采用文獻(xiàn)[2]提出的基于注意力機(jī)制的RNN 模型作為基線(xiàn)。在該模型中,每幀的數(shù)據(jù)首先通過(guò)全連接層,再通過(guò)RNN 層,最后利用注意力模型對(duì)RNN 層的輸出進(jìn)行加權(quán)池化[2],將池化結(jié)果通過(guò)Softmax 層,得到分類(lèi)概率。在本文的實(shí)驗(yàn)中,我們采用了2 層全連層,每層512 個(gè)神經(jīng)元,激活函數(shù)為ReLU 函數(shù);RNN 層采用的是64 個(gè)神經(jīng)元的雙向LSTM,為了證明深度RNN 能夠取得比普通RNN 更好的性能,我們對(duì)于使用一層LSTM 和兩層LSTM的情況分別進(jìn)行了實(shí)驗(yàn);注意力模型采用1.1 節(jié)所述模型。訓(xùn)練時(shí)對(duì)每層均采用0.5 的dropout 率。
本文提出的模型即在上述基線(xiàn)模型基礎(chǔ)上在兩個(gè)LSTM 層之間加入了一個(gè)1.2 節(jié)所述的分段注意力模型,以16 幀為單位對(duì)第一層LSTM 的輸出進(jìn)行分段注意力池化。模型的其余參數(shù)與上述基線(xiàn)模型相同。
我們對(duì)每個(gè)模型都進(jìn)行了多次實(shí)驗(yàn),表1 列出了各模型取得的最高準(zhǔn)確率(weighted accuracy,WA),最低準(zhǔn)確率,以及平均準(zhǔn)確率。因?yàn)樵摂?shù)據(jù)集各類(lèi)別樣本數(shù)是平衡的,所以UA(unweighted accuracy)和WA 是相同的。
表1 各模型的準(zhǔn)確率
表1 中的結(jié)果表明,采用雙層LSTM 的模型性能比采用單層LSTM 的模型更好。這說(shuō)明深度RNN的確能夠取得比單層RNN 更好的性能。在兩層LSTM 之間加入了分段注意力機(jī)制后,模型識(shí)別率提高了約1.5%。
同時(shí),我們也比較了三個(gè)模型的訓(xùn)練速度。實(shí)驗(yàn)采用的深度學(xué)習(xí)框架為T(mén)ensorflow 1.13.1,利用Nvidia RTX2070 GPU 進(jìn)行加速。訓(xùn)練時(shí)采用的batch 大小為128,采用Adam 優(yōu)化算法進(jìn)行訓(xùn)練,初始學(xué)習(xí)率為0.001,在驗(yàn)證集損失函數(shù)連續(xù)10 步?jīng)]有下降時(shí)將學(xué)習(xí)率降低0.5 倍。在驗(yàn)證集識(shí)別率連續(xù)20 步?jīng)]有提高時(shí)終止訓(xùn)練。表2 列出了各模型的訓(xùn)練時(shí)間,表3列出了各模型訓(xùn)練過(guò)程中識(shí)別率的變化。從結(jié)果可以看出,在兩個(gè)LSTM 層之間加入分段注意力機(jī)制之后,雖然模型參數(shù)變多了,但模型收斂速度卻提高了約100%,甚至相比單層LSTM 也要略高。原因是分段注意力機(jī)制縮短了第二層LSTM 輸入序列的長(zhǎng)度,而RNN 訓(xùn)練速度主要取決于輸入序列的長(zhǎng)度。
表2 各模型收斂時(shí)間
表3 各模型訓(xùn)練過(guò)程中識(shí)別率的變化
為了將注意力模型與深度RNN 緊密結(jié)合,本文對(duì)傳統(tǒng)的注意力機(jī)制進(jìn)行了推廣,提出了分段注意力機(jī)制,并提出了基于該機(jī)制的深度RNN 模型。該模型中,上一級(jí)RNN 層的輸出序列首先被分段,對(duì)于每一段都進(jìn)行注意力加權(quán)池化,以此將前級(jí)RNN輸出的較長(zhǎng)序列映射為較短的序列作為后級(jí)RNN的輸入。本文在CASIA 情感數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果證明,深度RNN 能夠取得比單層RNN 更好的性能;在引入分段注意力機(jī)制后,模型性能獲得了進(jìn)一步提升,且模型的訓(xùn)練速度獲得了大幅提高。