徐淑正, 孫憶南, 皇甫麗英, 方瑋騏
(清華大學(xué) 電子工程系,北京 100084)
鳥類是生態(tài)環(huán)境的重要組成成員之一,保護(hù)鳥類對于維護(hù)生態(tài)系統(tǒng)的穩(wěn)定和人類的發(fā)展起到至關(guān)重要的作用。目前,保護(hù)鳥類的一個重要措施就是定期地對某一特定生態(tài)區(qū)域內(nèi)的鳥類種群數(shù)量進(jìn)行統(tǒng)計監(jiān)督,然而相比形態(tài)特征,鳥類的叫聲更具有物種的特異性。因此通過鳥聲來識別其對應(yīng)的種類就顯得具有更大的現(xiàn)實(shí)意義。
目前對于鳥聲的分類技術(shù)一般是構(gòu)建單一的分類器算法,通過提取鳥聲各個方面的特征和有標(biāo)簽分類進(jìn)行機(jī)器學(xué)習(xí),如基于多維特征聯(lián)合方法[1]和結(jié)合時-頻紋理特征[2-3]的隨機(jī)森林分類器等。在分類器方面,可以利用統(tǒng)計學(xué)的流行方法實(shí)現(xiàn)對鳥叫聲信號的自動識別[4],或采用樸素貝葉斯算法來進(jìn)行鳥類聲音識別[5]。同時,在實(shí)際的生態(tài)環(huán)境聲音識別中,常常會遇到各種不可避免的噪聲,而這些噪聲又會嚴(yán)重影響系統(tǒng)的識別性能。
為了讓系統(tǒng)在噪聲環(huán)境下依然能夠獲得令人滿意的工作性能,本文借鑒語音信號處理的相關(guān)方法[6-13],采用了不同算法進(jìn)行前段的消噪工作。在特征提取方面,本文分別采用了音節(jié)長度、梅爾頻率倒譜系數(shù)(MFCC)[6-7]、基于線性預(yù)測編碼(LPC)系數(shù)的動態(tài)時間規(guī)整(DTW)模板[8-11]和時頻紋理特征進(jìn)行全方位地分析;在分類器方面,本文采用了支持向量機(jī)(SVM)和隨機(jī)森林(Random Forest)等方法并且集成多個分類器組合進(jìn)行分類。多分類器集成技術(shù)是指使用多個基分類器進(jìn)行分類,并綜合所有基分類器的分類結(jié)果形成一個最終結(jié)果。與單一分類器相比,組合分類器不僅可以有效提高分類正確率,而且能夠避免過擬合現(xiàn)象。
基于多維特征聯(lián)合方法[1]和結(jié)合時-頻紋理特征[2]的隨機(jī)森林分類器,本文采用一種基于多維特征聯(lián)合的鳥聲識別方法,它主要包括預(yù)處理、特征提取、分類判別3個步驟。
先對音頻信號s[n]重采樣,將采樣率統(tǒng)一到8 kHz,接著進(jìn)行預(yù)加重處理,然后對音頻分幀。用漢明窗截取長度為256點(diǎn)(32 ms)的語音幀,相鄰幀之間互相重疊96點(diǎn)(12 ms)。計算每1幀的短時能量,并設(shè)置閾值以判定無聲段和有聲段,得到二值的判別結(jié)果。通過對該結(jié)果的中值濾波,將密集的有聲段連結(jié)在一起,形成音節(jié),進(jìn)而完成音節(jié)萃取。
圖1給出了音節(jié)萃取的結(jié)果(藍(lán)色的為原始音頻波形;橙色的為經(jīng)中值濾波的有聲段區(qū)分結(jié)果)。可以看出,通過中值濾波,孤立的有聲幀被濾除,連續(xù)分布的有聲幀被連結(jié)成有一定長度的音節(jié)。
(a) 中值濾波前
(b) 中值濾波后
共提取4項(xiàng)特征,它們分別是音節(jié)長度、MFCC、基于LPC系數(shù)的DTW模板和TF。音節(jié)長度描述了鳥鳴聲的長短;MFCC系數(shù)描述了鳥聲在頻域上的分布特點(diǎn);LPC系數(shù)描述了聲道特征,而其DTW模板則描述了聲道特征隨時間的變化;TF描述了鳥聲的頻譜隨時間的變化。這4項(xiàng)特征綜合了時域和頻域、靜態(tài)和動態(tài),能較好地反映出鳥聲的特質(zhì)。
1.2.1音節(jié)長度
在音節(jié)萃取的基礎(chǔ)上,計算出音節(jié)長度,即每個音節(jié)的持續(xù)時間。
1.2.2MFCC
利用Matlab的voicebox工具箱實(shí)現(xiàn)MFCC特征提取的函數(shù)mfcc(x,fs),其中:x為待提取特征的音頻幀;fs為采樣頻率,函數(shù)輸出為12階MFCC參數(shù),256個點(diǎn)為1幀。如圖2所示,對于輸入的1幀,對其進(jìn)行FFT變換,從頻譜求得幅度譜,然后通過一組在頻域上非均勻分布的三角濾波器(Mel濾波器組),將輸出做對數(shù)運(yùn)算后再進(jìn)行DCT變換,即可得到MFCC系數(shù)。
圖2 MFCC系數(shù)的計算
通過Mel濾波器組,可以對頻譜進(jìn)行平滑,消除諧波的作用。濾波器組是一組Mel尺度的三角濾波器組,每個濾波器的中心頻率為f(m),m=1,2,…,M,之后計算每個濾波器組輸出的對數(shù)能量,m為三角濾波器的個數(shù)。
最后,將對數(shù)能量進(jìn)行DCT變換:
得到12維的MFCC系數(shù)。不同種類的鳥在頻譜上的分布特性表現(xiàn)不一,通過將同種鳥的幀特征拼合在一起,可以對比出不同的鳥,如圖3所示。
1.2.3基于LPC系數(shù)的DTW模板
其中:R(k)為信號s[n]的自相關(guān)系數(shù)。
(a) 紅頭鴿
(b) 布谷鳥
在得到LPC系數(shù)的基礎(chǔ)上,可以構(gòu)建模板,利用DTW算法進(jìn)行模板匹配。一個音節(jié)內(nèi)各幀的LPC系數(shù)構(gòu)成一個模板,這樣每種鳥會有多個模板。為方便后續(xù)的分類判決、減少空間和時間開銷,本文比較了各個音節(jié)的模板,為每個音頻選擇了一個最終模板。選擇標(biāo)準(zhǔn)如下:分別計算各模板之間的距離,得到一個和其余模板的距離之和最小的模板,作為最終模板。
計算模板間的距離,即模板匹配,其過程即為DTW算法。DTW是把時間規(guī)整和距離測度計算結(jié)合起來的一種非線性規(guī)整技術(shù),它尋找一個規(guī)整函數(shù)im=Φ(in),將測試模板T的時間軸n非線性地映射到參考模板R的時間軸m上,并使該函數(shù)滿足:
D即為測試模板與參考模板之間的距離。本文中,時間軸的一點(diǎn)對應(yīng)音節(jié)中的1個語音幀,模板在該時刻的取值則為該幀的LPC系數(shù),是一個P維向量,距離d為向量間的歐幾里得距離[13]。
(2) 利用模板匹配自動提取有效音節(jié)。一般情況下,音頻中除了鳥聲外還有其他噪音(例如人聲等)。當(dāng)噪聲短促且功率較大時,預(yù)處理中以短時能量為依據(jù)判定音節(jié)的方式將無法分辨鳥聲和噪聲,從而將噪聲誤判為音節(jié),形成無效音節(jié)。針對這個問題,本文提出了一種基于DTW模板的去除無效音節(jié)的方法。
對于每個音頻,提取它的各個音節(jié)的DTW模板,并計算各DTW模板之間的距離。由于噪聲與鳥聲的DTW模板之間的距離明顯大于鳥聲與鳥聲的DTW模板之間的距離,所以可以此為判據(jù),去除無效音節(jié)。
圖4展示了去除無效音節(jié)的效果。曲線空缺處代表距離值為正無窮。去除了無效音節(jié)后,各模板之間的距離都是有限值,且取值分布較為均勻,沒有明顯的離群值(outlier)。利用DTW模板來提取有效音節(jié),也為音節(jié)長度、MFCC等特征的正確提取提供了便利。
(a) 去除無效音節(jié)前
(b) 去除無效音節(jié)后
1.2.4時頻圖紋理特征
(1) 前端處理。前端處理主要是對含噪信號進(jìn)行增強(qiáng)處理,并將增強(qiáng)后的信號功率譜以時頻圖形式輸出。本文使用一種基于噪聲估計的音頻增強(qiáng)算法來抑制背景噪聲對信號的影響,具體步驟如下:
①對含噪信號功率譜|Y(λ,k)|2進(jìn)行一階遞歸平滑,得到平滑后的功率譜|P(λ,k)|為
式中:λ為幀號;k為子帶頻號;η為常量平滑參數(shù),這里取η=0.7。
②采用連續(xù)平均過去的譜信號的非線性方法尋找?guī)г胄盘柕淖钚≈?,判別規(guī)則如下:
如果
Pmin(λ-1,k)
則
Pmin(λ,k)=γPmin(λ-1,k)+
否則
Pmin(λ,k)=P(λ,k)
式中:Pmin(λ,k)為帶噪信號功率譜的局部極小值;γ和β是實(shí)驗(yàn)中確定的常數(shù)。
③計算有效信號的存在概率
p(λ,k)=αpp(λ-1,k)+(1-αp)I(λ,k)
式中:αp=0.2為常量平滑參數(shù);I(λ,k)是有效信號存在性判別準(zhǔn)則,即:當(dāng)Sr(λ,k)>δ(k)時,I(λ,k)=1 (包含有效信號);當(dāng)Sr(λ,k)<δ(k)時,I(λ,k)=0 (不包含有效信號)。其中:Sr(λ,k)=P(λ,k)/Pmin(λ,k) 表示當(dāng)前信號和局部極小值信號的比值。當(dāng)該比值比閾值大,則判別為包含有效信號;否則判別為不包含有效信號。
④根據(jù)時-頻平滑因子αs(λ,k)進(jìn)行噪聲功率譜估計:
其中
αs(λ,k)=αd+(1-αd)p(λ,k),αd=0.95
⑤計算頻譜增益因子
式中,
為近似估計的純凈信號功率譜;ν=0.001為功率譜下限參數(shù);μk為控制殘留噪聲與信號失真度平衡的拉格朗日乘子,通過實(shí)驗(yàn)確定:
式中,
為信噪比函數(shù)。
⑥最后增強(qiáng)信號的功率譜為:
(2)紋理特征提取[11]。
①灰度共生矩陣。灰度共生矩陣(Gray Level Co-occurrence Matrix,GLCN)是指圖像中相距(Δx,Δy)的兩個像素同時出現(xiàn)的聯(lián)合概率分布,其中Δx,Δy的具體范圍由兩個參數(shù)決定:像素間的間距d和方向角度θ,其中Δx,Δy滿足Δx=dcosθ,Δy=dsinθ。
灰度共生矩陣的公式定義:
式中:x,y是圖像中第1個像素點(diǎn)的像素坐標(biāo);M×N是圖像的大小;i,j=0,1,…,L-1,其中L為圖像的灰度級數(shù);#{S}表示集合S中的元素個數(shù)。
對GLCN進(jìn)行歸一化處理后的GLCN為:
當(dāng)d,θ確定后,P(i,j|d,θ)=P(i,j)。
②GLCN的紋理特征提取。對于GLCN,有5種用于紋理特征分析的特征量是獨(dú)立的,且具有較好的分類能力:
能量
對比度
相關(guān)性
熵
局部平穩(wěn)
其中:
μx=∑ijΣiP(i,j),μy=∑jj∑iP(i,j)
σx=∑i(i-μx)2∑jP(i,j)
σy=∑j(j-μy)2∑iP(i,j)
上述特征中,ENE反映紋理的粗糙度,CON表征圖像局部灰度的變化總量,COR表示GLCM中行和列的相關(guān)程度,ENT表示圖像灰度的均勻性,HOM表示紋理的局部變化程度。在特征提取中,選取了4組不同的(d,θ),再將5組特征值依次排序合成一個20維的特征向量,對經(jīng)過前端去噪處理后的音頻信號的時頻圖進(jìn)行特征向量提取后得到的若干特征向量分為兩組,其中一組作為訓(xùn)練集;另一組作為測試集,進(jìn)行訓(xùn)練和結(jié)果判別。在實(shí)際的處理過程中,通過調(diào)參發(fā)現(xiàn)4組的(d,θ)分別取(1,0),(1,45°),(1,90°),(1,135°)可以獲得較好的效果。
1.3.1MFCC和音節(jié)長度特征的SVM分類
分別對MFCC特征和音節(jié)長度特征訓(xùn)練分類器。數(shù)據(jù)集分為訓(xùn)練集、發(fā)展集和訓(xùn)練集,用訓(xùn)練集訓(xùn)練不同參數(shù)下的分類器,在發(fā)展集上確定不同分類器參數(shù)的表現(xiàn)然后確定參數(shù),最后在訓(xùn)練集上測試分類器的分類準(zhǔn)確度。
MFCC特征的分類器的訓(xùn)練過程中,改變svm分類器的核函數(shù),分別嘗試了linear、polynomial和rbf 3種核函數(shù),由于MFCC特征的維數(shù)較多,特征較為復(fù)雜,在將迭代次數(shù)增加到100 000的情況下依然對linear和polynomial核函數(shù)不收斂,所以只對rbf的rbf_sigma參數(shù)做了調(diào)整,記錄下幾種參數(shù)訓(xùn)練的模型,并在發(fā)展集上對每1幀音頻進(jìn)行分類,然后將同1個音頻的幾百個幀的分類結(jié)果進(jìn)行投票來確定這個音頻的分類結(jié)果,選擇準(zhǔn)確率最高的模型在測試集上測試結(jié)果。
音節(jié)長度特征是一維特征,分類器的訓(xùn)練過程與MFCC特征一樣,svm分類器核函數(shù)訓(xùn)練了linear和rbf,并對rbf的rbf_sigma參數(shù)進(jìn)行了調(diào)整。
1.3.2DTW模板匹配[12-13]
考慮到每個音頻僅提供一個模板,采用leave-one-out交叉驗(yàn)證法進(jìn)行測試。每次測試時,僅有一個模板作為測試集。分別計算它到其余模板的距離,最小距離對應(yīng)模板所在的鳥類即為分類結(jié)果。
1.3.3時頻圖特征的隨機(jī)森林分類
隨機(jī)森林(Random Forest,RF)是一種基于決策樹的組合分類器算法,它具有需要調(diào)整的參數(shù)較少、不必?fù)?dān)心過度擬合、訓(xùn)練速度快、能高效處理大樣本數(shù)據(jù)以及較強(qiáng)的抗噪能力等特點(diǎn)。廣泛應(yīng)用于基因表達(dá)數(shù)據(jù)、醫(yī)學(xué)圖像分割等領(lǐng)域,RF的具體實(shí)現(xiàn)過程如下:
①利用自舉重采樣(bootstrap)技術(shù)從原始訓(xùn)練集中有放回地隨機(jī)抽取k個新的自助樣本集,每個自助樣本集作為每棵樹的全部訓(xùn)練數(shù)據(jù),調(diào)用過程②生成一棵決策樹。
③重復(fù)步驟②構(gòu)建k棵決策樹組成RF。對于一個未知類型的待測鳥叫聲樣本,首先對其進(jìn)行前端增強(qiáng)處理,并提取一個20維的紋理特征向量,然后將該紋理特征向量遍歷森林中的每一棵樹,每棵樹都得出一個相應(yīng)的分類結(jié)論,最后,由所有樹通過簡單多數(shù)投票決定該待測樣本的最終分類結(jié)果。
由于在每個節(jié)點(diǎn)處是隨機(jī)選擇特征進(jìn)行分支的,因此RF最小化了各決策樹間的相關(guān)性,提高了識別率。而每棵樹的生成速度很快,所以RF具有較快的訓(xùn)練速度,且很容易實(shí)現(xiàn)并行化。
1.3.4聯(lián)合判決
采取標(biāo)簽融合(label fusion)的方式,將各方法得到的預(yù)測結(jié)果融合起來,得到可靠性更高的最終預(yù)測。
(1)單方法分類結(jié)果的可信度。MFCC法對每幀都做一次預(yù)測。假設(shè)音頻有N幀,第n幀的判別結(jié)果為RltMFCC(n),則該音屬于第i類的可能性為
其中,#表示求集合的元素數(shù)目。
音節(jié)長度法對音頻中的每一聲鳥叫做一次預(yù)測。假設(shè)音頻有M聲鳥叫,第m聲的判別結(jié)果為RltNL(m),則該音頻屬于第i類的可能性為:
DTW法對每一個音頻做一次預(yù)測,得到該音頻到各種鳥的DTW模板的距離。每種鳥有多個模板供計算距離,取計算得到的最小距離為該音頻到這種鳥的距離。設(shè)音頻到第i類鳥的距離為distDTW(i),則定義該音頻屬于第i類的可信度為:
為防止分母min{distDTW(i)}為零,將distDTW(i)都加上一個小常量1.0×10-10。
TF法對每一段2 s長的音頻片段都做一次預(yù)測,隨機(jī)森林分類器可以給出這一片段屬于某一類鳥叫的可能性。假設(shè)音頻有K個片段,第k段屬于第i類的可能性為RltTF(k,i),則定義該音頻屬于第i類的可信度為:
(2)單方法分類結(jié)果的融合。在本實(shí)驗(yàn)中,MFCC的預(yù)測結(jié)果的準(zhǔn)確度最高,其余方法的結(jié)果則不盡人意,故采用了一種偏向于MFCC預(yù)測的融合方式。其思路如下:
if any(PMFCC(i)>thresh)
P=PMFCC
else
P=λ*PMFCC+LDTW+α*PNL+β*PTF
end
其中:P是融合后的分類可信度;P(i)表示音頻屬于第i類鳥的可信度。使得P(i)達(dá)到最大值的i即為分類結(jié)果。閾值thresh、系數(shù)λ、α、β均為待確定的參數(shù)。通過在發(fā)展集上調(diào)整它們的取值進(jìn)行測試,獲得了一組最佳的參數(shù),并將這組參數(shù)用于測試集上。
利用北京的常見鳥類名錄[14],并從在線數(shù)據(jù)庫[15]上下載了11種北京常見鳥的鳴叫音頻,分別是紅頭鴿、布谷鳥、麻雀、黑嘴天鵝、紅隼、家燕、領(lǐng)月胸竄鳥、喜鵲、小美洲黑雁、小嘴烏鴉和云雀。該網(wǎng)站的音頻均由鳥類愛好者在現(xiàn)實(shí)環(huán)境中錄制,背景音多、噪音來源豐富。通過人工確認(rèn)了音頻內(nèi)沒有其他鳥類的聲音,并選取了背景噪聲較小的音頻,最終為每種鳥下載了約20段音頻,一共收集了253個音頻作為數(shù)據(jù)集。
數(shù)據(jù)集被劃分為訓(xùn)練集(train set)、發(fā)展集(development set)和測試集(test set)。對于每種鳥,屬于訓(xùn)練集、發(fā)展集和測試集的音頻數(shù)分別占音頻總數(shù)的80%、10%和10%。
svm分類器的核函數(shù)為rbf,rbf_sigma參數(shù)分別嘗試了1,2,2.5,3,4,在發(fā)展集上的準(zhǔn)確度表現(xiàn)如表1所示。
表1 不同rbf參數(shù)下MFCC特征分類的準(zhǔn)確率
可以看出,當(dāng)rbf_sigma=2,2.5,3,4時準(zhǔn)確率表現(xiàn)一致,只在每一個音頻的投票結(jié)果上有區(qū)別,選擇投票準(zhǔn)確率相對較高的rbg_sigma=2的模型在測試集上測試,得到的準(zhǔn)確率為84.00%。
svm分類器的核函數(shù)為rbf,rbf_sigma參數(shù)分別嘗試了1,2,2.5,3,4,在發(fā)展集上的準(zhǔn)確度表現(xiàn)如表2所示。
表2 不同rbf參數(shù)下SVM分類器和線性分類器的準(zhǔn)確率
可以看出,當(dāng)rbf_sigma=1,2時準(zhǔn)確率表現(xiàn)一致且最高,只在每一個音頻的投票結(jié)果上有區(qū)別,選擇投票準(zhǔn)確率相對較高的rbg_sigma=2的模型在測試集上測試,得到的準(zhǔn)確率為36.00%。
利用leave-one-out交叉驗(yàn)證法,得到分類準(zhǔn)確率為25.30%。其中布谷鳥和麻雀的分類效果最差,準(zhǔn)確率分別為4.35%和10.53%;云雀和小美洲黑雁的分類效果最好,準(zhǔn)確率分別為52.00%和48.00%。模板匹配的分類效果很大程度上依賴于音節(jié)的提取,由于本文采取了自動的音節(jié)提取方式、而非人工選取,所以難免出現(xiàn)錯誤,這可能是分類效果不佳的原因之一。
選取隨機(jī)森林中樹的個數(shù)ntree=300,其余參數(shù)在實(shí)驗(yàn)中調(diào)節(jié),對于測試音頻采用分割預(yù)測投票的方式進(jìn)行判決,得到分類準(zhǔn)確率為52%。
經(jīng)過在發(fā)展集上進(jìn)行測試,得到了最優(yōu)的參數(shù)組合:thresh=0.6,λ=11,α=3.3,β=0。在測試集上的實(shí)驗(yàn)結(jié)果顯示,聯(lián)合判決結(jié)果的準(zhǔn)確率達(dá)到92.00%,高于所有單一方法。標(biāo)簽融合(label fusion)實(shí)現(xiàn)了各方法間的優(yōu)勢互補(bǔ)。
本文基于4種不同的特征提取方式,采用多分類器集成技術(shù)實(shí)現(xiàn)了對鳥聲高準(zhǔn)確率的預(yù)測和識別功能。在系統(tǒng)設(shè)計過程中,模型的建立和參數(shù)的選擇是主要問題,本文通過對相關(guān)文獻(xiàn)的調(diào)研和嘗試,最終選取了一種適合分類且效果好的參數(shù)。實(shí)驗(yàn)證明了該算法的有效性。