申屠相镕, 秦會(huì)斌
(杭州電子科技大學(xué) 新型電子器件與應(yīng)用研究所,浙江 杭州 310018)
在現(xiàn)代化的腳步不斷向前邁進(jìn)的今天,人們對(duì)于計(jì)算機(jī)的依賴程度與日俱增,如何用計(jì)算機(jī)方法來(lái)處理人類的自然語(yǔ)言也成了熱門的研究?jī)?nèi)容。對(duì)話行為分類是實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的自然語(yǔ)言對(duì)接的一項(xiàng)重要任務(wù),因?yàn)檎f(shuō)話者的意圖可以用對(duì)話行為(與語(yǔ)境無(wú)關(guān)的語(yǔ)義和依賴于語(yǔ)境的謂語(yǔ))[1]來(lái)表示。
為了解決對(duì)話行為分類中的模糊問(wèn)題,過(guò)去20年來(lái)學(xué)者們提出了各種機(jī)器學(xué)習(xí)模型。文獻(xiàn)[2]研究了稀疏建模方法來(lái)改善對(duì)話行為分類,提出稀疏對(duì)數(shù)線性模型,相對(duì)于基于規(guī)則的基線模型獲得了19.7%的相對(duì)改善,并且超過(guò)了先進(jìn)的支持向量機(jī)(Support Vector Machines,SVM)模型2.2%。文獻(xiàn)[3]研究了多核SVM模型來(lái)處理對(duì)話行為識(shí)別問(wèn)題,提出了一種改進(jìn)的多核SVM模型并在一些開(kāi)放分類任務(wù)和中文對(duì)話行為識(shí)別任務(wù)上進(jìn)行測(cè)試。文獻(xiàn)[4]研究了對(duì)話法分類,提出了一種新的生成神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu),在循環(huán)神經(jīng)網(wǎng)絡(luò)框架的基礎(chǔ)上結(jié)合了一種新的注意技術(shù)和序列學(xué)習(xí)的標(biāo)簽-標(biāo)簽連接。文獻(xiàn)[5]證明使用高斯過(guò)程(Gaussian Process,GP)的貝葉斯優(yōu)化超參數(shù)可進(jìn)一步改進(jìn)結(jié)果,并且縮短計(jì)算時(shí)間。文獻(xiàn)[6]對(duì)使用提示短語(yǔ)作為對(duì)話行為分類的基礎(chǔ)進(jìn)行了調(diào)查,通過(guò)提示短語(yǔ)來(lái)定義含義,并描述如何從手動(dòng)標(biāo)記的對(duì)話語(yǔ)料庫(kù)中提取它們。但以上文獻(xiàn)均采用實(shí)驗(yàn)室環(huán)境中純凈的原始語(yǔ)音作為測(cè)試樣本,實(shí)際的對(duì)話環(huán)境中常常存在噪聲的干擾,因此需要建立一個(gè)能夠有效應(yīng)對(duì)噪聲環(huán)境的對(duì)話行為分類模型。
本文提出了一個(gè)使用快速噪聲估計(jì)譜減法、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)和長(zhǎng)短期記憶(Long-Short Term Memory,LSTM)網(wǎng)絡(luò)的對(duì)話行為分類模型。該模型先將原始話語(yǔ)進(jìn)行語(yǔ)音增強(qiáng),再通過(guò)使用卷積神經(jīng)網(wǎng)絡(luò)將輸入話語(yǔ)概括為嵌入向量,然后通過(guò)基于長(zhǎng)短期記憶網(wǎng)絡(luò)的上下文信息關(guān)聯(lián),使用對(duì)話行為標(biāo)簽來(lái)標(biāo)注話語(yǔ)序列。在測(cè)試階段,將分別用文獻(xiàn)[2]與文獻(xiàn)[4]的算法對(duì)包含噪聲的語(yǔ)音樣本進(jìn)行測(cè)試并對(duì)比結(jié)果。
快速噪聲估計(jì)頻譜相減的基本原理是在短期平穩(wěn)語(yǔ)音信號(hào)和加性噪聲之間彼此獨(dú)立的假設(shè)前提下,將噪聲的功率譜從包含噪聲的語(yǔ)音功率譜中減去,從而得到更加純凈的語(yǔ)音頻譜[7]。假設(shè)s(n)是純語(yǔ)音信號(hào),d(n)是噪音信號(hào),y(n)是包含噪音的語(yǔ)音信號(hào),那么可以得到以下表達(dá)式:
y(n)=s(n)+d(n)
(1)
Y(k),S(k)和D(k)分別表示y(n),s(n)和d(n)的離散傅里葉變換結(jié)果,如下所示:
Y(k)=S(k)+D(k)
(2)
(3)
由于噪聲信號(hào)與語(yǔ)音信號(hào)是彼此獨(dú)立的,而且D(k)是服從E(D(k))的高斯分布,所以可以得到以下等式:
(4)
對(duì)于一個(gè)具有短時(shí)靜止特性的語(yǔ)音信號(hào)來(lái)說(shuō),可以得到:
(5)
(6)
式中,|S(k)|為增強(qiáng)后的語(yǔ)音信號(hào)幅度。
在語(yǔ)音頻譜中第k個(gè)頻譜分量的增益函數(shù)定義為
(7)
并且后驗(yàn)信噪比的定義為
(8)
所以可以得到:
(9)
值得注意的是,當(dāng)γ(k)>1且G(k)<0時(shí),方程將變得無(wú)意義。為了避免這種情況,不妨進(jìn)行以下改寫:
(10)
式中,ε為一個(gè)大于0的常數(shù)。
從以上方程中可以得出, 頻譜相減的本質(zhì)是給噪聲的每個(gè)含有噪聲的頻譜分量乘以一個(gè)系數(shù)G(k),G(k)的值與噪聲呈正相關(guān)。在高信噪比的情況下有效語(yǔ)音信號(hào)的比重較大而噪聲占比較小,因此G(k)是較小的。而在低信噪比的情況下G(k)較大。通過(guò)式(1)~式(3)將包含噪聲的語(yǔ)音信號(hào)進(jìn)行快速傅里葉變換,再通過(guò)式(4)~式(6)完成噪聲參數(shù)估值,通過(guò)式(7)~式(10)可以計(jì)算獲得語(yǔ)音增強(qiáng)后的增益,最后通過(guò)快速傅里葉逆變換即可得到增強(qiáng)后的語(yǔ)音信號(hào),具體的流程框圖如圖1所示。
圖1 快速噪聲估計(jì)頻譜相減的結(jié)構(gòu)圖
為了處理增強(qiáng)后的語(yǔ)音信號(hào),筆者提出了一個(gè)使用卷積神經(jīng)網(wǎng)絡(luò)[8]和長(zhǎng)短期記憶網(wǎng)絡(luò)[9]的語(yǔ)音識(shí)別模型。模型利用卷積神經(jīng)網(wǎng)絡(luò)將輸入話語(yǔ)轉(zhuǎn)化為嵌入向量,然后利用基于長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)的上下文信息匹配法對(duì)話語(yǔ)行為標(biāo)簽和話語(yǔ)行為序列進(jìn)行注釋。
設(shè)C1,n為一個(gè)包含n個(gè)對(duì)話的對(duì)話集,設(shè)S1,n為對(duì)話集內(nèi)的一個(gè)語(yǔ)義,P1,n是一個(gè)包含了C1,n中謂語(yǔ)的集合。從而可以建立以下公式:
DA(C1,n)=argmaxS1.n,P1,nP(S1,n,P1,n|C1,n)
(11)
可以假設(shè)一句話的語(yǔ)義和一個(gè)謂語(yǔ)是相互獨(dú)立的[10]。基于這個(gè)假設(shè),將式(11)簡(jiǎn)化為
DA(C1,n)=argmaxS1.n,P1,nP(S1,n|C1,n)P(P1,n|C1,n)
(12)
式(12)又可以通過(guò)以下兩個(gè)假設(shè)簡(jiǎn)化為式(13):
① 一階馬爾可夫假設(shè),即當(dāng)前類別(即當(dāng)前語(yǔ)義或當(dāng)前謂詞)依賴于前一類別(即先前的語(yǔ)義或先前的謂語(yǔ));
② 條件獨(dú)立假設(shè),即當(dāng)前類別僅依賴于當(dāng)前話語(yǔ)的觀察信息。
(13)
在式(13)中,由于說(shuō)話人在真實(shí)對(duì)話中根據(jù)個(gè)人語(yǔ)言意義使用各種句子表面形式表達(dá)相同的內(nèi)容,所以不可以直接計(jì)算P(Si|Ci)和P(Pi|Ci)。為了克服這個(gè)問(wèn)題,本文使用CNN模型將說(shuō)話人的話語(yǔ)概括為嵌入向量,如圖2所示。
圖2 使用CNN的語(yǔ)言嵌入
(14)
為了獲得最大化方程(14)的序列標(biāo)簽S1,n和P1,n,本文采用LSTM模型,如圖3所示。
圖3 使用LSTM進(jìn)行序列標(biāo)記
為了進(jìn)行實(shí)驗(yàn),測(cè)試人員收集了例如行程安排、日?;顒?dòng)、娛樂(lè)交際等方面的中文日常對(duì)話并加入初始語(yǔ)料庫(kù)中[14]。通過(guò)刪除初始語(yǔ)料庫(kù)中日常對(duì)話的感嘆詞和錯(cuò)誤表達(dá)來(lái)獲得對(duì)話語(yǔ)料庫(kù)。在對(duì)話中,一位參與者作為一個(gè)“用戶”,隨便地詢問(wèn)另一位參與者關(guān)于其每天的日程安排的問(wèn)題,另一位參與者擔(dān)任回答問(wèn)題的“系統(tǒng)”,使用初始語(yǔ)料庫(kù)提前提供的信息進(jìn)行回答。共有4名測(cè)試人員扮演“系統(tǒng)”的角色。
獲得的對(duì)話語(yǔ)料庫(kù)由956組對(duì)話和21336句話語(yǔ)組成(每個(gè)對(duì)話22.3句話語(yǔ))。用語(yǔ)義(11種)和預(yù)測(cè)(47種)在對(duì)話中手動(dòng)注釋每句話語(yǔ)。為了使用所提出的模型進(jìn)行實(shí)驗(yàn),將注釋的語(yǔ)料庫(kù)分成訓(xùn)練語(yǔ)料庫(kù)和測(cè)試語(yǔ)料庫(kù),比例為9∶1,然后進(jìn)行10倍交叉驗(yàn)證。
采用4種評(píng)估方法:準(zhǔn)確率(Accuracy)、宏觀精確率(Macro Precision)、宏觀召回率(Macro Recall)和宏觀F1度量(Macro F1-Measure)來(lái)評(píng)估所提出模型的性能。準(zhǔn)確率是返回正確值的比例;宏觀精確率是每個(gè)類別返回的正確值的平均比例;宏觀召回率是每個(gè)類別正確返回值的平均比例;宏觀F1度量將宏觀精度和宏觀召回率與以下形式的等量加權(quán)相結(jié)合:F1=(2.0×宏觀精確率×宏觀召回率)/(宏觀精確率+宏觀召回率)。
本文使用TensorFlow 1.4.0來(lái)實(shí)現(xiàn)模型訓(xùn)練,訓(xùn)練和預(yù)測(cè)都是以句子為最小單位完成的。將圖3中每個(gè)Word2Vec嵌入向量的大小設(shè)置為50,訓(xùn)練長(zhǎng)度為300個(gè)周期。通過(guò)小批量隨機(jī)梯度下降法來(lái)尋找最佳模型,每個(gè)小批量包含15個(gè)句子,學(xué)習(xí)率固定為0.001。
測(cè)試用的實(shí)驗(yàn)電路由以下模塊組成:輸入前置放大器、增益調(diào)節(jié)為0~40 dB的校準(zhǔn)電路、步進(jìn)為5 dB的線性輸出衰減器,以及范圍為0~100 dB的SPL、50 Wclass-T數(shù)字功率放大器、PIC18F2550微控制器、一個(gè)2行×20個(gè)字符的顯示器和一個(gè)鍵盤。
測(cè)試環(huán)境中包含兩個(gè)位于45°處(測(cè)試人員的左側(cè)和右側(cè))的麥克風(fēng)和一個(gè)位于測(cè)試人員180°用于產(chǎn)生競(jìng)爭(zhēng)噪聲的揚(yáng)聲器,在兩側(cè)的麥克風(fēng)處各放置一個(gè)錄音設(shè)備,將測(cè)試人員發(fā)出的自然語(yǔ)言錄下,用以分析。具體如圖4所示。
圖4 測(cè)試環(huán)境
識(shí)別測(cè)試包含3種情況:
① 無(wú)噪聲環(huán)境下的語(yǔ)句列表;
② 信噪比為0 dB噪聲環(huán)境下的語(yǔ)句列表;
③ 信噪比為5 dB噪聲環(huán)境下的語(yǔ)句列表。
將1號(hào)麥克風(fēng)收集到的語(yǔ)音信號(hào)經(jīng)過(guò)處理后輸入給本文提出的語(yǔ)言分類模型,將2號(hào)麥克風(fēng)收集到的語(yǔ)音信號(hào)經(jīng)過(guò)處理后輸入給先前文獻(xiàn)的模型。對(duì)無(wú)噪聲(對(duì)照)的測(cè)試結(jié)果與噪聲在0 dB和5 dB比率下的準(zhǔn)確率、宏觀精確率、宏觀召回率和宏觀F1度量進(jìn)行分析和比較。
實(shí)驗(yàn)中的講話部分在安靜的環(huán)境中用麥克風(fēng)記錄,內(nèi)容是“我下午去跑步”。通過(guò)16 ms采樣的PCM編碼將語(yǔ)音定量為數(shù)字信號(hào),數(shù)據(jù)長(zhǎng)度為12000 bit。得到了輸入信噪比(0 dB和5 dB)與高斯白噪聲成比例混合的噪聲語(yǔ)音,然后利用128 bit交替的256 bit長(zhǎng)(16 ms)漢明窗函數(shù)得到256 bit長(zhǎng)的語(yǔ)音幀。在實(shí)驗(yàn)中分別采用普通譜減法與基于快速噪聲估計(jì)的譜減法得到的降噪語(yǔ)音,比較模擬結(jié)果如圖5和圖6所示。
圖5 輸入信噪比為0 dB的信號(hào)時(shí)的模擬結(jié)果
圖6 輸入信噪比為5 dB的信號(hào)時(shí)的模擬結(jié)果
與普通譜減法相比,基于快速噪聲估計(jì)的譜減法顯著提高了語(yǔ)音質(zhì)量。它可以在背景噪音抑制中獲得好的結(jié)果。它具有易于實(shí)施和計(jì)算量少的優(yōu)點(diǎn)。該算法能夠很好地估計(jì)非平穩(wěn)環(huán)境下的噪聲功率譜。
通過(guò)使用相同的訓(xùn)練和測(cè)試語(yǔ)料庫(kù)比較不同信噪比的噪聲環(huán)境對(duì)本模型性能的影響,結(jié)果如圖7和圖8所示。
圖7 模型在不同噪聲環(huán)境下語(yǔ)義分類的表現(xiàn)
圖8 模型在不同噪聲環(huán)境下謂語(yǔ)分類的表現(xiàn)
在圖7所示的語(yǔ)義分類中,噪聲對(duì)宏觀召回率的影響比較大,無(wú)噪聲與5 dB信噪比環(huán)境之間產(chǎn)生了0.019的概率差,但在準(zhǔn)確率方面噪聲對(duì)模型產(chǎn)生的影響較小。圖8所示的謂語(yǔ)分類結(jié)果則表現(xiàn)出模型具有較強(qiáng)的抗噪聲能力,0 dB信噪比環(huán)境對(duì)模型產(chǎn)生的影響很微小,而在5 dB信噪比環(huán)境下也有較好的表現(xiàn)。
在0 dB信噪比環(huán)境下使用相同的訓(xùn)練和測(cè)試語(yǔ)料庫(kù)將本文提出的模型與先前的模型進(jìn)行比較。圖9和圖10顯示了本文提出的模型和以前的模型之間的性能差異。
在圖9中,文獻(xiàn)[3]提出的模型是一個(gè)基于SVM的模型,其中最佳特征用于言語(yǔ)行為分類。在圖9和圖10中,文獻(xiàn)[2]提出的模型是一個(gè)基于SVM的分類模型,其中通過(guò)使用相互再訓(xùn)練方法增加了語(yǔ)義識(shí)別和謂語(yǔ)識(shí)別的性能。文獻(xiàn)[4]提出的模型是一個(gè)基于神經(jīng)網(wǎng)絡(luò)的綜合模型,其中謂語(yǔ)識(shí)別的結(jié)果被用作語(yǔ)義識(shí)別的輸入。如圖9和圖10所示,所提出的模型表現(xiàn)出比以前的模型更好的性能,并且沒(méi)有進(jìn)行任何特征工程。此外,本文提出的模型雖然沒(méi)有采用任何二次訓(xùn)練方法來(lái)緩解語(yǔ)義與謂語(yǔ)之間的獨(dú)立性假設(shè),但其表現(xiàn)優(yōu)于文獻(xiàn)[2]提出的模型。這一結(jié)果顯示出所提出的CNN體系結(jié)構(gòu)(即與公共節(jié)點(diǎn)的部分連接)為緩解獨(dú)立性假設(shè)提供了一些幫助。
圖9 0 dB噪聲環(huán)境下語(yǔ)義分類的表現(xiàn)比較
圖10 0 dB噪聲環(huán)境下謂語(yǔ)分類的表現(xiàn)比較
本文為對(duì)話行為分類提出了一種深度神經(jīng)網(wǎng)絡(luò)模型。所提出的模型使用基于快速噪聲估計(jì)的譜減法來(lái)進(jìn)行語(yǔ)音增強(qiáng);使用基于CNN的新的語(yǔ)言嵌入方法,以緩解語(yǔ)義和謂語(yǔ)之間的獨(dú)立性假設(shè);使用基于LSTM的序列標(biāo)注方法來(lái)標(biāo)注話語(yǔ)序列。在中文日常對(duì)話語(yǔ)料庫(kù)的實(shí)驗(yàn)中,本文提出的模型在沒(méi)有進(jìn)行任何特征工程和二次訓(xùn)練的情況下,表現(xiàn)出了優(yōu)于先前文獻(xiàn)所提出模型的性能。