孫陳影, 沈希忠
(上海應(yīng)用技術(shù)大學(xué) 電氣與電子工程學(xué)院, 上海 201418)
快速的城市化對人類社會提出了嚴峻的挑戰(zhàn),如何建設(shè)高宜居和可持續(xù)發(fā)展的城市是一個值得重視的問題。物聯(lián)網(wǎng)技術(shù)的進步使我們能夠收集大量與環(huán)境和居民活動有關(guān)的城市聲學(xué)數(shù)據(jù),如兒童游戲,道路交通,甚至開槍射擊等。通過研究動態(tài)聲音視角的內(nèi)容,可以更好地了解影響公民日常生活的聲音問題,從而為提高城市生活質(zhì)量奠定基礎(chǔ)[1-2]。
目前,隱馬爾可夫模型(hidden markov model, HMM)和人工神經(jīng)網(wǎng)絡(luò)(artificial neural network, ANN)是語音識別的常用方法,但是在優(yōu)化模型搭建、提高識別率等方面有較大的局限性[3-4]。近年來,隨著循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network, RNN)的出現(xiàn)和進一步的研究,其在語音識別領(lǐng)域的應(yīng)用越來越廣泛[5-7]。例如各種識別、機器翻譯等領(lǐng)域, 還被用于各類時間序列預(yù)報或與卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合處理計算機視覺問題。然而,RNN自身存在的梯度消失的問題尚未得到很好地解決。文獻[8]中描述了RNN的形式,給出了相應(yīng)的參數(shù)估計方法,分析了其在語音識別方面的優(yōu)缺點;文獻[9]中研究了RNN在人類情感分析中的識別能力,實驗結(jié)果表明,該方法在性別獨立實驗中取得了92%的情感識別準確率,優(yōu)于以往使用相同實驗數(shù)據(jù)的方法;文獻[10]中提出了基于大詞匯量會話電話語音識別的長短期記憶神經(jīng)網(wǎng)絡(luò)(long short-term memory, LSTM)體系結(jié)構(gòu),證明了LSTM在語音識別任務(wù)的聲學(xué)建模中有很好的表現(xiàn)。
本文采用Mel頻率倒譜系數(shù)(Mel-frequency cepstral coefficients, MFCC)對城市聲音數(shù)據(jù)進行特征提取。為了進一步提高語音識別的準確率,同時解決RNN梯度消失的問題,本文搭建LSTM神經(jīng)網(wǎng)絡(luò)和門控循環(huán)單元(gated recurrent unit, GRU)神經(jīng)網(wǎng)絡(luò)并對其組成的深度神經(jīng)網(wǎng)絡(luò)模型進行訓(xùn)練。通過實驗分析,與基本的RNN網(wǎng)絡(luò)相比,降低了損耗,提高了語音識別的準確率。
20世紀80年代,Davis等[11]首次提出了MFCC,MFCC參數(shù)是從生物學(xué)角度模擬人耳對語音的感知而提出的,受噪聲等干擾信息的影響小,同時識別率較高,是被用的最多的特征參數(shù)。通過人耳對語音的感知性能的大量研究顯示,人耳的感知能力與頻率是非線性的關(guān)系,在頻率小于1 kHz時,人耳聽到的頻率與數(shù)學(xué)上的頻率是同步增減的,而當頻率大于1 kHz時,人耳聽到的頻率與數(shù)學(xué)上的頻率不存在同比例增減的關(guān)系,而是對數(shù)關(guān)系,將人耳感受到的頻率定義為Mel頻率。Mel頻率與線性頻率的轉(zhuǎn)換關(guān)系式為
(1)
Mel頻率與數(shù)學(xué)上的頻率關(guān)系如圖1所示。
圖1 Mel頻率與線性頻率的關(guān)系圖Fig.1 Diagram of Mel frequency and linear frequency
MFCC參數(shù)的提取流程如圖2所示,提取步驟具體如下:①端點檢測,目的是從語音信號中確定說話人的開始和結(jié)束位置,去掉完全靜音的部分,留下真正有效的說話人語音信息;②預(yù)處理,預(yù)處理細分預(yù)加重、分幀和加窗;③快速傅里葉變換,通過FFT將處理域從時域轉(zhuǎn)換到頻域;④計算譜線能量,對每一幀信號計算譜線能量;⑤進行Mel濾波器組濾波,Mel濾波器組結(jié)構(gòu)如圖3所示;⑥離散余弦變換,先對上一步的Mel濾波器中的輸出結(jié)果取對數(shù),然后再做離散余弦變換,使每一維信號都保持自己的獨立性,同時降維,得到Mel頻率的倒譜系數(shù);⑦求取差分參數(shù),語音信號一部分是時不變的就是靜態(tài)的,另一部分是時變的就是動態(tài)的。把動、靜態(tài)特征結(jié)合起來能有效提高系統(tǒng)的識別性能。
圖2 MFCC參數(shù)提取流程圖Fig.2 Flow chart of MFCC parameters extraction
圖3 Mel濾波器組結(jié)構(gòu)圖Fig.3 Structure of Mel filter group
維數(shù)選取根據(jù)實驗網(wǎng)絡(luò)和降維的需要,本文采用的MFCC參數(shù)的維數(shù)是40維,13維MFCC系數(shù)、13維一階差分參數(shù)、13維二階差分參數(shù)和幀能量。本文未涉及與其他特征提取方法的比較。
RNN是一種以序列數(shù)據(jù)為輸入,在演進方向進行循環(huán),全部節(jié)點按鏈式連接組成閉合回路的神經(jīng)網(wǎng)絡(luò)。RNN通過每層之間的節(jié)點連接來記憶之前的信息,然后利用這些信息影響后續(xù)節(jié)點的輸出。RNN可充分利用序列數(shù)據(jù)中的語義信息和時序信息,圖4所示為RNN的簡化結(jié)構(gòu)圖。
循環(huán)單元的狀態(tài)引入了其上一個時間步的真實值,使用基于上下文連接的RNN由于訓(xùn)練時將學(xué)習(xí)樣本的真實值作為輸入,因此是一個可以逼近學(xué)習(xí)目標任意形式概率分布的生成模型。循環(huán)體狀態(tài)與最終輸出的維度通常不同,RNN需要一個全連接神經(jīng)網(wǎng)絡(luò)來完成將當前時刻的狀態(tài)轉(zhuǎn)化為最終的輸出。RNN在每個時刻都有一個輸出, 因此RNN的總損失是所有時刻(或部分時刻)上的損失函數(shù)的總和。
圖4 基本RNN的簡化結(jié)構(gòu)圖Fig.4 Simplified structure of the basic RNN
從理論上講RNN可以很好地解決序列數(shù)據(jù)的訓(xùn)練問題,但是同時又存在梯度消失的問題,尤其是當序列很長的時候。所以,基本RNN模型通常不能直接用于應(yīng)用領(lǐng)域。在語音識別,手寫識別以及機器翻譯等NLP領(lǐng)域應(yīng)用比較廣泛的是LSTM模型,基于RNN模型的一個特例。
RNN的最重要目的是學(xué)習(xí)長期的依賴性,但是理論和實踐表明很難學(xué)習(xí)并長期保存信息。為了解決這個問題,使用了一種特殊隱式單元LSTM[12](見圖5)。
圖5 LSTM的簡化結(jié)構(gòu)圖Fig.5 Simplified structure of LSTM
由圖5可見,LSTM比基本RNN復(fù)雜很多。序列索引位置t時刻,LSTM和RNN一樣有隱藏狀態(tài)h(t),但是LSTM多了一個隱藏狀態(tài),稱為細胞狀態(tài)(cell state),記為C(t)。LSTM中還有門控結(jié)構(gòu)(gate),一般包括輸入門、遺忘門和輸出門3種。則在每個序列索引位置的過程為:
(1) 遺忘門是以一定的概率控制是否忘記上一層的隱藏細胞狀態(tài),其公式為
f(t)=σ(Wfh(t-1)+Ufx(t)+bf)
(2)
(2) 輸入門處理當前序列位置的輸入,由兩部分組成,兩者的結(jié)果相乘來更新細胞狀態(tài)。
i(t)=σ(Wih(t-1)+Uix(t)+bi)
(3)
a(t)=tanh(Wah(t-1)+Uax(t)+ba)
(4)
(3) 細胞狀態(tài)C(t)取決于前面的遺忘門和輸入門的結(jié)果,即
C(t)=C(t-1)⊙f(t)+i(t)⊙a(t)
(5)
(4) 更新輸出門輸出:
(5) 更新當前序列索引預(yù)測輸出:
(8)
LSTM作為RNN的特例,結(jié)構(gòu)較為復(fù)雜。通過LSTM可以有效避免RNN的梯度消失問題,但是LSTM的歷經(jīng)時間會很長,不夠高效,而且對于小型數(shù)據(jù)集來說結(jié)果不夠理想。
LSTM的提出是為了克服RNN無法很好地處理遠距離依賴地問題,GRU是LSTM的一個變體。GRU保持了LSTM的效果同時又使結(jié)構(gòu)更加簡單。圖6所示為GRU的簡化結(jié)構(gòu),只有2個門,重置門和更新門,即圖中的r(t)和z(t)。
圖6 GRU的簡化結(jié)構(gòu)圖Fig.6 Simplified structure of GRU
圖7 城市聲音數(shù)據(jù)集中聲音類的分類Fig.7 Classification of sound classes in urban sound data sets
在每個序列索引位置的過程為:
(1) 重置門以一定的概率控制前一時刻信息,有利于得到時序數(shù)據(jù)中的短期依賴關(guān)系,即
r(t)=σ(Wr·[h(t-1),x(t)])
(9)
(2) 更新門控制前一時刻的狀態(tài)信息被代入到當前狀態(tài)中,有助于得到時序數(shù)據(jù)中的長期依賴關(guān)系
z(t)=σ(Wz·[h(t-1),x(t)])
(10)
(3) 候選隱含狀態(tài)用重置門來控制隱含狀態(tài)。重置門決定了是否丟棄與后來無關(guān)的過去隱含狀態(tài),即重置門控制過去有多少信息被遺忘
(11)
(4) 隱含狀態(tài)h(t)使用更新門z(t)來對上一個隱含狀態(tài)h(t-1)和候選隱含狀態(tài)進行更新。更新門決定過去的隱含狀態(tài)在當前時刻的重要性??梢越鉀QRNN的梯度衰減問題,并且更好地得到時序數(shù)據(jù)中間隔較大的依賴關(guān)系,即
(12)
(5) 更新當前序列索引預(yù)測輸出:
(13)
GRU通過分析LSTM架構(gòu)中哪些部分是真正需要的而進行改進,將遺忘門和輸入門合成了一個更新門。同樣還混合了細胞狀態(tài)和隱藏狀態(tài)。最終的模型比標準的 LSTM 模型要簡單。理論上與LSTM相似,可以達到和LSTM相同的效果甚至更好。在實驗的過程中使用了GRU深度神經(jīng)網(wǎng)絡(luò),將結(jié)果與前2種作對比。
為了驗證所提出的方法,本文使用UrbanSound8K[13]數(shù)據(jù)集進行了實驗,該數(shù)據(jù)集包含10個類別的城市聲音和 8 732 個真實世界的聲音。10種聲音類別的簡要分類如圖7所示,分別為空調(diào)、汽車喇叭、兒童游戲、狗吠、鉆探、發(fā)動機、槍聲、重錘、警笛和街頭音樂??梢?,該數(shù)據(jù)集包含了典型的城市噪聲和與城市生活高度相關(guān)的突發(fā)事件聲音,因此該數(shù)據(jù)集適合于測試城市語音分類算法。此外,還給出了如圖8所示表示事件類的樣本數(shù)量。該數(shù)據(jù)集還提供了10個交叉驗證集,確保訓(xùn)練和測試分割之間沒有重疊。
圖8 每種聲音類的樣本數(shù)量Fig.8 Sample size per sound class
循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練需要在結(jié)構(gòu)(輸入數(shù)據(jù)的格式、層的數(shù)量和大小)和學(xué)習(xí)超參數(shù)(學(xué)習(xí)速率、動量、批處理大小、退出概率、應(yīng)用正則化的數(shù)量)2個方面做出許多決策。由于訓(xùn)練一個完整的模型需要時間,因此對所有可能的組合進行詳細的評估是不可能的。因此,最有前途的模型選擇必須基于對最重要的因素(隱藏層數(shù)、學(xué)習(xí)率、dropout)進行有限的驗證。
(1) 對于數(shù)據(jù)集的語音特征提取,本文采用MFCC,利用librosa實現(xiàn),從數(shù)據(jù)集中提取MFCC特征集。
(2) 對于隱含層數(shù)量的選擇,主要從準確率、損失值及時間這三方面考慮。在其他參數(shù)不變的情況下,更改隱含層數(shù)量。由圖9可見,整個過程時間基本沒有差別,但對于準確率和損失來說,在隱層數(shù)量為3時結(jié)果最為理想。
圖9 隱含層數(shù)量對比Fig.9 Comparison of the number of hidden layers
圖10 Dropout參數(shù)對比圖Fig.10 Dropout parameter comparison chart
(3) 本文實驗在訓(xùn)練時加入dropout。在預(yù)測時,會使用所有的單元,這相當于組合所有的模型,所以dropout可以有效地防止訓(xùn)練中出現(xiàn)參數(shù)擬合過度的問題,同時組合訓(xùn)練能獲得更好的組合模型。經(jīng)由圖10對比,可以看到dropout不同時的效果,整個過程時間基本沒有差別,但對于準確率和損失來說,dropout為50%時效果最佳。
(4) 進一步處理是通過隱藏層,每層300個節(jié)點數(shù),節(jié)點數(shù)太多會增加訓(xùn)練的時間以及訓(xùn)練容易陷入局部極小點而得不到最優(yōu)點,出現(xiàn)“過擬合”的現(xiàn)象。
(5) loss函數(shù)使用交叉熵。交叉熵作為損失函數(shù)的好處是在梯度下降時能避免均方誤差損失函數(shù)學(xué)習(xí)速率降低的問題。
(6) 經(jīng)過上面的實驗,本文網(wǎng)絡(luò)的主要參數(shù)如下:輸入維度40;輸出維度10;隱藏層3層;隱層單元數(shù)300;dropout參數(shù)0.5。網(wǎng)絡(luò)結(jié)構(gòu)第1層為特征參數(shù)輸入層,即Mel參數(shù)集。2、3、4三層為本文所述神經(jīng)網(wǎng)絡(luò)層,每層300個單元,dropout為50%。最后一層為全連接輸出層,與softmax結(jié)合分類輸出。網(wǎng)絡(luò)結(jié)構(gòu)如圖11所示。
圖11 深度循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.11 Deep recurrent neural network structure
本文的主要目的是通過深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)完成對城市語音數(shù)據(jù)集UrbanSound8K的分類。主要實現(xiàn)方法為深度RNN(RNNs)、深度LSTM(LSTMs)和深度GRU(GRUs)。實驗在Ubuntu14.04,TensorFlow環(huán)境下實現(xiàn),如圖12所示。
圖12 RNNs、LSTMs和GRUs的語音分類的準確率和損失Fig.12 Accuracy and loss of speech classification for RNNs, LSTMs and GRUs
由圖12可見,基本RNNs、LSTMs和GRUs的訓(xùn)練和測試結(jié)果,將最后的結(jié)果列在表1中。
表1 RNNs、LSTMs和GRUs的訓(xùn)練和測試結(jié)果
Tab.1 Training and test results of RNNs, LSTMs and GRUs
網(wǎng)絡(luò)類別耗時/min損失準確率/%RNNs訓(xùn)練30.672.21423.94測試30.672.23621.78LSTMs訓(xùn)練60.621.69976.14測試60.621.76369.82GRUs訓(xùn)練20.531.49396.81測試20.231.60885.87
從時間上看LSTMs耗時是RNNs和GRUs的2倍,且GRUs相對RNNs來說具有更大的優(yōu)勢,可以節(jié)省很多時間。從損失loss上看RNNs消耗較大,LSTMs和GRUs相比還是GRUs的效果好。從準確率上看RNNs的準確率太低,LSTMs也只達到了80%左右,GRUs相對來說效果最好,訓(xùn)練效果可以達到96%。由上可知,GRUs在損失和準確率上比LSTMs更好,尤其是在時間方面GRUs最快速。經(jīng)過上面的實驗對比,基于本文選取的數(shù)據(jù)集,GRUs在時間上更加節(jié)省,同時準確率有所提升,損失下降,實現(xiàn)效果最好。
對于本數(shù)據(jù)集的研究,使用相同的特征參數(shù)提取方法,與文獻[13]中使用的深度卷積神經(jīng)網(wǎng)絡(luò)進行對比,該網(wǎng)絡(luò)的準確率為83.5%。經(jīng)對比,本文的方法在準確率上優(yōu)于文獻[14]中的深度卷積神經(jīng)網(wǎng)絡(luò)。
本文通過搭建LSTM和GRU深度神經(jīng)網(wǎng)絡(luò)分別對基于Mel頻率倒譜系數(shù)(MFCC)提取UrbanSound8K數(shù)據(jù)集的特征參數(shù),進行語音識別的訓(xùn)練和測試。實驗結(jié)果表明,本文采用的LSTMs和GRUs在損失和準確率方面比基本RNNs要好,并有效地解決了RNN的梯度消失問題。其中對于本文采用的數(shù)據(jù)集,GRUs表現(xiàn)更好,簡潔且更加高效。但是,本文搭建的深度神經(jīng)網(wǎng)絡(luò)仍然還有局限性,在以后的學(xué)習(xí)中可以繼續(xù)優(yōu)化或者結(jié)合其他網(wǎng)絡(luò)進行優(yōu)化。由上述實驗表明,城市聲音的分類,對研究城市聲音對居民的影響,提高城市生活的質(zhì)量有很大的意義。