朱 敏鄧 偉趙 力
(1.常州信息職業(yè)技術(shù)學(xué)院電子工程學(xué)院,江蘇常州 213164;2.東南大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,江蘇南京 210096)
近年來,自動環(huán)境聲音分類問題越來越受到科研人員的廣泛關(guān)注。目前其應(yīng)用范圍包括情境感知計(jì)算[1]和監(jiān)控[2]、智能聲學(xué)傳感器網(wǎng)絡(luò)實(shí)現(xiàn)的噪聲緩解[3]。
目前已經(jīng)有多種方法應(yīng)用于環(huán)境聲音分類的問題,包括矩陣分解[4-6],字典學(xué)習(xí)[7-8],小波濾波器組[8-9]以及深度神經(jīng)網(wǎng)絡(luò)[10-11],還有很多與環(huán)境聲音分類類似的研究[12-14]。根據(jù)許多研究結(jié)果,深度卷積神經(jīng)網(wǎng)絡(luò)原則上非常適合環(huán)境聲音分類的問題[15]:首先,其能夠捕獲跨時(shí)間和頻率的能量信息;其次,通過使用具有小的感受野的卷積核,神經(jīng)網(wǎng)絡(luò)能夠?qū)W習(xí)識別代表不同聲音類的時(shí)域-頻域模式[16]。然而,卷積神經(jīng)網(wǎng)絡(luò)在環(huán)境聲音分類中的應(yīng)用還受到很大的限制。例如,Piczak K J[11]提出CNN 結(jié)構(gòu)獲得的結(jié)果沒有明顯的提升。
具有較好分類效果的深度神經(jīng)網(wǎng)絡(luò)尤其依賴于訓(xùn)練集的數(shù)據(jù)量。CNN 模型應(yīng)用于環(huán)境聲音分類效果有限的一方面原因可能是具有標(biāo)記的環(huán)境聲音數(shù)據(jù)集較小。雖然近年來不同的研究機(jī)構(gòu)已經(jīng)發(fā)布了幾個(gè)新的數(shù)據(jù)集[17-18],但它們?nèi)匀槐绕渌I(lǐng)域(比如圖像分類[19])可用于研究的數(shù)據(jù)集小得多。
數(shù)據(jù)增強(qiáng)是上述問題的一個(gè)可行方案,即將一個(gè)或多個(gè)數(shù)據(jù)轉(zhuǎn)換應(yīng)用于具有標(biāo)記的訓(xùn)練數(shù)據(jù)集合,用以產(chǎn)生額外的訓(xùn)練數(shù)據(jù)[19-21]。數(shù)據(jù)增強(qiáng)的關(guān)鍵點(diǎn)在于標(biāo)記數(shù)據(jù)的變形不改變其語義含義,使其仍屬于已有的標(biāo)簽。以圖像為例,汽車的旋轉(zhuǎn)、平移、鏡像或縮放圖像仍然是屬于汽車類別的圖像,因此可以應(yīng)用這些變形來產(chǎn)生額外的訓(xùn)練數(shù)據(jù)。音頻領(lǐng)域已經(jīng)提出了使語義不變的數(shù)據(jù)變形,并且已經(jīng)提升了音樂分類任務(wù)的模型精度[21]。然而,在某些環(huán)境聲音分類的情況下,數(shù)據(jù)增強(qiáng)的應(yīng)用相對有限[11-22],Piczak K J[11]使用時(shí)移,音高變換和時(shí)間拉伸的隨機(jī)組合來增加數(shù)據(jù),得出結(jié)論:簡單的增強(qiáng)技術(shù)被對UrbanSound8K 數(shù)據(jù)集效果不佳,因?yàn)樗鼈儺a(chǎn)生的訓(xùn)練時(shí)間大大增加,而對模型精度的影響卻可以忽略不計(jì)。
提出了一種深度卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),對ESC-50 數(shù)據(jù)集進(jìn)行分類。此外,應(yīng)用數(shù)據(jù)增強(qiáng)來克服數(shù)據(jù)稀缺的問題,并探索不同類型的音頻變形及其對訓(xùn)練得到的模型性能的影響。展示了所提出的CNN 與音頻數(shù)據(jù)增強(qiáng)相結(jié)合的方法,使得環(huán)境聲音分類效果得到顯著提升。
數(shù)據(jù)增強(qiáng)用于提高訓(xùn)練數(shù)據(jù)的數(shù)量,如果訓(xùn)練數(shù)據(jù)質(zhì)量較高,則系統(tǒng)的準(zhǔn)確性也會變高。數(shù)據(jù)增強(qiáng)本質(zhì)上是一種變形技術(shù),通過這種變形,我們能夠成倍地增加數(shù)據(jù)集的數(shù)據(jù)量。
我們應(yīng)用了3 種不同的數(shù)據(jù)增強(qiáng)方法來擴(kuò)展數(shù)據(jù)。數(shù)據(jù)增強(qiáng)的重要前提是在數(shù)據(jù)變形后應(yīng)保持語義有效性。4 種音頻數(shù)據(jù)增強(qiáng)方案描述如下:
音高變換(PS1):通過這種增強(qiáng),音頻樣本音高被改變,使得降低或提高數(shù)據(jù)樣本的音高而音頻的持續(xù)時(shí)間應(yīng)保持不變。本次實(shí)驗(yàn)中所有音頻樣本的音調(diào)移位值為1.5。
音高變換(PS2):在這個(gè)變換中,所有音頻樣本的音調(diào)偏移值越大。移位值為2.5。
高斯噪聲(GN):該變形可以在原音頻樣本中添加高斯噪聲。
卷積神經(jīng)網(wǎng)絡(luò)[23](CNN)建立在多層感知器(MLP)的架構(gòu)之上。CNN 可以在2 個(gè)階段發(fā)揮重要作用。第1 個(gè)是特征提取階段。過濾器窗口在輸入上滑動,并在每個(gè)位置提取卷積的總和,然后將其存儲在特征圖(features map)中。卷積層后通常為池化,其中通常采用每個(gè)窗口中的最大值,這減小了特征圖大小但保留了重要數(shù)據(jù),從而降低了網(wǎng)絡(luò)的維度,這意味著減少了訓(xùn)練時(shí)間和過度擬合的可能性。最后是分類階段,這時(shí)網(wǎng)絡(luò)中的三維數(shù)據(jù)已降維成要輸出的一維向量。所用卷積神經(jīng)網(wǎng)絡(luò)的大致流程如圖1 所示,其中類似的中間層在整個(gè)結(jié)構(gòu)中重復(fù)4 次,每一層中間層均為卷積層(convolution)、最大池化層(maxpooling)、舍棄層(dropout)的組合,如圖1 所示。上述重復(fù)的3 層組合的詳細(xì)參數(shù)會在后續(xù)介紹。
圖1 深度卷積神經(jīng)網(wǎng)絡(luò)的流程圖
卷積層是CNN 網(wǎng)絡(luò)的核心,卷積層的參數(shù)由1組可學(xué)習(xí)的濾波器組成,它們具有小的感受野,延伸到輸入容積的整個(gè)深度。在每一層卷積層的filter_size 和kernel_size 都為2。在前向傳播期間,每個(gè)濾波器對輸入進(jìn)行卷積運(yùn)算,計(jì)算濾波器和輸入之間的點(diǎn)積,并產(chǎn)生該濾波器的二維激活圖。簡單來說,卷積層用來對輸入層進(jìn)行卷積,提取更高層次的特征。
對于第l層卷積層,其輸入通常為前一層卷積層的輸出特征圖。通過將本層的若干個(gè)卷積核與輸入特征圖進(jìn)行卷積運(yùn)算,得到輸出特征圖。記第l層卷積層的第i個(gè)特征圖為,其前一層卷積層的第j個(gè)特征圖為表示卷積核,則的計(jì)算如式(1)所示:
把芋梗用草捆扎起來的時(shí)候,母親對我說:“這是西北雨,如果邊出太陽邊下雨,叫作日頭雨,也叫作三八雨?!苯又?,她解釋說:“我剛剛以為這陣雨不會下到芋田,沒想到看錯(cuò)了,因?yàn)槿疹^雨雖然大,卻下不廣,也下不久。”
卷積實(shí)際上是一種線性操作,機(jī)器學(xué)習(xí)中必須將一個(gè)特征空間的向量通過非線性變換映射到另一個(gè)空間才能實(shí)現(xiàn)線性可分。激活函數(shù)就是引入非線性的手段。傳統(tǒng)的sigmoid 函數(shù)容易造成梯度消失。為了解決梯度消失的問題,一種更有效的激活函數(shù)修正線性單元(Rectified Liner Units,ReLU)被引入,定義函數(shù)如式(2)所示:
ReLU 函數(shù)的導(dǎo)數(shù)如式(3)所示:
當(dāng)x取負(fù)值時(shí),就相當(dāng)于直接封閉了節(jié)點(diǎn),而當(dāng)x取零或正值時(shí),由于函數(shù)導(dǎo)數(shù)始終是1,就完全避免了梯度消失問題。AlexNet 的論文中也提到,對于同一個(gè)網(wǎng)絡(luò)結(jié)構(gòu),使用ReLU 作為激活函數(shù),其收斂速度要比使用tanh 快6 倍以上。以上優(yōu)勢使得ReLU 成為現(xiàn)在所有CNN 模型首選必備的激活函數(shù)。
池化即為降采樣,可以達(dá)到降維的目的。池化窗口大小為2×2,處理后的矩陣的長和寬都是原矩陣的1/2,輸出矩陣的尺寸是矩陣的1/4。對于池化來說要使特征提取擁有平移不變性。
池化將原特征圖以不同的方式聚合,沒有算術(shù)運(yùn)算過程,所以池化層本身沒有可學(xué)習(xí)的參數(shù),在誤差反向傳播過程中,池化最重要的工作是計(jì)算并傳遞誤差。定義兩種不同的采樣操作符:down(.)表示前向推理過程中池化層的下采樣操作,利用最大池化或平均池化,up(.)表示誤差反向傳播過程中對自上層的誤差信號的上采樣操作,數(shù)學(xué)表示如式(4)所示:
第一層卷積層的卷積核大小為2×2,有16 個(gè)卷積核,所以第一層在輸入為40×250×1 的情況下,輸出16 個(gè)特征圖,則輸出維度為39×249×16,而池化的窗口大小為2×2,即特征圖維度減半,池化后輸出19×124×16,如圖2 所示。
圖2 卷積層與池化層組合的過程圖
由于提出的CNN 結(jié)構(gòu)是以上卷積層加池化層的4 次重復(fù),圖2 展示的是第1 層卷積加池化的過程。第2 層卷積核個(gè)數(shù)為32 個(gè),所以第2 層卷積層的輸出為18×123×32,再經(jīng)過第2 層池化后輸出為9×61×32,第3 層卷積核個(gè)數(shù)為64,則第3 層的卷積輸出為8×60×64,第3 層池化輸出為4×30×64,第4層卷積核個(gè)數(shù)為128,則第4 層卷積輸出為3×29×128,池化后為1×14×128。
Dropout[19]是Hinton 提出的去過擬合技術(shù)。在每一輪的訓(xùn)練過程中,隨機(jī)讓一部分隱藏節(jié)點(diǎn)失效,但每個(gè)節(jié)點(diǎn)的權(quán)值都會被保存下來。在最終預(yù)測時(shí),打開全部隱藏節(jié)點(diǎn),使用完整的網(wǎng)絡(luò)進(jìn)行計(jì)算,相當(dāng)于把不同結(jié)構(gòu)的網(wǎng)絡(luò)結(jié)合在了一起。本文使用較小的dropout 值20%
由圖1 可知,CNN 結(jié)構(gòu)最后還有一個(gè)全局平均池化層和全連接層。全局平均池化層的輸入為最后一層卷積層的輸出,即1×4×128,全局平均池化后為輸出為128,全連接層將有50 個(gè)節(jié)點(diǎn)(判定類別數(shù)),這些節(jié)點(diǎn)與可能的分類數(shù)相匹配,全連接層的激活是softmax。
ESC-50 數(shù)據(jù)集是環(huán)境音頻的數(shù)據(jù)集。這一數(shù)據(jù)集由2 000 個(gè)標(biāo)記的環(huán)境聲音組成,他們被均勻地劃分為50 個(gè)類別(每個(gè)類別40 個(gè)樣本)。這50個(gè)類別又可以粗略地分為5 個(gè)大類,分別是:動物的聲音、自然聲音和水聲、人(非言語)聲音、室內(nèi)聲音、室外噪音。
該數(shù)據(jù)集提供了各種環(huán)境聲源,一些樣本彼此不同(玻璃破碎,刷牙),還有一些差異很小(直升機(jī)和飛機(jī)噪音)。該數(shù)據(jù)集的一個(gè)明顯的缺點(diǎn)是每個(gè)類的音頻樣本數(shù)量有限。這與手動注釋和提取的高成本有關(guān),也與奇特的聲音事件的可用量有限而樣本類之間又要保持嚴(yán)格平衡有關(guān)。然而,這一數(shù)據(jù)集在當(dāng)下的研究中仍有望以其目前的形式發(fā)揮作用。
在該數(shù)據(jù)集中除了包含2 000 個(gè)音頻文件之外,還包含一個(gè)元數(shù)據(jù)的csv 格式文件。在該文件中包含了每個(gè)音頻樣本的信息,這些信息包括:音頻文件的文件名,音頻類別等等。
實(shí)驗(yàn)使用在加載音頻時(shí)也將歸一化數(shù)據(jù)。這消除了具有多種位深度的數(shù)據(jù)集的復(fù)雜性。
在歸一化的數(shù)據(jù)中中提取Mel 頻率倒譜系數(shù)(MFCC)。這些音頻特征將用于進(jìn)行分類識別。本文計(jì)算了音頻樣本的250 幀的一系列40 階MFCC,連續(xù)為數(shù)據(jù)集中的每個(gè)音頻文件提取MFCC,并將其與其分類標(biāo)簽一起存儲。為了克服因音頻文件的持續(xù)時(shí)長不同而導(dǎo)致的MFCC 向量大小不同的問題,會對MFCC 向量進(jìn)行零填充,使得它們有相同的大小。
在讀取音頻數(shù)據(jù)并進(jìn)行特征提取以及標(biāo)簽編碼后,所有數(shù)據(jù)用dataframe 的類型存儲,成為可使用的數(shù)據(jù)。然后將數(shù)據(jù)集拆分為訓(xùn)練和測試集,測試集占總數(shù)據(jù)集的20%,劃分依據(jù)為隨機(jī)劃分。在CNN 上訓(xùn)練模型迭代至收斂,最后使用測試數(shù)據(jù)集測試模型的分類準(zhǔn)確率。訓(xùn)練過程的batch_size 設(shè)置為128,優(yōu)化算法設(shè)置為adam。
利用前文提到的語音增強(qiáng),分別對原音頻樣本實(shí)行不同的增強(qiáng)策略,然后比較這幾種策略下的測試準(zhǔn)確率。
為了比較提出的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和數(shù)據(jù)增強(qiáng)方法的效果,分別在進(jìn)行時(shí)間拉伸的數(shù)據(jù)集上和原數(shù)據(jù)集上測試準(zhǔn)確率,同時(shí)使用支持向量機(jī)分類方法在原數(shù)據(jù)集和時(shí)間拉伸的數(shù)據(jù)集上測試準(zhǔn)確率。結(jié)果如表1 所示。
表1 不同分類方法分類準(zhǔn)確率
結(jié)果表明,在訓(xùn)練數(shù)據(jù)集相同時(shí),卷積神經(jīng)網(wǎng)絡(luò)效果優(yōu)于支持向量機(jī),這與前文提到的CNN 結(jié)構(gòu)的原理有關(guān),而對于同一分類方法,在時(shí)間拉伸的數(shù)據(jù)集上的測試準(zhǔn)確率要有所提到,這顯然是有效的訓(xùn)練數(shù)據(jù)的增加的影響。
在該實(shí)驗(yàn)中,分別采用不同的數(shù)據(jù)增強(qiáng)方法(如表2 所示)對數(shù)據(jù)集進(jìn)行增強(qiáng),然后在增強(qiáng)后的數(shù)據(jù)集上根據(jù)前文的實(shí)驗(yàn)配置參數(shù)訓(xùn)練模型,最后測試分類準(zhǔn)確率。
表2 不同數(shù)據(jù)增強(qiáng)方法分類準(zhǔn)確率
由以上實(shí)驗(yàn)結(jié)果可以看出,不同的音頻數(shù)據(jù)增強(qiáng)方法的分類準(zhǔn)確率不同。而同一種增強(qiáng)方法,增強(qiáng)參數(shù)不同時(shí),最終的準(zhǔn)確率也有區(qū)別。產(chǎn)生以上結(jié)果的原因在于,采用不同的方法進(jìn)行數(shù)據(jù)轉(zhuǎn)換時(shí),原本音頻數(shù)據(jù)的時(shí)域-頻域模式的改變程度不同的,所以產(chǎn)生的新的訓(xùn)練數(shù)據(jù)對于模型的優(yōu)化程度不同。
提出了一種深度卷積神經(jīng)網(wǎng)絡(luò)架構(gòu),它結(jié)合音頻數(shù)據(jù)增強(qiáng)方法,對環(huán)境聲音分類效果較好。研究發(fā)現(xiàn),改進(jìn)的性能源于深度,高容量模型和增強(qiáng)訓(xùn)練集的組合,這種組合優(yōu)于沒有增強(qiáng)的CNN 和具有增強(qiáng)的其他機(jī)器學(xué)習(xí)模型。最后,不同數(shù)據(jù)增強(qiáng)方法對模型分類準(zhǔn)確性的影響也會不同。