,
(浙江工業大學 計算機科學與技術學院,浙江 杭州 310023)
城市環境聲音事件的自動分類有各種應用,包括上下文感知計算[1]、監控[2],或基于內容的多重檢索技術,如對城市事件的高亮提取[3]、視頻摘要[4](確定重大城市事件)等。更為重要的是,人們每天都暴露在各種不同的聲音中,通過對城市聲音和噪音的數據驅動理解,可以改善城市居民生活質量,所以提高環境聲音分類的準確性具有十分重要的理論意義及實際應用前景。
雖然在語音、音樂和生物聲學等相關領域有大量關于聲音分類的研究,但城市環境聲音分析工作相對較少。現有的研究也主要側重于聽覺場景類型(例如街道、公園)[1,5-7]的分類,缺少對汽車喇叭、發動機空轉或鳥鳴之類的場景中特定聲源的識別。同時環境聲音(不包括音樂或語音的日常音頻數據,其結構通常更混亂和多樣化)的分類仍然主要基于應用一般分類器:高斯混合模型、支持向量機、隱馬爾可夫模型等手動提取特征,如Mel頻率倒譜系數。最近的研究[8-9]詳細分析了最常見的方法。而深度神經網絡的學習辨別Spectro-temporal模式能力使其非常適用于環境聲音分類。最新的神經網絡聲音分類研究中[10-11]利用卷積神經網絡進行城市聲音分類達到73.7%~79%的精確度。筆者設計深度神經網絡模型(DNN)和卷積神經網絡模型(CNN)對公共城市環境聲音數據進行網絡訓練分類,評估連續小卷積核卷積神經網絡對短音頻的分類能力,并與其他先進聲音分類方法的結果進行對比。深度神經網絡提取5 類常用音頻特征作為輸入,分類精讀達88.6%優于目前的其他方式,而卷積神經網絡不同于Piczak提出的57×6長卷積,而是使用3×3多次連續卷積,達到的分類精度與其他研究基本持平,也證明了連續小卷積核卷積神經網絡對短音頻分類具有一定的潛力。
人工神經網絡也被稱為層感知機是只含1 層隱藏層的節點的淺層模型,而深度神經網絡是通過構建具有多隱層的機器學習模型和海量的訓練數據,來學習更有用的特征,從而最終提升分類或預測的準確性(圖1)。突出了特征學習的重要性,也就是說,通過逐層特征變換,將樣本在原空間的特征表示變換到一個新特征空間,從而使分類或預測更加容易。目前神經網絡的應用十分廣泛[12-14],根據應用情況不同,深度神經網絡的形態和大小也各異,卷積神經網絡(CNN)也是深度神經網絡的一種流行變種。

圖1 深度神經網絡的網絡結構Fig.1 Network structure of deep neural network
典型的卷積神經網絡是由多個不同層堆疊在一起的深層結構:輸入層、一組卷積、池化層(可以不同方式組合)、一定數量全連接隱藏層、輸出層。
卷積層引入組織隱藏單元的特殊方式來利用二維輸入數據中存在的局部結構。每個隱藏單元不是連接來自上一層的所有輸入而是僅處理整個輸入空間的一小部分,該區域為其感受野。利用創建的卷積核以一定步長平鋪整個輸入空間產生一個特征圖。
通常圖像處理中應用二維卷積運算。二維卷積運算可被如下定義:給定一個圖像Xij(1≤i≤M,1≤j≤N),和濾波器fij(1≤i≤m,1≤k≤n),則卷積運算為

(1)
假設第l層的輸出特征映射為Xl∈i(wl×hl),第l-1層的輸出特征映射為xl-1∈i(wl-1×hl-1),則卷積運算過程為
Xl∈f(wl?Xl-1+bl)
(2)
式中:wl為第l層的卷積核;b為偏置矩陣;?為卷積運算;f為該層的激活函數。
為了卷積層有更好的泛化能力,通常會在卷積層之后加上池化層(Pooling)用來降低了各個特征圖的維度,并保持大部分重要的信息。若l層產生了k個特征映射X(l,k),l+1層為池化層,則產生的k個特征映射為
X(l+1,k)=f(down(Xl)+bl+1)
(3)

