黃福任,賈 博,徐洪東,李 楨,黃嬌嬌,潘慶杰*,董煥聲*
(1.青島農(nóng)業(yè)大學(xué)動物科技學(xué)院,山東青島 266109;2.平度市東閣動物衛(wèi)生與產(chǎn)品質(zhì)量監(jiān)督站,山東青島 266700)
羊是重要的農(nóng)業(yè)經(jīng)濟動物,在人們生活和農(nóng)業(yè)生產(chǎn)中具有舉足輕重的地位。由于大部分的羊?qū)儆诩竟?jié)性發(fā)情,繁殖效率不高,致使羊肉供應(yīng)不足。因此如何提高羊的養(yǎng)殖效率、繁殖性能以及實現(xiàn)福利化養(yǎng)殖成為研究熱點。羊的傳統(tǒng)發(fā)情鑒定方法通常為外部觀察、陰道檢查和試情[1],均需人工操作,在集約化養(yǎng)殖過程中受到人力、物力、財力等成本限制,進行大規(guī)模迅速排查的難度較大。利用高效的智能檢測手段代替繁瑣的人工操作,是現(xiàn)代互聯(lián)網(wǎng)技術(shù)與畜牧產(chǎn)業(yè)結(jié)合的重要發(fā)展方向之一,而“互聯(lián)網(wǎng)+”思維對現(xiàn)代化羊產(chǎn)業(yè)體系的發(fā)展起到了促進作用,帶動羊產(chǎn)業(yè)體系中智能化程度的深化與改革,進而推動著整個畜牧業(yè)迅速發(fā)展。從聲音識別的角度分析,可以利用數(shù)字化語言和聲音來反映動物狀態(tài)的變化。動物聲音作為辨別動物行為的主要信息,通過聲音表達情緒和狀態(tài),與同種群內(nèi)的其他個體進行聲音交流。相對于傳統(tǒng)的發(fā)情檢測方法來說,通過聲音檢測程序可以極大地提高羊發(fā)情鑒定工作的效率,對發(fā)情時機的把握更加準確,效率更高、刺激更小。本試驗通過Matlab 編寫程序,構(gòu)建模型,利用計算機技術(shù)識別母羊發(fā)情的叫聲,旨在提高母羊發(fā)情鑒別的效率。
1.1 試驗原理 通過Matlab 軟件對母羊發(fā)情信號的特征參數(shù)提取并進行分析,同時利用羔羊?qū)つ?、饑餓和飼料刺激的聲音進行對照,構(gòu)造母羊發(fā)情識別系統(tǒng)[2]。最大程度保證試驗?zāi)秆虻慕新曅盘柡退b別的行為保持一致。訓(xùn)練樣本和識別樣本都需要進行頻譜分析。通過聲音預(yù)處理、聲音分析、提取特征參數(shù),訓(xùn)練樣本提取特征參數(shù)進行模型訓(xùn)練,訓(xùn)練好的模型可以通過特征參數(shù)的分析對識別樣本一一對應(yīng)[3],從而得出識別結(jié)果。識別原理見圖1。
圖1 識別原理圖
1.2 羊聲音收集 試驗在山東省青島市嶗山奶山羊保育基地進行現(xiàn)場錄制。為了模擬現(xiàn)場環(huán)境,對40 只經(jīng)產(chǎn)嶗山奶山羊母羊進行自然錄制,包含訓(xùn)練樣本和識別樣本。錄取母羊發(fā)情、母羊饑餓、母羊受飼料刺激[4]和羔羊?qū)つ竅5]的叫聲。
1.3 羊聲音處理方式
1.3.1 羊聲音信號切割處理 將連續(xù)的聲音樣本切割為單獨的聲音,刪掉無用的成分。每個狀態(tài)隨機采用32段單獨的音頻信號,共計128 段聲音進行模型訓(xùn)練。
1.3.2 羊聲音預(yù)處理 通過3 個步驟對羊聲音進行預(yù)處理。第1 步為聲音去噪:先將其他信噪比[7]的高斯噪音混入,模擬含噪音的羊叫聲音的信號,利用小波閾值[6]的方法對聲音進行去噪處理,避免識別和分析精度不足。第2 步為端點檢測分析:利用雙門限端點檢測法[8],根據(jù)聲音信號的過零率和能量確定有效聲音在一整段聲音內(nèi)的位置,將每一幀的羊聲音信號進行短時平均過零率。標記一段聲音的起始點和終止點,提升分析的效率和準確性。第3 步為加窗分幀:通常會利用分幀加窗的方法切取頻譜特征相對較平穩(wěn)的聲音段。通過窗函數(shù)把聲音信號切分,以“幀”為單位。本試驗用到的窗函數(shù)為漢明窗[9]。
1.3.3 羊聲音分析 羊聲音信號的時域和頻域分析:通過時域和頻率[10]的分析對比4 種聲音的差異。時域分析是一段時間內(nèi)聲音幅度和時間的變化關(guān)系,即以時間為橫坐標、幅度為縱坐標的曲線圖;頻域分析是幅度和頻率的變化關(guān)系,即以頻率為橫坐標、幅度為縱坐標。將時域通過傅里葉變換可以得出頻域圖。
羊聲音信號能量對比:聲音信號能量[11]取決于錄音筆的采樣頻率。本試驗所用錄音筆的采樣頻率為48 000 Hz,也就是每一秒由48 000 個采樣點數(shù)組成。在同等距離和音高的情況下,可以進行能量分析,由程序計算出4種狀態(tài)下能量值。
1.3.4 羊聲音特征參數(shù)提取 特征參數(shù)的提取作為聲音識別最基本的一個步驟,會直接影響最終結(jié)果的精準度[12]。本試驗提取頻域的特征參數(shù)為線性預(yù)測倒譜系數(shù)(LPCC)和梅爾頻率倒譜系數(shù)(MFCC)[13],2 種方式都可以針對人耳的聽覺特點進行提取,與隱馬爾可夫模型[14](HMM)、支持向量機[15](SVM)和迭代算法[16](Adaboost)3 種聲音模型結(jié)合達到識別狀態(tài)的目的。無論是訓(xùn)練樣本還是識別樣本,都需要提取特征參數(shù),訓(xùn)練樣本需要提取特征參數(shù)進行模型訓(xùn)練,訓(xùn)練好的模型可以通過特征參數(shù)的分析對識別樣本一一對應(yīng),從而得出識別結(jié)果。
1.4 羊聲音識別模型 HMM 為語音識別領(lǐng)域應(yīng)用最為廣泛的模型。先對HMM 模型初始化處理,將隨機從羊聲音樣本中提取出的特征參數(shù)作為觀測序列,利用雙向計算算出訓(xùn)練得到的HMM 模型。將待識別的羊聲音信號輸入訓(xùn)練好的模型中,確定檢測序列是否與模型參數(shù)對應(yīng),最后識別并輸出結(jié)果。
SVM 通常用來對模型進行識別、分類和回歸分析。區(qū)別于其他的模型,SVM 的優(yōu)勢是在樣本較少、非線性分類識別的領(lǐng)域中可以較為準確地進行模式識別。
傳統(tǒng)的Adaboost 能夠應(yīng)對簡單的二分類算法識別,對若干個弱分類器進行訓(xùn)練,不斷糾正識別的錯誤率,通過訓(xùn)練樣本的權(quán)重調(diào)整訓(xùn)練結(jié)果,最終會將每一個弱分類器集合成為一個強分類器,然后進行二分類運算。
1.5 羊聲音模型優(yōu)選識別 為了達到最優(yōu)結(jié)果,將模型融合識別,能夠更加有效地提高識別的準確率,將最可靠的識別結(jié)果輸出定為優(yōu)選的標準,3 種模型的優(yōu)選過程見圖2。
圖2 3 種識別模型優(yōu)選示意圖
將3 種識別模型設(shè)為m1、m2、m3,最終識別的結(jié)果為r1、r2、r3。如若r1=r2=r3 時,結(jié)果被認定為r。若r1、r2、r3 各自識別的結(jié)果不統(tǒng)一,需算出雙模型識別的可靠性R,然后對比3 個模型可靠性R1、R2、R3的大小,最終選擇可靠性大的那個模型作為最終混合識別的結(jié)果進行輸出。
2.1 羊聲音去噪效果 為觀測和計算去噪效果,插入一定信噪比噪聲,噪聲相對于信號一樣大,信號會被淹沒。為了算出去噪效果,引入相對均方根誤差(RRMSE)的概念,計算各種噪音環(huán)境下去噪的效果[10]。當(dāng)RRMSE 計算所得值越趨向于0,誤差越小,得到的去噪的聲音越優(yōu)質(zhì)。將分別為-20、-10、0、10、20 dB的信噪比插入一段羊發(fā)情的信號做小波閾值的去噪,RRMSE 值分別為0.896 8、0.275 0、0.102 6、0.058 5、0.029 9(圖3)。
圖3 在不同信噪比下去噪后的RRMSE
2.2 羊聲音端點檢測效果 圖譜(圖4)中左邊的豎線表示聲音的起始點,圖譜右邊的豎線表示聲音的終止點。因此,在2 條豎線中間的信號部分為此段聲音中母羊發(fā)情的叫聲,而前后豎線外的聲音為無效的聲音,將待識別的有效聲音剪切出來。
圖4 羊聲音端點檢測效果圖
2.3 羊聲音信號的時域和頻域分析結(jié)果 通過羊4 種狀態(tài)的聲音信號頻域分析發(fā)現(xiàn),母羊發(fā)情和羔羊?qū)つ感盘柧哂酗@著差異,但飼料刺激與饑餓刺激差異很小,在錄制過程中,也存在2 種聲音無法有效分開的情況,所以在分析時,將飼料刺激和饑餓一并分析。從分析結(jié)果中可以看出,母羊發(fā)情聲音信號與其他2 種聲音的時域和頻域各數(shù)值均有顯著差異,可用于聲音的識別(圖5、圖6)。
圖5 羊不同狀態(tài)下聲音的持續(xù)時間對比
圖6 羊不同狀態(tài)下聲音的頻率對比
2.4 羊聲音信號能量對比結(jié)果 在同等距離和音高的情況下由程序進行能量分析,發(fā)情叫聲的能量顯著高于羔羊?qū)つ傅穆曇裟芰?,極顯著高于飼料刺激、饑餓刺激的聲音能量(圖7)。
圖7 羊不同狀態(tài)下聲音的能量值對比
2.5 羊聲音識別的單模型試驗結(jié)果及優(yōu)選結(jié)果 選取錄制的4 種聲音信號各120 段進行識別,并通過程序分析統(tǒng)計出準確率。由表1 可見,相較于SVM、Adaboost模型,HMM 模型的準確率更高,母羊發(fā)情聲音識別的準確率達到了93.34%。在3 模型優(yōu)選結(jié)果中,母羊發(fā)情叫聲的識別相較于其他聲音的準確率更高,達到了96.67%。
表1 母羊發(fā)情、羔羊?qū)つ?、飼料刺激和饑餓單模型識別精度
本試驗利用3 種聲音識別模型分析4 種狀態(tài)下的聲音信號,并通過程序?qū)ρ蚪新曔M行信號分析和自動識別發(fā)情叫聲,并優(yōu)選出結(jié)果。編寫的程序具備聲音識別的可行性,在實驗室中測試能夠統(tǒng)計出識別效果的準確率,但在聲音收集過程中,飼養(yǎng)環(huán)境、人為鑒別經(jīng)驗等因素導(dǎo)致誤差無法避免,在一定程度上會影響結(jié)果的準確率。在錄制時聲音信號中包含現(xiàn)場產(chǎn)生的不同程度噪音。在聲音去噪時能夠達到針對不同的干擾源智能選擇聲音去噪的效果,在聲音信號處于疊加狀態(tài)時能夠進行有效分離,在饑餓和飼料刺激的聲音收集和分析時尋找區(qū)分2 種狀態(tài)差異的有效方式,仍是需要深入研究和探討的重點。
本試驗主要針對嶗山奶山羊進行聲音收集,若在擴大識別范圍的同時增強聲音識別的針對性,提高程序的功能性,還需要利用更多品種的山羊進行程序訓(xùn)練和測試。Matlab 編寫好的程序要跨平臺運行需要非??量痰倪\行環(huán)境,為了便于精準把控發(fā)情監(jiān)測時機,將本試驗中編寫好的程序完全移植進入更加便攜的移動端進行現(xiàn)場檢測分析,在程序的操作運行方面還有待改進。
從動物行為學(xué)的角度分析,可以通過叫聲分辨出羊的多種狀態(tài)。4 種狀態(tài)下,饑餓和飼料刺激產(chǎn)生的聲音未有效分開,發(fā)情叫聲最顯著,釋放的信號更大。
在3 種單模型中,HMM 識別效果最穩(wěn)定,母羊發(fā)情的識別準確率最高達到93.34%。Adaboost 在識別樣本數(shù)較少的模型中效率高,但模型增多會導(dǎo)致識別效率降低等。將3 種模型進行結(jié)果優(yōu)選,母羊發(fā)情的識別準確率達到96.67%,在實驗室環(huán)境下,能夠達到預(yù)期識別效果。