毛 峽,張旭東,陳立江
(北京航空航天大學 電子信息工程學院,北京 100191)
尖叫聲識別在現(xiàn)代智能監(jiān)控系統(tǒng)的研究中具有重大意義,它能為保護居民生命安全,減少犯罪率提供有力保障.現(xiàn)代主要的監(jiān)控系統(tǒng)多為視頻監(jiān)控系統(tǒng).視頻監(jiān)控系統(tǒng)極容易受到光線環(huán)境的影響,很難在夜晚發(fā)揮應有的作用.監(jiān)控的及時性很大程度上取決于監(jiān)控人員,在監(jiān)控人員高度疲勞或者注意力不集中的情況下,視頻監(jiān)控中的危險細節(jié)很容易被遺漏.此外,視頻監(jiān)控存在著不可避免的盲區(qū)問題,一個傳統(tǒng)的視頻監(jiān)控系統(tǒng)無法捕捉在視線盲區(qū)內(nèi)的任何信息.而音頻監(jiān)控能夠有效地克服視頻監(jiān)控中存在的各種先天問題,具有較高的魯棒性.在發(fā)生突發(fā)事件時,驚慌失措的人群往往使得視頻信息變得晦澀、雜亂以及不穩(wěn)定,與之相反,此時音頻信息往往更值得信賴[1].此外,音頻識別系統(tǒng)還可以輔助視頻自動監(jiān)控系統(tǒng),使得監(jiān)控系統(tǒng)更好地理解監(jiān)控環(huán)境中發(fā)生的異常事件,從而做出更加及時與準確的反映[2].
目前,國內(nèi)外學者針對尖叫聲識別進行了研究.在文獻[3]中,作者使用梅爾頻率倒譜系數(shù)(Mel Frequency Cepstrum Coefficient, MFCC)、短時能量、短時過零率作為特征,使用隱馬爾可夫模型(Hidden Markov Model, HMM)來檢測電影中尖叫聲片段,達到的平均準確率高于97%.在文獻[4]中,作者訓練了支持向量機(Support Vector Machine, SVM)以及一個高斯混合模型(Gaussian Mixture Model, GMM),對尖叫、哭喊、玻璃碎裂聲等聲音進行分類,系統(tǒng)所達到的性能是檢測概率96.5%,虛警概率23%.在文獻[5]中,作者借鑒深度學習(Deep Learning, DP)的方法,利用深度波爾茲曼機對尖叫聲進行檢測;在文獻[6-7]中,作者提出的系統(tǒng)能夠區(qū)分講話、哭喊以及像玻璃破碎和水灑出來之類的事件.在文獻[8]中,作者使用兩個串聯(lián)的SVM分類器: 第一個分類器使用多組一對一分類器對環(huán)境噪聲進行排除;第二個分類器使用一個一對多的分類器進行危險信號識別.該方法在20dB的信噪比(Signal Noise Ratio, SNR)下達到的檢測概率為93.16%,虛警概率4.76%;0dB下達到的檢測概率為84.13%,虛警概率為4.13%.文獻[9]使用深度神經(jīng)網(wǎng)絡(Deep Neural Network, DNN)從環(huán)境噪聲中識別出槍聲及尖叫聲,準確度為93.8%.文獻[10]使用混合時間軌跡方法對地鐵站內(nèi)的異常音頻事件進行檢測,在20dB的信噪比下F值達到了92.03.
為了解決目前國內(nèi)外研究在尖叫聲識別領(lǐng)域中存在的問題,本文對幾種不同的尖叫聲識別算法進行了改進,并對改進后的算法進行了系統(tǒng)地比較,然后討論了尖叫聲識別算法在硬件上的具體實現(xiàn)細節(jié).
考慮到尖叫聲所特有的聲音特質(zhì)(聲譜往往在尖叫聲起始和結(jié)束時變化明顯),本文除采用傳統(tǒng)特征如梅爾頻率倒譜系數(shù)(MFCC)[11]、頻譜特征[12-13],還使用了梅爾頻率倒譜系數(shù)變化率作為一種改進特征:
(1)
式中:c(n)代表當前幀的第n階MFCC;cprevious代表前一幀的第n階MFCC;cvariance代表了MFCC相對變化率.式(1)的分子部分反映了MFCC變化值的平方和,分母部分則表示相對變化的概念.圖1,圖2展示了兩種不同音頻的MFCC變化率cvariance隨樣本幀序號i的變化規(guī)律.對比圖1與圖2可知,尖叫聲樣本MFCC變化率在整個發(fā)生過程中取值較小(大部分取值在0.15以下)且中間部分變化平穩(wěn);相反,對話聲樣本MFCC變化率在發(fā)聲過程中取值較大(大部分取值在0.15以上,且部分取值達到0.5以上)且變化劇烈.
圖1 尖叫聲樣本MFCC變化率Fig.1 MFCC variance of a scream sample
圖2 說話聲樣本MFCC變化率Fig.2 MFCC variance of a conversation sample
1.2.1 基于改進HMM與矢量量化的識別算法
使用傳統(tǒng)的基于HMM與矢量量化的方法進行識別時,往往選取其中HMM輸出的對數(shù)概率最大者的類別號作為測試樣本類別號,即:
(2)
式中:Pi代表樣本屬于i類的概率.此算法實驗效果較差,這是因為這分類器過于“嚴格”.因此本文對HMM的識別方法做了一些改進.
首先,算法將對數(shù)概率ln(Pi)進行降序排序,得到一個按元素大小排列的向量:
(3)
設定兩個閾值(R,dT).識別算法可描述為,判定測試樣本為尖叫聲(類別號為1),當且僅當下列兩個條件滿足:
(4)
式中:N為該樣本所對應序列長度.這可簡單描述為: 樣本為尖叫聲的對數(shù)概率的值lnP1要排在所有類別對數(shù)概率降序排列后的前R位,且其隱含的幀平均概率要大于等于dT.之所以強調(diào)幀平均概率,是因為滿足相同概率分布的序列,長度越長,則它出現(xiàn)概率的期望將越低.傳統(tǒng)識別方法對應的閾值為(1,+∞),為改進算法的一個特例.
1.2.2 基于SVM與靜態(tài)特征的識別算法(SVM-S)
因為SVM并沒有上下文相關(guān)的結(jié)構(gòu),所以在使用SVM對音頻信號進行分類時,可以采用取所有幀特征的統(tǒng)計值作為新特征的方法.該統(tǒng)計特征通常稱作靜態(tài)特征.統(tǒng)計特征通常選取均值、均方差、順序統(tǒng)計量、差分的均值和方差等.本文中選取均值和方差作為統(tǒng)計特征,即:
(5)
1.2.3 基于SVM與碼字直方圖的識別算法(SVM-H)
SVM方法存在著無法反映音頻信號時間結(jié)構(gòu)的問題.因此,本節(jié)將采用直方圖技術(shù)來分析音頻信號碼字的組成成分,并以此作為特征向量,使用SVM對其進行分類.
矢量量化將特征向量序列映射到正整數(shù)序列:
因此直方圖向量可表示為:
(6)
(7)
圖3和圖4分別展示了尖叫聲集合和對話集合上的直方圖向量的平均值.從圖中可以看出,尖叫聲的碼字出現(xiàn)的較為單一,而對話相對分布比較廣泛.
圖3 尖叫聲樣本碼字直方圖Fig.3 Code words histogram of a scream sample
圖4 說話聲樣本碼字直方圖Fig.4 Code words histogram of a conversation sample
本文使用部分MIVIA實驗室[14-15]的音頻數(shù)據(jù)(使用Axis T83全方向麥克風獲取)以及部分電影音頻剪輯作為數(shù)據(jù)源,總共583條音頻,其中包含了尖叫聲、動物聲音、咳嗽、笑聲、音樂、對話6類聲音.所有音頻的采樣率為32kHz,分辨率為16bit,絕大部分時長在0~3s之間.在算法訓練和調(diào)優(yōu)中,使用408條作為訓練集合,60條作為未開發(fā)集合,115條作為測試集合.
本文使用一部電影的音頻作為噪聲源來模擬真實情況下的噪聲,其中包含了對話、音樂等不同種類的聲音,本文稱待添加噪聲的測試樣本為目標樣本.首先本文從電影音頻中剪輯若干個有聲片段;在需要添加噪聲時,程序?qū)㈦S機選擇一段剪輯,并隨機選擇剪輯中與目標樣本等長的一段聲音作為環(huán)境噪聲;如果該剪輯長度小于目標樣本的長度,將剪輯復制并添加到剪輯尾部來進行長度擴展.之后以固定20dB的信噪比向環(huán)境噪聲中添加高斯白噪聲.最后將這段環(huán)境噪聲以指定的信噪比(0,20,40dB)加入到測試樣本中.
圖5,圖6給出了4種特征集合在不同信噪比環(huán)境下的ROC(Receiver Operating Characteristic)曲線,其中藍色、紅色、黃色、紫色分別代表以“MFCC+頻譜特征+MFCC變化率”、“MFCC+MFCC變化率”、“MFCC+頻譜特征”、“頻譜特征”作為特征集合時的ROC曲線.圖中,縱坐標為檢測概率(Detection Rate, DR),橫坐標為虛警概率(False Alarm Rate, FAR).一般來說,曲線越靠近左上方,分類器性能越好.
圖5 SNR為20dB時不同特征集合的ROC曲線Fig.5 ROC for different feature sets in 20dB SNR
圖6 SNR為0dB時不同特征集合的ROC曲線Fig.6 ROC for different feature sets in 0dB SNR
從圖5,圖6可以看出當信噪比為20dB時,ROC曲線仍處于圖中的右上方,因此,這些特征對噪聲并不敏感.只有當信噪比很低時,例如0dB,ROC曲線才會明顯地向右下方移動,說明算法對噪聲的抗干擾能力較強.
另一方面,當算法使用“MFCC+頻譜特征+MFCC變化率”作為特征時效果最好,而“MFCC+MFCC變化率”和“MFCC+頻譜特征”效果差別不大.MFCC變化率只利用到了MFCC,沒有其他更多的運算.但是計算頻譜特征需要更多的計算,并且它包含3個單獨的特征分量.
鑒于“MFCC+頻譜特征+MFCC變化率”的ROC曲線總是分布在其他特征的ROC曲線的左上方,最終算法選取“MFCC+頻譜特征+MFCC變化率”作為特征.
圖7,圖8給出了3種尖叫聲識別算法在不同信噪比下的ROC曲線.在信噪比為20dB時,分類器的識別性能相差不大,但是在較低的信噪比環(huán)境中(SNR為0dB),使用矢量量化后的特征的分類器性能會大大下降.因此,本文選擇SVM-S算法來實現(xiàn)尖叫聲識別系統(tǒng).
圖7 SNR為20dB時3種算法的ROC曲線Fig.7 ROC for three algorithms in 20dB SNR
圖8 SNR為0dB時3種算法的ROC曲線Fig.8 ROC for three algorithms in 0dB SNR
整個尖叫聲識別系統(tǒng)分為硬件和軟件兩部分,鑒于它們各自不同的特點,本節(jié)將從硬件和軟件兩部分來介紹整個系統(tǒng)框架.圖9展示了整個系統(tǒng)硬件的模塊圖.首先麥克風將空氣中的振動信號轉(zhuǎn)變?yōu)殡娦盘?;然后,UDA1341TS對原始的電信號進行放大、濾波;之后,該芯片將通過模數(shù)轉(zhuǎn)換將模擬信號轉(zhuǎn)變?yōu)镻CM數(shù)據(jù);這些數(shù)據(jù)將在DMA控制器的協(xié)調(diào)下通過IIS接口,存儲到RAM中;待需要時,這些數(shù)據(jù)將被送到CPU中進行運算,從而識別;最后,CPU將輸出識別信號.在本文中,識別信號通過LED周期性地的亮滅來表示.
圖9 系統(tǒng)硬件模塊Fig.9 Hardware modules in the designed system
圖10展示了系統(tǒng)軟件流程圖.首先系統(tǒng)上電后完成必要的寄存器初始化工作;然后,主程序?qū)⒄埱驞MA(圖10中虛線代表請求DMA,DMA工作不需要CPU參與,一旦DMA完成工作,將一幀信號送入內(nèi)存,CPU將會進入中斷處理程序),通過IIS接口獲取音頻數(shù)據(jù)并將其存入內(nèi)存中.主程序通過識別標志監(jiān)視DMA中斷處理程序的進程;在DMA中斷處理中,程序?qū)z查每一幀的能量,并根據(jù)能量來決定狀態(tài)機的狀態(tài)變化,標定音頻信號的起始點和終止點;一旦能量條件滿足,中斷處理程序?qū)⑼ㄟ^激活識別標志來通知主程序進行識別;當音頻信號結(jié)束后,將暫時停止DMA請求;主程序發(fā)現(xiàn)識別標志被激活后,將對音頻數(shù)據(jù)進行特征提取和識別,并輸出識別信號;最后,主程序?qū)⒅匦抡埱驞MA,進入到下一個流程循環(huán).
圖10 系統(tǒng)軟件流程Fig.10 Programming flowchart for the designed system
在ARM9尖叫聲識別系統(tǒng)中,音頻傳輸是協(xié)調(diào)音頻采集與音頻識別的關(guān)鍵.音頻傳輸采用IIS總線接口,它參與了圖9中DMAC控制器協(xié)調(diào)下的音頻傳輸過程.整個接口模塊如圖11所示,模數(shù)轉(zhuǎn)化后的串行數(shù)據(jù)首先經(jīng)過移位寄存器,在通道發(fā)生器和狀態(tài)機的控制下進入一個FIFO中,F(xiàn)IFO的狀態(tài)可以通過一個寄存器組和狀態(tài)機進行查詢和控制,DMAC利用該寄存器組完成從FIFO中讀取數(shù)據(jù),并將其存入RAM的工作.
圖11 IIS接口模塊圖Fig.11 IIS interface module
在整個任務的軟件編程中,通過對寄存器組和狀態(tài)機寫入控制字來對IIS模塊進行控制.首先需要對兩個分頻器進行配置,使其能正確產(chǎn)生使得IIS以及UDA1341TS工作的時鐘.分頻比必須準確,否則可能會導致音頻采樣率不準.之后選擇IIS的發(fā)送接收模式為DMA.當請求DMA時,DMA控制器將自動從IIS模塊取音頻數(shù)據(jù),不需要CPU干預.
本文最終在測試集合中選取115條音頻(測試集中所有樣本)進行硬件測試,系統(tǒng)采用的特征為“MFCC+MFCC變化率+頻譜特征”,采用的算法為SVM-S.音頻在實驗室環(huán)境下使用電腦進行播放.結(jié)果如表1,其中每一列代表實際尖叫聲或非尖叫聲的樣本數(shù)量,每一行代表預測得出的尖叫聲或非尖叫聲樣本數(shù)量.例如表中數(shù)據(jù)第一行第一列代表了實際為尖叫聲,在預測中也被判斷為尖叫聲的樣本數(shù)量.系統(tǒng)的檢測概率為96%,虛警概率為3.4%.并且在測試中,系統(tǒng)的應答時間均小于2s.因此,該系統(tǒng)基本滿足尖叫聲識別系統(tǒng)的要求.
表1 系統(tǒng)測試結(jié)果
在系統(tǒng)測試過程中發(fā)現(xiàn),在被誤識別為非尖叫聲的尖叫聲樣本中,尖叫者發(fā)出了多次連續(xù)尖叫且幅度變化劇烈,與其他樣本具有明顯區(qū)別.另外,經(jīng)過電腦外放與ARM9重新采集后的音頻與原始音頻之間存在差異,影響了計算得到的特征值.以上原因?qū)е铝讼到y(tǒng)對一部分樣本進行了錯誤的識別,作者將在后續(xù)研究中針對系統(tǒng)中的不足進行改進.
本文提出用MFCC變化率作為尖叫聲特征,以此改進了尖叫聲識別系統(tǒng)的檢測概率和虛警概率并對HMM的傳統(tǒng)判別方式進行了改進,使得其可以通過閾值(R,dT)對HMM的ROC曲線進行調(diào)整,進而避免了檢測概率過小的問題.在此基礎(chǔ)上,本文使用IIS和DMA實現(xiàn)了基于ARM9的尖叫聲識別系統(tǒng).