本實驗使用的是keras高層神經網絡庫,Google開源框架tensorflow作為后端,涉及包括特征提取、基于神經網絡的數據處理與訓練以及softmax分類器進行分類等過程。
監督學習訓練深層神經網絡的主要問題之一是需要有正確標記的數據來進行有效的學習。由于手動注釋成本很高,目前公開的環境數據集無論是在數量還是數據大小上都非常有限。筆者使用目前可用于研究的標簽城市聲音事件的最大數據集UrbanSound8K[15]。UrbanSound8K是各種城市聲源(空調聲、汽車鳴笛、兒童玩耍聲、狗叫聲、鉆孔聲、發動機空轉聲、槍聲、警笛聲和街頭音樂等)共8 732 份短音頻(每段少于4 s),10 類聲音被分為10 份文件,如表1所示。

表1 城市環境聲音數據Table 1 The sound data of urban environment
Matplotlib將10 類聲音進行可視化處理:繪制波形圖(Wave plot),如圖2(a)所示;用短時傅里葉變換繪制信號頻譜圖(Septrogramt),如圖2(b) 所示;繪制對數功率頻譜圖(Log power septogram),如圖2(c) 所示。可以看出不同聲音之間的明顯差異。

圖2 聲音可視化圖譜Fig.2 Sound visualization map
聲音分類問題中,提取合適的特征是決定分類效果的關鍵。有許多特征可用于表征聲音信號。常用的有Mel頻率倒數參數(MFCC)、線性預測倒譜系數(LPCC)、短時能量、基頻和帶寬等。在DNN中選擇提取以下5 類特征:1) melspectrogram,計算Mel縮放功率譜圖;2) mfcc,Mel頻率倒譜系數,能夠充分表征人耳的非線性感知特性;3) chorma-stft,從波形或功率譜圖計算色標;4) spectrum_contrast,使用文獻[16]中定義的方法計算光譜對比度;5) tonnetz,按照文獻[17]的方法計算色調質心特征。提取特征和使用模型架構如圖3所示。

圖3 數據處理架構Fig.3 The structure of data processing
在CNN中,通過對環境聲音分幀、傅里葉變換、Mel濾波器組濾波以及log尺度變換等步驟生成Mel能量譜。Mel能量譜片段采樣,生成Mel能量譜片段集作為CNN模型的輸入。如圖4所示,對產生的能量譜PMel(t,f)采用滑動窗口進行分片采樣,圖4中窗口的寬度為96 像素,滑動距離256 像素。

圖4 分片采樣過程Fig.4 Fragment sampling process
環境音頻數據如2.2節所述進行聲音信息特征提取后,作為神經網絡的輸入層,其后經過2 層全連接的隱藏層,第1 層隱藏層神經元數為280,使用tanh激活函數,第2 個隱藏層300 個神經元,使用sigmoid激活函數,最后輸入到softmax分類器中進行分類。筆者使用的學習率為0.01,訓練20 000 次,得到的誤差曲線如圖5所示。其分類精度將在下節中具體與其他實驗結果對比分析。

圖5 DNN訓練誤差曲線Fig.5 Training error curve of DNN
CNN結構如圖6所示,由5 層卷積層conv、4 層最大池化層max-pooling、全連接層和輸出層等構成。輸入的采樣Mel能量譜大小為96×188,所有卷積層的卷積核個數均為32,均用3×3大小的卷積核進行卷積,卷積滑動步長為3。池化層池窗大小分別為2×4,3×3,2×2。全連接層的神經元個數為32,輸出層神經元個數為10(分類數)。各層激活函數采用ELU(Exponential linear unit)[18]函數。在CNN結構中激活函數后對激活值進行標準化(Batch normalize,BN)[19]。為了讓CNN不易過擬合,在各卷積層之后采用0.2概率的Dropout訓練策略,即在訓練中隨機讓該層一定比例的神經元保留權重而不作輸出。在第5 層卷積層之后使用的是2×2平均池化,之后用flatten將多維輸入一維化,作為從卷積層到全連接層的過渡。

