謝 捷,江 昆,羅 展,胡 凱,吉訓(xùn)生
(江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院,江蘇 無錫 214122)
近年來,伴隨著經(jīng)濟與社會的迅速發(fā)展,我國的家禽養(yǎng)殖業(yè)生產(chǎn)規(guī)模不斷擴大,據(jù)聯(lián)合國糧農(nóng)組織資料統(tǒng)計,2010年我國禽蛋產(chǎn)量為2 616萬t,占世界總產(chǎn)量的43.26%,其中雞蛋產(chǎn)量2 233.3萬t,占世界雞蛋總產(chǎn)量的40%[1]。據(jù)《2013年度中國家禽業(yè)發(fā)展報告》指出,我國蛋雞飼養(yǎng)規(guī)模與產(chǎn)能居世界第一[2]。然而,由于疾病與壓力的影響,家禽養(yǎng)殖業(yè)每年都面臨著巨大的威脅,其中,傳染性疾病是最大的威脅之一。
作為人類重要的肉類與蛋類食物來源,人們對雞的健康狀況密切關(guān)注。因此,如果能夠提前發(fā)現(xiàn)疾病并消滅,可以有效地減少經(jīng)濟損失。然而,許多養(yǎng)殖場的工作人員并不是專業(yè)的飼養(yǎng)專家,難以在早期發(fā)現(xiàn)感染疾病的雞并實施處理。因此,研究家禽疾病早期自動化檢測方法非常重要。隨著信息技術(shù)的發(fā)展,傳統(tǒng)農(nóng)業(yè)技術(shù)和人工智能技術(shù)的融合將成為未來農(nóng)業(yè)發(fā)展的趨勢。 Whitaker[3]通過對輸入光譜圖的多列采樣,然后使用正則化最小二乘優(yōu)化,將譜圖的列向量轉(zhuǎn)化為稀疏系數(shù)向量,最后利用支持向量機(support vector machine,SVM)識別健康的雞與感染支氣管炎的雞。Lee等[4]首先使用基于關(guān)系的特征選擇方法對時域與頻域中的特征進行選擇,去除相關(guān)性較低的特征,最后使用SVM對有壓力的雞與健康雞的叫聲進行分類。
目前雞鳴研究中,依然采用手動方式獲取雞鳴片段,然而,采用手工獲取雞鳴的手段難以應(yīng)用在自動化雞鳴監(jiān)測系統(tǒng)中。針對自動化雞鳴監(jiān)測系統(tǒng),每個聲音傳感器每天都會產(chǎn)生大量的數(shù)據(jù),然而自動采集的數(shù)據(jù)中,研究人員只對含有雞鳴的聲音片段感興趣,需要從背景噪聲中識別雞鳴進而提升監(jiān)測系統(tǒng)的性能。因此,研究開發(fā)雞鳴自動識別方法尤為重要。曹晏飛,陳紅茜等人[5]以含有風機噪聲的海蘭褐蛋雞的聲音片段和風機噪聲片段為研究對象,基于含有風機噪聲的海蘭褐蛋雞的聲音片段有效幀的最小幀功率顯著大于風機聲音片段,由此提出通過閾值對兩者進行分類。然而,基于閾值的分類方法通常對環(huán)境噪聲非常敏感,同時傳感器設(shè)備位置通常是固定的,傳感器采集的雞聲能量隨著雞的移動而發(fā)生變化。
本研究中,以采集的雞鳴、含有風機噪聲的雞鳴和風機噪聲為研究對象,構(gòu)建雞鳴識別系統(tǒng)。具體地說,首先連續(xù)的雞鳴數(shù)據(jù)被分割為長度相同音頻片段;其次,針對每個音頻片段,提取梅爾頻率倒譜系數(shù)為特征;最后,采用五折交叉驗證的方式,使用SVM與功率譜閾值方法識別采集的雞鳴、含有風機噪聲的雞鳴和風機噪聲。
本文的所有數(shù)據(jù)集均從Freesound[6]網(wǎng)站上下載,F(xiàn)reesound是個免費的音頻分享網(wǎng)站,很多的音頻愛好者會在上面分享自己的作品,其聲音來自于世界各地,各種不同的場景,如菜市場,養(yǎng)雞場等,具有非常好的代表性。對于數(shù)據(jù)集,首先,連續(xù)的音頻數(shù)據(jù)被分割為長度10 s的音頻片段(不足10 s的進行補零處理),其次,將聲音片段統(tǒng)一轉(zhuǎn)換為單通道,如式(1)所示。
(1)
其中,Sleft、Sright與Ssingle分別為左聲道、右聲道與單通道信號。采樣率為16 KHz,采樣位數(shù)為16位的WAV文件。在真實的大型養(yǎng)雞環(huán)境中,噪聲的類型有很多,如通風系統(tǒng)噪聲、飼喂系統(tǒng)噪聲、清糞系統(tǒng)噪聲、集蛋系統(tǒng)噪聲等,其中最主要的噪聲來源是通風系統(tǒng)。因此,以含有風機噪聲的雞聲音頻片段與風機噪聲音頻片段為研究對象,構(gòu)建實驗數(shù)據(jù)集,獲取500個雞鳴片段與500個風機噪聲片段。
本研究采用的聲音片段包含雞鳴片段與風機噪聲片段,在實際雞養(yǎng)殖環(huán)境中,通常雞鳴和風機噪聲混合在一起,因此,為了符合實際的養(yǎng)殖環(huán)境,對于每個雞鳴片段添加風機噪聲片段(隨機挑選538個風機噪聲片段),并設(shè)置添加風機噪聲后的雞聲片段的信噪比(5 dB、0 dB、-5 dB),獲取含有風機噪聲的雞鳴片段。
前期的聲音識別研究中,大量的音頻特征被提出,包括:時域特征,如最大信號值、標準差、均方根等;頻域特征,如子帶功率比、平均頻率、最大功率等;時頻域特征。然而在構(gòu)建特征集時,特征過少會引起信息提取的不充分,特征過多導(dǎo)致分類器算法復(fù)雜度提升,進而降低模型的泛化能力,因此,需要兼顧特征維度和模型性能構(gòu)建合適的特征集。在本文中,梅爾頻率倒譜系數(shù)(Mel-Frequency Cepstral Coefficients,MFCCs)作為分類的特征。由于其可以反應(yīng)較為真實的聲音信息,并具有合理的計算復(fù)雜度,MFCCs在聲音識別中得到了廣泛應(yīng)用[7]。在本文中,首先提取13維的MFCCs特征,并計算其一階與二階差分,以描述雞鳴的動態(tài)特征,最終,得到了39維的特征向量。
針對每個聲音片段,提取MFCCs特征,然后分別采用KNN和SVM對采集的雞鳴、含有風機噪聲的雞鳴和風機噪聲進行識別。前期實驗表明,對于KNN最優(yōu)的N為1[8];對于SVM參數(shù)的調(diào)優(yōu)使用每次只改變其中一個變量的方法,依次得到每個參數(shù)的相對最優(yōu)值,調(diào)優(yōu)結(jié)果為C=5,kernel=‘RBF’。
本次實驗,數(shù)據(jù)集被劃分為5等份,其中,訓(xùn)練集占60%,驗證集與測試集分別占20%,然后使用五折交叉驗證獲取平均結(jié)果。
對于雞鳴識別模型,本文使用13維MFCCs作為特征,分別使用SVM與KNN作為識別器訓(xùn)練出一個模型,此時,2個模型均獲得了100%的分類準確率,表明了該模型在雞鳴識別任務(wù)中的有效性。同時,為了評估該模型對噪聲的魯棒性,在雞鳴音頻中混入風機噪聲,信噪比分別為-5dB、0dB與5dB,使用KNN與SVM分類器識別雞鳴、風機噪聲與帶有風機噪聲的雞鳴3種類別的聲音,實驗結(jié)果如表1所示。
表1 試驗?zāi)P驮诓煌肼晽l件下的分類性能
實驗表明,在不同的噪聲信噪比條件下,該模型最低準確率為95.13%。在-5 dB條件下,使用SVM分類器最高獲得了98.07%的分類準確率,表明所提出模型對于風機噪聲具有良好的抗噪性能。
為了進一步分析模型的分類結(jié)果,分別計算出不同分類器在不同噪聲條件下的混淆矩陣如圖1所示。
圖1 不同信噪比下,不同模型的混淆矩陣
實驗表明,對于SVM分類器,該模型更容易將帶有風機噪聲的雞鳴誤分類為雞鳴。對于KNN分類器,更容易將帶有風機噪聲的雞鳴誤分類為風機噪聲。然而,使用MFCC特征,可以有效地將風機噪聲與雞鳴區(qū)分出來,無論是無噪聲的雞鳴或帶有風機噪聲的雞鳴。在實際養(yǎng)殖環(huán)境中,聲音采集一般為連續(xù)錄音,通過本文提出的模型可以有效地識別出含有雞鳴的音頻片段,克服人工篩選的缺點。
針對實際肉雞養(yǎng)殖環(huán)境中存在的風機噪聲問題,本文提出一種基于梅爾頻率倒譜系數(shù)的雞鳴識別方法。首先,將獲得的連續(xù)音頻格式化為16 KHz采樣率、16位深度與長度10s的音頻片段。之后,對每一音頻段提取13維梅爾倒譜系數(shù)作為特征,使用輕量級分類對雞鳴與風機噪聲進行分類,獲得了100%的分類準確率。之后,為了進一步評估模型對風機噪聲的魯棒性,將雞鳴與風機噪聲混合,測試了模型在5 dB、0 dB與-5 dB噪聲條件下的表現(xiàn)。實驗結(jié)果表明,該模型在此噪聲條件下最低獲得了95.13%的分類準確率,同時,通過分析模型的混淆矩陣可知,該模型可有效地區(qū)分風機噪聲與雞鳴,無論是無噪聲的雞鳴或混有風機噪聲的雞鳴,可有效提升實際聲音分析中篩選雞鳴片段的效率。