崔新明,賈 寧,周潔美慧
(大連東軟信息學院 計算機與軟件學院,大連 116023)
在人與人或人與計算機的交互中,話語的表達方式傳遞著重要的副語言信息,特別是蘊含著與潛在情感有關(guān)的信息.因此,需要現(xiàn)代言語分析系統(tǒng)能夠分析這種與情感相關(guān)的非語言維度,以及話語本身的信息,以適應(yīng)更好的人機交互操作.近年來,自動識別口語情感內(nèi)容和情感語音對話等技術(shù)引起了越來越多研究人員的關(guān)注.語音情感識別和對話均是典型的有監(jiān)督的音頻任務(wù),它們均涉及低級音頻特征映射到具有不同情感的高級類標簽或情感維度的映射.因此,帶精確標注的數(shù)據(jù)集在構(gòu)建和評估語音情感識別系統(tǒng)中是非常重要的.然而,在現(xiàn)實生活中,真實表達情感的開源語料庫少之又少,而且大多數(shù)語料庫使用的是非漢語語言.
基于此,本文提出了一個基于條件生成對抗網(wǎng)絡(luò)(conditional generative adversarial networks,條件GAN)的語音生成技術(shù),用于合成海量的漢語情感語音,并實現(xiàn)情感的精確表達,在實驗過程中,通過情感識別模型驗證了生成情感語音的有效性.
語料庫規(guī)模不足或高度傾斜的數(shù)據(jù)是語音生成和語音識別過程中的一個常見問題.在數(shù)據(jù)采集和標注過程中,中性語音樣本的使用頻率遠高于含有情感的語音樣本,或者存在大量情感表達有歧義的語音,這些問題均導致數(shù)據(jù)集出現(xiàn)高度不平衡的現(xiàn)象.解決數(shù)據(jù)不平衡的一種常見方法是使用數(shù)據(jù)增強技術(shù)[1].Wong 等人[2]利用過采樣和變換生成數(shù)據(jù)空間合成樣本,有利于數(shù)據(jù)空間的擴展以進行數(shù)字分類.Schluter 等人[3]評估了七種不同的數(shù)據(jù)增強技術(shù),用于檢測語音譜圖中的情緒表達,發(fā)現(xiàn)音高的偏移量和隨機頻率的濾波是最有效的情感表達.此外,研究表明音調(diào)增強有利于環(huán)境聲音分類[4]和音樂流派分類[5]等任務(wù).對于語音生成等任務(wù),Aldeneh 等人[6]對原始信號應(yīng)用了語速的微調(diào),證明了情感表達的有效性.
除了傳統(tǒng)的數(shù)據(jù)增強方法,生成對抗網(wǎng)絡(luò)(generative adversarial networks,GAN)作為一種強大的生成模型,其應(yīng)用范圍越來越廣.GAN 通過同時訓練兩個相互競爭的網(wǎng)絡(luò)(一個生成器和一個鑒別器)來近似數(shù)據(jù)分布.GAN的計算流程與結(jié)構(gòu)如圖1所示.許多研究集中在提高生成樣本的質(zhì)量和穩(wěn)定GAN 訓練等領(lǐng)域中[7].
圖1 GAN的計算流程與結(jié)構(gòu)
生成性對抗網(wǎng)絡(luò)已經(jīng)成功地應(yīng)用于各種計算機視覺任務(wù)以及與語音相關(guān)的應(yīng)用,如語音增強[8]和語音轉(zhuǎn)換[9].Sahu 等人部署對抗式自動編碼器在壓縮特征空間中表示語音,同時保持情感類之間的區(qū)分性[10].Chang和Scherer 利用一個深層卷積GAN 以半監(jiān)督的方式學習情感言語的區(qū)別表示[11].Han 等人提出了一個由兩個網(wǎng)絡(luò)組成的條件對抗訓練框架.一個學習預測情緒的維度表示,而另一個旨在區(qū)分預測和數(shù)據(jù)集的真實標簽[12],其識別精度可以和傳統(tǒng)的合成網(wǎng)絡(luò)相當.
最近,基于GAN的強大合成能力,許多研究人員開發(fā)了GAN的變換版本,Antoniou 等人[13]訓練了一個生成類內(nèi)樣本的GAN.Zhu 等人[14]設(shè)計了CycleGAN架構(gòu)適用于面部表情的情感分類.對于語音領(lǐng)域,Sahu 等人[15]綜合特征向量用于提高分類器在情感任務(wù)中的性能.Mariani 等人[16]提出了一種條件GAN 結(jié)構(gòu)來解決數(shù)據(jù)不平衡問題.基于上述現(xiàn)有的研究基礎(chǔ),本文選擇使用條件對抗生成網(wǎng)絡(luò)實現(xiàn)對于情感語音的合成,其中涉及權(quán)重學習和條件GAN的微調(diào)過程,此外在實驗中設(shè)計了一個判別模型用于驗證合成情感的有效性.
作為人機交互系統(tǒng)的重要功能之一,本文在生成對應(yīng)文本信息的基礎(chǔ)上,針對個體用戶的語音模型,以說話者的低級描述符特征標簽為條件,設(shè)計條件對抗生成網(wǎng)絡(luò)模型生成語音.
在生成過程中,生成模型的設(shè)計起到?jīng)Q定性的作用,傳統(tǒng)的生成模型需要預先獲得一個標準模型才可進行數(shù)據(jù)的生成,該模型的獲取較為困難,且容易出現(xiàn)誤差,可以采用具有學習和模仿輸入數(shù)據(jù)分布的GAN模型實現(xiàn)目標.
GAN 由一個鑒別器和一個發(fā)生器組成,它們協(xié)同工作,以學習目標的基礎(chǔ)數(shù)據(jù)分布,這種無需預先建模的方法,對于較大的數(shù)據(jù)是不可控的.為了解決GAN 太過自由這個問題,可以為GAN 加一些約束,即一種帶條件約束的GAN,在生成模型(G)和判別模型(D)的建模中均引入條件變量,指導數(shù)據(jù)生成過程.
本文利用條件GAN 模型生成語音情感識別的生成特征向量.它學習以標簽或其所屬的情感類為條件y的高維特征向量的分布.在生成網(wǎng)絡(luò)的基礎(chǔ)上,輸入增加了一個情感約束條件p(z),輸出是一個綜合打分或者輸出兩個分數(shù),分別表示真實與條件GAN的相符程度.具體網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示.
圖2 條件GAN 模型網(wǎng)絡(luò)結(jié)構(gòu)
條件GAN的目標函數(shù)是帶有條件概率的二人極小極大值博弈.如式(1)所示.
同一般形式的GAN 類似,條件GAN 也是先訓練判別網(wǎng)絡(luò),再訓練生成網(wǎng)絡(luò),然后循環(huán)此過程,即兩個網(wǎng)絡(luò)交替的完成訓練.訓練判別網(wǎng)絡(luò)的樣本與之前的樣本稍有不同,此時需要這3 種樣本,分別是:
(1)與條件相符的真實語音,期望輸出為1;
(2)與條件不符的真實語音,期望輸出為0;
(3)生成網(wǎng)絡(luò)生成的輸出,期望輸出為0.
如圖3所示,本文中條件GAN中生成數(shù)據(jù)生成以標簽為條件.給定一組數(shù)據(jù)點及其對應(yīng)的標簽,真實數(shù)據(jù)的類信息均為one-hot 編碼.條件GAN 學習條件分布,將含有噪聲的語音以及情感條件通過生成器,生成增強后的語音,增強后的語音和相似情感的語音通過判別器,判別器的功能是找出語音的正確類別,并實現(xiàn)對語音的標記,生成器的目標則是讓判別器實現(xiàn)對于生成語音的合理判別,在實現(xiàn)過程中,雙方不斷的微調(diào)各自的結(jié)果,最終達到一種平衡狀態(tài),即生成器生成的語音可以真實的模擬情感,而判別器可以從語音中識別出的目標情感.基于此,可以獲得與相似情感語音的情感描述相同的生成結(jié)果.
圖3 條件GAN 生成模型
在條件GAN 模型初始化時,需要將學習到的權(quán)值傳輸?shù)紾AN 模塊,編碼器權(quán)值分別傳輸?shù)脚袆e器和解碼器權(quán)值傳輸?shù)缴善?對于類條件,需要計算與每個類的圖像相對應(yīng)的自動編碼器的學習潛在向量的均值和協(xié)方差矩陣.此時可用多元正態(tài)分布對每一類進行建模,然后,從一個特定類的分布中隨機抽取一個潛在向量,并將其作為輸入提供給生成器,因此條件GAN需具有明確的類別信息.
另一個關(guān)鍵技術(shù)是條件GAN的微調(diào)過程,即條件GAN是使用少數(shù)和大多數(shù)類別的訓練數(shù)據(jù)進行微調(diào)的.通過這種方式,學習類之間共享的特性.這些特征有助于為少數(shù)類創(chuàng)造定性的條件.在微調(diào)期間,生成器從類條件潛在向量生成器中提取的潛在特征作為輸入.后者以均勻分布的類標簽作為輸入.然后,將一批真實語音和生成的語音轉(zhuǎn)發(fā)給判別器.兩個競爭網(wǎng)絡(luò)中的每一個的目標是使用交叉熵優(yōu)化其損失函數(shù),對判別器進行優(yōu)化后,使真實語音與正確的類標簽相匹配,生成的語音與假標簽相匹配.GAN 微調(diào)后,使用生成器分別為每個類別生成人工情感語音,以接近大多數(shù)類別的情感真實表達.
本文采用IEMOCAP和自建情感語料庫分別進行實驗分析.
IEMOCAP 數(shù)據(jù)集包含兩個演員之間的對話記錄,數(shù)據(jù)的總量是來自10 個發(fā)言者的12 小時音頻和視頻信息,其中注釋了11 類情感標簽(憤怒,幸福,悲傷,中立,驚訝,恐懼,沮喪和興奮)和尺寸標簽(激活和效價的值)從1 到5).本文事先完成了數(shù)據(jù)過濾步驟:保留的樣本中,其中至少兩個注釋者就情感標簽達成一致,丟棄話語注釋不同的情緒的樣本,并僅使用注釋為中性,憤怒,高興和悲傷的樣本,產(chǎn)生4 490 個樣本(憤怒的1 103,高興的595,中性的1 708和悲傷的1 084),其中使用4 個會話進行訓練,余下的1 個會話用于驗證和測試.
自建情感語料庫是由本校60 余名學生及教師錄制的語音樣本集合,數(shù)據(jù)總量為包含40 條文字樣本的21 000 條音頻數(shù)據(jù),每個音頻時長約2–4 s,均采用中性,憤怒,高興和悲傷4 種情感進行錄制.每類的樣品數(shù)量較為均衡.與IEMOCAP 數(shù)據(jù)集的處理方法類似,只保留至少兩個注釋者的情感標簽一致的數(shù)據(jù),同時使用5 折交叉驗證的方式進行測試.
對于IEMOCAP的評估實驗,我們使用5 折交叉驗證,即使用4 個會話進行訓練,使用1 個會話進行測試.此設(shè)置是相關(guān)SER 庫中IEMOCAP的常見做法.我們使用80%–20%的切分策略,分別進行訓練和驗證.
此處選擇深度學習方法建立情感特征驗證模型,使用TensorFlow 作為開發(fā)框架.此處采用了雙向3 層的長短期記憶網(wǎng)絡(luò)(long-short term memory,LSTM)模型,雙向是指存在兩個傳遞相反信息的循環(huán)層,第1 層按時間順序傳遞信息,第2 層按時間逆序傳遞信息.它意味著過去和未來的信息均可以成功捕獲,這是由于情感表達的時序因素可以由當前時刻的前后若干幀的信息共同決定.因此按照上述思路設(shè)計了3 層雙向LSTM 模型,利用條件GAN 模型獲得的新語音進行模型的訓練和參數(shù)學習.此模型的結(jié)構(gòu)如圖4所示.
圖4 語音情感驗證模型
設(shè)計相關(guān)的實驗驗證其有效性,本節(jié)將對比情感語音的識別效果.采用加權(quán)精度(weighted accuracy,WA)和未加權(quán)精度(unweighted accuracy,UA)作為指標,采用圖4中描述的情感分類模型進行測試.IEMOCAP語料庫和自建語料庫的測試結(jié)果見表1和表2.
表1 IEMOCAP 測試結(jié)果 (%)
表2 自建語料庫測試結(jié)果 (%)
從IEMOCAP 語料庫和自建語料庫的測試結(jié)果可以看出,使用條件GAN 模型生成語音的情感識別效果高于使用GAN 模型生成語音的結(jié)果,而且,它們的測試精度與原始語音的精度相當,由此可以得出結(jié)論,當前的條件GAN 模型可以生成與原始語音信號表達情感相似的信號.
進一步對比驗證生成語音與原始語音的相似度及可用性.分別使用原始語音、生成語音和上述語音集合作為訓練數(shù)據(jù),采用生成語音、原始語音和混合語音作為測試數(shù)據(jù),搭建如圖4所示的情感分類模型.IEMOCAP 語料庫和自建語料庫的測試結(jié)果見表3和表4.
表3 IMOCAP 測試結(jié)果 (%)
表4 自建語料庫測試結(jié)果 (%)
從測試結(jié)果可以看出生成語音與原始語音相似且可用,使用生成語音與原始語音的集合可以進一步提升語音情感識別的有效性.
最后,將原始數(shù)據(jù)與生成數(shù)據(jù)結(jié)合進一步對情感語音分類,現(xiàn)有方法測試結(jié)果如表5,自建語料庫模型測試結(jié)果如表6.由測試結(jié)果可以看出自建語料庫后對情感語音進行分類,并對比現(xiàn)有方法,自建語料庫后的模型相比現(xiàn)有方法識別精度有所提升.
表5 現(xiàn)有方法測試結(jié)果
表6 自建語料庫測試結(jié)果
本文利用條件GAN 模型對大量情感語音進行訓練,其生成樣本接近原始學習內(nèi)容的自然語音信號的情感表達,通過實驗表明,使用IEMOCAP 語料庫和自建語料庫獲得的新語音具有與原語音相匹配的情感表達.
在未來的研究過程中,作者將進一步擴充現(xiàn)有的情感語料庫,同時進一步改進條件GAN 模型,以提升生成新語音的情感表達效果.