圖6 筆者使用的CNN結構Fig.6 CNN model architecture for the article
如圖7所示,實驗結果中橫縱坐標縮寫代表的分類為:air conditioner(AI),car horn(CA),childern playing(CH),dog bark(DO),drilling(DR),engine idling(EN),gun shot(GU),jackhammer(JA),siren(SI),street music(ST)。
在DNN中,本實驗隨機將70%的音頻數據作為訓練集,將30%的音頻數據作為測試集,可得到圖7(a)所示的混淆矩陣,CNN實驗以前8 個fold共7 079 份音頻作為訓練集,以第9 個fold共816 份音頻數據作為驗證集,第10 個fold作為測試集,得到的實驗結果混淆矩陣如圖7(b)所示。由于數據集中不同音頻數據量不完全相同,所以在混淆矩陣中顏色深淺不能最直觀體現分類精確度,但從圖7(a,b)均可看出:在分類中容易將ST街頭音樂和DO犬吠錯分為CH孩童玩耍的聲音。在卷積神經網絡中還有一定數量的EN發動機轉動聲音錯分為空調、電鉆的聲音,而這些聲音在日常生活中也比較容易被混淆。
表2前2 列分別為使用的神經網絡分類模型,而后3 列列舉了當前使用同一數據集的其他分類模型,其中SKM為使用球面k均值聚類算法進行分類的模型,Piczak-CNN為使用57×6超長條形卷積核進行卷積的神經網絡分類模型,SB-CNN為進行了音頻數據增強后的3 層卷積加1 層全連接層模型。整體來看,其他所有模型都對gunshot槍擊聲的分類準確度高,而DNN對槍擊聲分類低于其他模型,一方面為槍擊聲較為短促,另一方面在所有音頻數據中收集到的槍聲數據量也相對最少,對DNN沒有優勢。但是在精確度的平均水平上DNN明顯優于其他模型。CNN分類精度對比可看出:筆者使用連續小卷積核卷積的深層次卷積神經網絡模型具有一定的音頻分類潛力,在兒童玩耍聲上分類準確性要高于其他論文中的CNN模型。

圖7 DNN和CNN混淆矩陣Fig.7 Confusion matrix for the proposed DNN and CNN model

聲音樣本 DNN CNN SKM Piczak-CNN SB-CNN air_conditioner 92.8 60.0 51.3 55.7 48.9 car_horn 75.8 63.6 63.4 78.8 88.3 children_playing 88.1 88.0 76.6 82.0 83.0 dog_bark 80.0 64.0 79.5 84.0 90.4 drilling 91.1 78.0 79.9 66.3 80.2 engine_idling 94.4 57.0 77.2 67.9 79.8 gun_shot 80.2 93.8 91.7 92.5 94.1 jackhammer 92.4 72.9 70.2 62.7 67.3 siren 91.3 53.0 75.7 81.0 85.8 street_music71.084.077.076.084.4平均值 86.9 71.4 73.7 73.1 78.7
針對短音頻城市環境聲音分類問題,研究并提出了兩類神經網絡分類模型。分析音頻特點提取5 類音頻特征作為神經網絡的輸入,該分類模型分類準確性能夠達到88%,高于目前提出的其他卷積神經網絡分類模型。而卷積神經網絡模型無需提取多類特征,將音頻特征通過Mel能量譜圖體現,采樣圖片像素通過多層卷積進行分類,即使在沒有音頻增強的情況也有良好的分類能力,也證明了經過多次連續小卷積核卷積可進一步提高模型性能。今后可通過音頻數據增強來克服數據稀缺問題,探討數據擴充對深度神經網絡架構的影響。