張 志,劉振宇,馮婷婷,朱 濤
(南華大學(xué)計(jì)算機(jī)學(xué)院,湖南衡陽(yáng) 421001)
在人們的日常生活中,時(shí)時(shí)刻刻都被環(huán)境聲音所包圍。了解這些聲音的含義能夠幫助人們更好地生活。為了理解這些聲音的內(nèi)容,表征環(huán)境聲音是使用它的有效方法。由此便可以看到隱藏在這些數(shù)據(jù)類型中的有用信息[1],利用這些有效信息就能夠?qū)β曇暨M(jìn)行分類。城市中的汽車?guó)Q笛聲、人群的嘈雜聲等許多噪音混入了城市聲景中,這些聲源的分離或分類[2]對(duì)于理解城市聲音和控制城市噪聲至關(guān)重要。
目前,在音頻特征提取中,最常用的就是MFCC[2]和LPCC(線性預(yù)測(cè)倒譜系數(shù))[3]。MFCC 進(jìn)行音頻特征提取的過(guò)程基本分7 個(gè)步驟,一段音頻經(jīng)過(guò)預(yù)加重、分幀、加窗、FFT、Mel 濾波器組、取對(duì)數(shù)、DCT 之后得到一組特征向量,這組特征向量就代表這段音頻的特征。由于這種特征不依賴于信號(hào)本身的性質(zhì),所以該方法可以保持較好的識(shí)別性能[4-11]。
在目前的音頻特征分類方法中,使用深度學(xué)習(xí)能夠得到不錯(cuò)的識(shí)別準(zhǔn)確率。深度學(xué)習(xí)中對(duì)于圖像處理方向最具有代表性的模型就是卷積神經(jīng)網(wǎng)絡(luò)(CNN)[7],在文本和語(yǔ)音方向使用最多的模型是遞歸神經(jīng)網(wǎng)絡(luò)(RNN)[4]。CNN 的經(jīng)典模型有很多,例如AlexNet[11]、VGGNet[12]、ResNet[13]等影響深遠(yuǎn)的模型。RNN 的經(jīng)典模型也有很多,比如門控循環(huán)單元(GRU)[5],長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)[6]等。
與文中相關(guān)的工作是將數(shù)據(jù)集中的音頻數(shù)據(jù)進(jìn)行特征抽取并將其輸入到深度學(xué)習(xí)的模型當(dāng)中進(jìn)行聲音的識(shí)別。文中所用到的數(shù)據(jù)集文件都是音頻數(shù)據(jù)。音頻數(shù)據(jù)屬于序列數(shù)據(jù)(序列數(shù)據(jù)是生活中很常見(jiàn)的一種數(shù)據(jù),如一句話、一段連續(xù)的視頻圖片等),RNN 比DNN 和CNN 更適合處理序列數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)[15-16]。
文中使用的音頻特征提取方式為MFCC。但在實(shí)際應(yīng)用過(guò)程中,音頻特征表示方式有很多,Jonghee Sang 團(tuán)隊(duì)在音樂(lè)信息檢索(MIR)中,將聲音信號(hào)的原始波形轉(zhuǎn)換為二維時(shí)頻來(lái)表示。通過(guò)使用內(nèi)核(例如STFT)分解信號(hào)并使用對(duì)數(shù)比例的頻率表示形式,二維表示形式被認(rèn)為是音頻數(shù)據(jù)的有效形式(例如:梅爾頻譜圖,CQT)。Chen Y在該數(shù)據(jù)集中采用的特征提取方式為對(duì)數(shù)梅爾頻譜圖(Log-mel spectrogram)。首先將所有城市聲音劃分為幀,并通過(guò)使用窗函數(shù)(默認(rèn)采樣率為22 050 Hz并標(biāo)準(zhǔn)化)將聲音的不同長(zhǎng)度分為相同大小的音頻片段,并以對(duì)數(shù)比例提取梅爾頻譜圖,得到最終的對(duì)數(shù)梅爾頻譜圖。
目前,大多數(shù)的分類任務(wù)都使用DNN 處理。DNN 的結(jié)構(gòu)分成3 個(gè)部分,第一個(gè)部分是輸入層,也就是模型的輸入,一般都是數(shù)據(jù)的特征。第二部分是隱藏層,隱藏層描述的是輸入和輸出中間的部分。該部分由若干個(gè)神經(jīng)網(wǎng)絡(luò)層構(gòu)成,每層由一個(gè)或多個(gè)神經(jīng)節(jié)點(diǎn)組成,所有網(wǎng)絡(luò)層之間的數(shù)據(jù)傳輸是通過(guò)各個(gè)層內(nèi)的神經(jīng)節(jié)點(diǎn)相互連接完成的,各層節(jié)點(diǎn)間連接的方式有很多種,如果是全連接的方式就是最簡(jiǎn)單的DNN,這種連接方式比較容易理解,但同時(shí)它的缺點(diǎn)比較明顯,計(jì)算量非常大并且需要的參數(shù)也很多。DNN 模型結(jié)構(gòu)如圖1 所示。
圖1 DNN模型結(jié)構(gòu)
使用DNN 進(jìn)行分類任務(wù)時(shí),在模型的輸出層一般使用softmax 函數(shù)進(jìn)行類別概率的計(jì)算。模型需要訓(xùn)練多次的原因在于,通常一輪神經(jīng)網(wǎng)絡(luò)的計(jì)算得到的預(yù)測(cè)值與實(shí)際想要的值并不一致,損失函數(shù)就是用來(lái)描述不一致的程度。根據(jù)模型的損失函數(shù)就會(huì)得到一個(gè)誤差值,誤差值是神經(jīng)網(wǎng)絡(luò)模型多個(gè)節(jié)點(diǎn)共同計(jì)算的結(jié)果,需要利用反向傳播的方法進(jìn)行神經(jīng)元權(quán)值的更新,從而縮小下一輪計(jì)算的誤差值,使得分類結(jié)果更加精確。
為了驗(yàn)證模型的效果,文中實(shí)驗(yàn)使用的數(shù)據(jù)集為UrbanSound8K。該數(shù)據(jù)集是可用于研究的最大的城市環(huán)境聲源公共數(shù)據(jù)集,它被廣泛用于驗(yàn)證環(huán)境聲音識(shí)別問(wèn)題的解決方案中。該數(shù)據(jù)集包含10種不同的城市聲源,共8 732 個(gè)音頻文件,每個(gè)數(shù)據(jù)的命名格式為錄音編號(hào)-類別編號(hào)-事件編號(hào)-切片編號(hào)。每個(gè)音頻文件都不超過(guò)4 s。該數(shù)據(jù)集共有10 個(gè)文件夾,每個(gè)文件夾都包含10 種類別的聲音,每個(gè)文件夾包含的音頻數(shù)據(jù)大約為873 個(gè)左右,該數(shù)據(jù)集中所有文件夾包含的每個(gè)類別的音頻數(shù)據(jù)量如表1 所示。
表1 數(shù)據(jù)集每個(gè)類別的數(shù)據(jù)信息
將音頻可視化能夠幫助進(jìn)行特征信息的提取。將各個(gè)類別的音頻波形圖和頻譜圖進(jìn)行可視化,結(jié)果如圖2 所示。
圖2 10種音頻的波形和頻譜圖
目前,大部分的音頻分類都是使用CNN 來(lái)完成的,Pablo Zinemanas 團(tuán)隊(duì)使用CNN 模型進(jìn)行音頻特征的分類[9],模型的F1 值為57。該模型較為簡(jiǎn)單,但模型的識(shí)別效果并不太好。文中構(gòu)造了多層的GRU模型來(lái)進(jìn)行音頻數(shù)據(jù)的識(shí)別。GRU 模塊中包括兩個(gè)機(jī)制,一個(gè)更新門和一個(gè)重置門。單個(gè)GRU 模型內(nèi)部的公式為:
式(1)、式(2)中σ代表sigmoid 函數(shù),式(5)的σ代表輸出函數(shù),可以為sigmoid 函數(shù)或者softmax 函數(shù)。zt為該單元的更新門,sigmoid 函數(shù)讓更新門的值趨于0 或者1,即記憶上一步的值還是丟棄。rt為重置門,rt越小說(shuō)明了需要忽略更多的前一時(shí)刻的狀態(tài)信息。式(3)、式(4)是模塊中的臨時(shí)隱藏狀態(tài)和輸出。
文中GRU 模型的結(jié)構(gòu)更加簡(jiǎn)單,而且效果也很好,因此該模型被廣泛使用于深度學(xué)習(xí)的各個(gè)領(lǐng)域。單個(gè)GRU 模塊的結(jié)構(gòu)如圖3 所示。
圖3 GRU模型結(jié)構(gòu)
文中將所有數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行一次特征提取。由于數(shù)據(jù)集中的音頻文件時(shí)長(zhǎng)并不統(tǒng)一,所以需要將提取出來(lái)的所有MFCC 特征進(jìn)行比較,記錄下幀數(shù)最大的一段,并且在提取的過(guò)程中每幀提取40 個(gè)MFCC 特征,然后將其余的音頻特征進(jìn)行padding。每一段音頻的特征維度都是(174,40)。特征提取結(jié)束之后將創(chuàng)建神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。在實(shí)驗(yàn)中,采取多層的GRU 模型,如圖4 所示,該模型也是該實(shí)驗(yàn)結(jié)果中準(zhǔn)確率最高的模型。
圖4 7層GRU模型結(jié)構(gòu)圖
為了避免產(chǎn)生過(guò)擬合,每一層的后面都有附加dropout 層。最后,定義Softmax 層以輸出類標(biāo)簽的概率,在計(jì)算正確率之前將標(biāo)簽進(jìn)行onte-hot 向量化。為了加速模型收斂,訓(xùn)練采取批量梯度下降的方法進(jìn)行權(quán)值更新,每個(gè)批次包含50 個(gè)音頻的特征輸入。實(shí)驗(yàn)為了得到識(shí)別準(zhǔn)確率最優(yōu)的層數(shù),在每次實(shí)驗(yàn)完成后將比較不同層數(shù)的實(shí)驗(yàn)精度,直到該準(zhǔn)確率到達(dá)某一峰值后下降,將該峰值的層數(shù)記錄下來(lái)作為最優(yōu)模型??梢酝ㄟ^(guò)圖5 中所示的過(guò)程詳細(xì)描述系統(tǒng)流程。
圖5 實(shí)驗(yàn)整體模型結(jié)構(gòu)流程圖
每次實(shí)驗(yàn)將訓(xùn)練數(shù)據(jù)與測(cè)試數(shù)據(jù)進(jìn)行9∶1 的切分,訓(xùn)練數(shù)據(jù)占總數(shù)據(jù)量的90%,也就是7 858 條音頻數(shù)據(jù),同時(shí)將這些數(shù)據(jù)放入模型中進(jìn)行400 個(gè)迭代周期,每個(gè)周期分為158 個(gè)批次,每個(gè)批次50個(gè)數(shù)據(jù),從而保證每個(gè)周期可以運(yùn)行整個(gè)訓(xùn)練數(shù)據(jù)集數(shù)量的音頻數(shù)據(jù),然后為每次訓(xùn)練和測(cè)試階段記錄識(shí)別的正確率。實(shí)驗(yàn)從3 層結(jié)構(gòu)開(kāi)始訓(xùn)練,直到8 層結(jié)構(gòu)的模型準(zhǔn)確率出現(xiàn)下降。然后反復(fù)實(shí)驗(yàn),計(jì)算相同的結(jié)構(gòu)模型得出準(zhǔn)確率的平均值。
該實(shí)驗(yàn)的主要目的是將不同層數(shù)的GRU 模型輸出的準(zhǔn)確率結(jié)果進(jìn)行比較。實(shí)驗(yàn)中共設(shè)計(jì)了6 組不同層數(shù)的GRU 模型進(jìn)行聲音識(shí)別,從3 層到8 層,所有的輸入均為未經(jīng)過(guò)特征篩選的原音頻數(shù)據(jù)。每組包括一個(gè)訓(xùn)練和一個(gè)測(cè)試,訓(xùn)練中主要的輸出參數(shù)有Epoch、Train loss、Train accuracy,測(cè)試中主要的輸出參數(shù)為Test loss、Test accuracy。表2 列出了模型的結(jié)構(gòu)和參數(shù)輸出的結(jié)果。實(shí)驗(yàn)周期是經(jīng)過(guò)多次實(shí)驗(yàn)后確定的,周期為400 可以保證表1 中的模型都可以達(dá)到模型收斂。為了更好地進(jìn)行梯度下降,在實(shí)驗(yàn)中持續(xù)輸出loss 值的變化,由loss 的數(shù)值變化選擇可變的學(xué)習(xí)率。
表2 所有模型結(jié)構(gòu)及其參數(shù)輸出結(jié)果
由表2 可知,從3 層到7 層的模型結(jié)構(gòu)中,測(cè)試的正確率會(huì)隨著GRU 模型層數(shù)的增加而慢慢上升,但是從7 層到8 層又出現(xiàn)了下降,說(shuō)明8 層的模型已經(jīng)開(kāi)始出現(xiàn)過(guò)擬合,從而導(dǎo)致訓(xùn)練集正確率高于7層模型,測(cè)試正確率低于7 層模型。最優(yōu)模型的loss值變化和識(shí)別的正確率變化如圖6 所示。
圖6 7層模型的準(zhǔn)確率和損失值走勢(shì)圖
由圖6 可見(jiàn),多層的GRU 模型在短周期內(nèi)就可以大幅收斂,模型在求解最小化損失函數(shù)時(shí)采用的是隨機(jī)梯度下降和變動(dòng)的學(xué)習(xí)率,所以模型在收斂過(guò)程中會(huì)有一些抖動(dòng),但是模型準(zhǔn)確率大致的趨勢(shì)是提升的,并且模型的損失函數(shù)也是呈下降趨勢(shì)。模型的最終準(zhǔn)確率達(dá)到了93.1%。雖然模型層數(shù)的增加可能會(huì)讓識(shí)別的準(zhǔn)確率會(huì)相應(yīng)提升一些,但同時(shí)模型的參數(shù)也會(huì)增加,內(nèi)存的損耗也會(huì)隨之增加。模型的訓(xùn)練時(shí)間也會(huì)隨之增加,需要選擇在模型過(guò)擬合之前最優(yōu)的層數(shù)。
在相同的數(shù)據(jù)集下,文中將7 層GRU 模型的識(shí)別結(jié)果與其他一些環(huán)境噪聲分類的最新方法得到的結(jié)果進(jìn)行了比較,結(jié)果如表3 所示。
表3 UrbanSound8k數(shù)據(jù)集上模型的分類結(jié)果比較
如Karol J.Piczak 使用了一個(gè)深度網(wǎng)絡(luò),該模型包含兩個(gè)卷積層以及兩個(gè)全連接層,使用音頻數(shù)據(jù)增強(qiáng)進(jìn)行了訓(xùn)練,準(zhǔn)確率約為74%。2019 年ChenY使用Dilated CNN 模型的識(shí)別準(zhǔn)確率為78%。在該數(shù)據(jù)集的聲音分類中,Nithya Davis 團(tuán)隊(duì)將數(shù)據(jù)進(jìn)行了數(shù)據(jù)擴(kuò)充并使用CNN 模型進(jìn)行聲音分類,該模型的識(shí)別準(zhǔn)確率為83.5%。Haiyan Shu 等人使用8 層CNN 模型對(duì)該數(shù)據(jù)進(jìn)行識(shí)別[10],識(shí)別準(zhǔn)確率達(dá)到了89%。雖然CNN 模型也能對(duì)音頻的特征進(jìn)行識(shí)別,但是依然存在參數(shù)多和識(shí)別準(zhǔn)確率不高的問(wèn)題。表3 中GoogleNet[16]雖然正確率也不錯(cuò),但該模型參數(shù)過(guò)多,非常耗時(shí)。7 層的GRU 模型的分類精度比其他分類方法有很大提升,并且相對(duì)于正確率較高的CNN 模型來(lái)說(shuō)模型也不是很大。相比較其他準(zhǔn)確率相近的分類器而言,參數(shù)使用的比較少。近幾年在該數(shù)據(jù)集的識(shí)別的方法中,7 層GRU 模型識(shí)別準(zhǔn)確率非常好。
為了探究哪些特征在識(shí)別過(guò)程中屬于重要特征,哪些特征是噪音,繼續(xù)將數(shù)據(jù)進(jìn)行降維,選擇包裝法進(jìn)行特征的選擇,包裝法在初始特征集上使用隨機(jī)森林進(jìn)行訓(xùn)練,該過(guò)程可以得到每個(gè)特征的重要性。然后去掉重要程度最低的特征。重復(fù)上述過(guò)程,直到剩下的特征數(shù)為所需特征的數(shù)量,保留所得的特征,并使用7 層GRU 模型進(jìn)行訓(xùn)練。同時(shí)又使用主成分分析(PCA)降維算法對(duì)原數(shù)據(jù)進(jìn)行特征轉(zhuǎn)換,雖然得到的數(shù)據(jù)總特征數(shù)減少,但轉(zhuǎn)換后的特征已經(jīng)不再是原來(lái)數(shù)據(jù)特征所代表的含義了。包裝法和PCA 進(jìn)行特征選擇時(shí),使用模型的測(cè)試準(zhǔn)確率作為評(píng)估標(biāo)準(zhǔn),先將特征數(shù)量從6 960 開(kāi)始減少至6 000、5 000、4 000、3 000、2 000、1 000,然后從中選取最優(yōu)的特征數(shù)目繼續(xù)篩選,最終篩選出結(jié)果,其中3組數(shù)據(jù)識(shí)別準(zhǔn)確率對(duì)比結(jié)果如圖7所示。
圖7 原數(shù)據(jù)特征與降維后特征在所有類別上的識(shí)別率
由圖7 可知,所有類別中幾乎是沒(méi)有經(jīng)過(guò)降維處理的原數(shù)據(jù)的效果最佳,雖然包裝法將每個(gè)音頻特征從6 960 個(gè)特征縮短到160 個(gè),但是每個(gè)類別的識(shí)別準(zhǔn)確率幾乎都在下降,并且在預(yù)測(cè)過(guò)程中所節(jié)省的時(shí)間并不明顯。而PCA 算法雖然也降低了數(shù)據(jù)的特征數(shù),但是在進(jìn)行預(yù)測(cè)時(shí),需要先進(jìn)行PCA 特征轉(zhuǎn)換,在模型預(yù)測(cè)結(jié)果時(shí)花費(fèi)的時(shí)間也并沒(méi)有優(yōu)勢(shì),且在大部分類別下識(shí)別效果都不如原數(shù)據(jù)好,所以使用7 層GRU 模型在原數(shù)據(jù)上進(jìn)行識(shí)別準(zhǔn)確率會(huì)更高。
文中實(shí)驗(yàn)之前,已經(jīng)對(duì)比了近年來(lái)使用CNN 模型和機(jī)器學(xué)習(xí)算法解決ESC 問(wèn)題的模型,發(fā)現(xiàn)必須使用深層的神經(jīng)網(wǎng)絡(luò)模型才會(huì)有較好的識(shí)別準(zhǔn)確率,文中構(gòu)造了7 層GRU 模型解決ESC 問(wèn)題,可以實(shí)現(xiàn)更高的識(shí)別準(zhǔn)確率,而且模型收斂更快,打敗了近幾年在該數(shù)據(jù)集上的多種聲音識(shí)別算法。在數(shù)據(jù)特征選擇時(shí),使用包裝法進(jìn)行數(shù)據(jù)特征選擇,雖然加快了識(shí)別速度,但是準(zhǔn)確率下降太多,未來(lái)可以采取更多的特征選擇方式進(jìn)行特征篩選。實(shí)驗(yàn)數(shù)據(jù)提取和處理方面,可以選擇其他的做法,將數(shù)據(jù)全部調(diào)整成相同維度時(shí)可以選擇填充平均值或者直接刪除有缺失值的數(shù)據(jù)。未來(lái)的研究可以識(shí)別分離多種混合的聲音,進(jìn)而增強(qiáng)需要的聲音類別,消除其余噪聲,對(duì)于語(yǔ)音通話具有重要意義。