?

基于SVM算法的豬聲音識別的研究

2017-06-05 16:27張棲銘袁瑞臨范凡王峰
電腦知識與技術 2017年10期

張棲銘 袁瑞臨 范凡 王峰

摘要:為了實現豬只不同狀態下的自動檢測,試驗采用聲音識別技術,設計了基于支持向量機算法(SVM)的聲音識別方法,首先通過短時過零率和短時能量的端點檢測,確定豬只不同狀態的聲音信號的起始點和終止點,然后提取聲音信息的梅爾頻率倒譜系數作為特征參數,使用SVM算法進行訓練,建立聲音的分類模型,最后對豬只不同狀態進行識別。結果表明:豬只狀態識別精度較高,達到了預期效果。

關鍵詞:聲音識別;SVM;MFCC;端點檢測

中圖分類號:TP391

文獻標識碼:A

文章編號:1009-3044(2017)10-0162-03

動物發聲是動物行為的一種方式,可以通過叫聲與其他成員進行有效交流,它能反映動物的生理狀況如饑餓、疼痛、情緒狀態等,因而基于動物聲音的狀態識別是有一定事實基礎的。并且,隨著計算機技術和數字信號處理技術的發展,聲音識別技術已經取得了顯著進步,動物的聲音識別技術也得到了一定的發展。

因為豬只的聲音信息可以很好的反饋豬只的狀態,因此,本試驗采用梅爾倒譜系數(MFCC)作為豬只聲音的特征參數,然后將提取的特征參數,用來建立支持向量機(SVM)的分類模型,最后對不同狀態的豬只聲音進行識別,為規?;酿B豬業提供客觀的豬只狀態監測。

1.算法介紹

1.1聲音信號的端點檢測

端點檢測,聲音處理中的一個重要方面,其作用是從包含聲音的一段信號中確定出聲音的起始點及終止點,區分聲音和非聲音信號。有效的端點檢測不僅可以減少數據處理量,節約時間,而且能抑制無聲段或噪聲段的干擾,提高聲音信號質量。利用短時能量和短時過零率進行雙門限的端點檢測。

短時能量是聲音的一個重要的特性,對聲音的能量分析主要集中在短時能量上。短時能量的定義如下:

1.2聲音識別特征參數的提?。∕FCC)

聲音信號特征的梅爾倒譜系數(MFCC)法,是基于聽覺特性的特征參數:不同頻率的聲音,在人耳內基礎膜的不同位置振動。所以人耳就可以很容易辨別出各種狀態的聲音,此參數作為豬聲音的識別參數能更好地反應各種聲音信號的特性,從而極大地提高整個系統魯棒性和系統的識別率。

MFCC參數主要描述了聲音信號在頻域的能量分布,Mel頻率的大小與實際頻率呈對數分布。下式即為Mel頻率與聲音頻(Hz)的關系式:

以兩種豬只狀態的聲音為例,得到MFCC參數如圖1,可以從圖中看出,不同狀態的豬只聲音的特征參數有明顯的區別,用此參數可以區別不同豬只狀態。

1.3SVM算法

支持向量機(Support Vector Machine,SVM)是Vapnikm等人提出的一類新型機器學習方法。由于支持向量機在解決小樣本問題、非線性問題及高維空間內的模式識別問題的時候有很多優點,所以其被廣泛使用。

目前實行支持向量機的軟件方法有Libsvm、Liblinear、mvs-VM、SVMlight等方法。中國臺灣大學的林智仁(Chih-Jen Lin)教授等人設計了Libsvm軟件,已經在多個操作系統平臺上實現了支持向量機。該軟件整合了交叉驗證(Cross-Validation)的功能,能夠方便地優化參數。利用Libsvm可以解決C支持向量分類機、v支持向量分類機、s支持向量回歸機和v支持向量回歸機等問題,以及基于1-v-1算法的多分類問題。

本試驗中支持向量機采用的是Libsvm算法。Libsvm算法中的訓練分類函數可以選擇支持向量機的不同訓練模式,其中,Option參數為訓練分類模型的參數??捎眠x項即表示涵義如下:

2.實現豬只狀態的識別

豬只的患病、爭斗以及食欲情況都反映其生理健康狀況。試驗根據畜牧養殖從業人員的實際經驗,選取了5種可以體現上述行為狀態的豬只聲音信息:小豬被壓、豬打架、豬饑餓、豬吃料、豬咳嗽,作為本次試驗的聲音樣本。

2.1豬聲音識別流程

將采集到的五種豬只聲音,一部分作為訓練集,首先對聲音信息進行預處理,即預加重、分幀、加窗;然后對聲音進行雙門限的端點檢測,確定聲音的起始點;將處理后的聲音通過mel倒譜系數法提取聲音特征值。將提取到的特征值通過SVM算法訓練得到分類模型(model)。將其中一種豬只聲音作為測試集,通過MFCC特征提取后,使用SVM算法分類預測出豬只狀態。

圖2是豬聲音識別流程。

2.2程序分析結果

Option選項中,-c和-g決定了分類效果,通過交叉驗證選擇最佳參數-c和-g。我們得到的最佳參數是:

-c=0.125;-g=0.0078125。

采用參數-c與-g對整個訓練集進行訓練獲取支持向量機模型;訓練得到的model參數:

分類模型(model)中主要參數說明:

(1)model.Parameters參數分別表示為:-s參數為0,為C-SVC函數;一t參數為2,采用RBF函數;-d參數為3;-gr(gama)為0.0078(優化得到的參數);-r coefO參數為0.

(2)model.Label表示訓練數據的分類標簽,本試驗采用的是l,2,3,4,5。

(3)model.nr_class表示訓練數據的分類個數,本試驗是五分類。

(4)model.totalSV表示訓練樣本共有的支持向量數目,試驗結果表明,共有1476個支持向量。

(5)model.nSV表示每類訓練樣本的支持向量的數目,分別是:標簽為1的訓練樣本的支持向量數目有313個,標簽為2的訓練樣本的支持向量數目有299個,標簽為3的訓練樣本的支持向量數目有372個,標簽為4的訓練樣本的支持向量數目有364個,標簽為5的訓練樣本的支持向量數目有128個。

通過svmpredict函數對測試集進行識別預測。得表2識別結果,包含待識別豬只狀態和識別準確率。

3.結論

試驗設計了一種基于聲音的豬只狀態識別方法,通過短時能量和短時過零率的端點檢測,選擇梅爾倒譜系數作為聲音特征參數,以SVM算法作為分類器識別預測5種狀態下的豬只異常聲音,識別準確率較高。但本試驗訓練數據不足,且預測環境較為理想,因此有很多地方需要改進。一方面需要增加訓練數據量,另一方面,進一步研究現場環境中混雜在一起的各種豬聲音以及噪音的問題,通過以上方法來提高系統的準確率及實用性。

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合