杜曉冬 滕光輝 劉慕霖 趙雨曉 周振宇 祝鵬飛
(1.新希望六和股份有限公司, 北京 100102; 2.中國農業大學水利與土木工程學院, 北京 100083)
畜禽發聲是其行為的基本組成部分,通過識別動物聲音可以輔助判斷其健康或疾病狀況[1]。近年來,國內外研究學者針對畜禽動物發聲檢測這一熱點問題,開展了一系列研究,嘗試關聯動物發聲和動物健康、動物福利、動物生理等信息,提出了一系列借助非接觸式、數字化、智能化等手段監測和管理農場動物的方法。例如:通過蛋雞發聲評估熱應激狀態[2],健康家禽發聲識別[3-5]和家禽疾病聲音辨識[6-8],肉雞啄食聲音監測評估采食量情況[9-11],牛、羊呼吸道疾病監測[12-14],豬咳嗽聲監測[15-18]等研究。
基于機器學習經驗模型方式的動物聲音信號識別是目前的主流方式,大致分為兩步:第1步為特征工程,通過提取動物聲音信號中適合的特征,例如:時域信號時長、短時過零率、功率譜、線性預測倒譜系數等,來量化模擬信號的特征;第2步為分類識別,基于提取的特征進行不同類型聲音的建模,用該模板來匹配不同聲音目標來實現動物發聲識別。除了經典的經驗分類模型外,基于深度學習和卷積神經網絡(Convolutional neural network, CNN)的動物聲音識別方法是近年來研究者關注的熱點之一。深度神經網絡在圖像、語音等領域均得到了廣泛應用,通過卷積神經網絡模型可以對原始聲音信號實現信號端到端的分類識別,而非經典模型的“兩步走”方法,將特征工程和分類建模有效結合,極大地節約了學習建模的時間,因此該技術受到了很多研究者的關注[19-20]。同時,卷積神經網絡在處理數據速度和識別性能方面比其他經典機器學習模型有一定提升。
深度學習技術可實現信號輸入端到分析結果輸出端的信號快速檢測,并且深度學習模型的抗噪能力較強。針對種雞舍內復雜的背景聲環境,識別個體繁多的動物聲音也是本研究領域的巨大難題之一[21]。而深度學習技術非常適用于現有規模化養殖環境中動物聲音的動態監測,以解決多變的背景噪聲環境下的動物多樣化聲音的識別難題。本研究基于輕量級卷積神經網絡快速建立種雞聲音辨識模型,以解決種雞舍內復雜聲音背景下的動物多樣化聲音的識別問題,為后期研究種雞福利的評價系統提供理論基礎。
20世紀60年代,美國Bell實驗室首次提出了聲紋(Voiceprint)的概念,驗證了不同人具有不同的語譜圖,這為通過聲譜圖辨識聲音信號提供了理論研究基礎[22]。聲譜圖是一種三維感知圖,描述了聲音信號中的時間、幅值和頻率3個維度信息之間的變化關系,一般情況下聲譜圖橫軸坐標為時間,縱軸坐標為頻率,信號中不同頻率幅值(振幅或功率)在圖像中一般用不同的灰度或顏色來表示[4],例如:灰度或顏色的數量級越大,則表示聲音信號在某一時刻的某一頻率分量越大。
梅爾頻率特征被廣泛應用在動物發聲識別研究中,且具有較好的魯棒性和抗噪聲能力[4]。梅爾頻率特征可利用Python的第三方庫librosa的庫函數自動獲取,librosa是一個非常強大的Python語音信號處理的第三方庫[23]。本研究方法調用librosa 0.8.1庫函數中的melspectrogram()獲取Log-Mel特征圖,研究對象種雞聲音信號的采樣頻率為16 kHz,該特征方法選取的幀長為2 048,相鄰幀之間的重疊率為50%,默認窗函數為漢寧窗,Mel濾波器組數設置為128[24]。各類型聲音的語譜圖如圖1所示。

圖1 Log-Mel特征圖Fig.1 Spectrograms of Log-Mel feature
將原始聲音信號統一轉換為梅爾特征圖數據集,其中每幅圖像的尺寸為360像素×360像素,最終選取各類別的聲音樣本片段合計1 500個,每個片段時長截取為1 s,考慮到不同時長的音頻片段轉成特征圖后再歸一化會產生圖像中聲紋線的形變,影響聲音識別結果,本研究僅考慮統一時長和尺寸的情況。其中,隨機抽取80%的特征圖作為訓練集建立分類模型,其余20%的數據集樣本作為測試集,用于驗證該輕量級卷積神經網絡模型的識別性能[4]。
訓練數據作用是學習優化分類,使模型預測結果和實際分類結果之間的誤差最小化。本研究識別聲音類型數量n為5,即5類聲音,包括:飲水聲、應激叫聲、鳴叫聲、產蛋叫聲、風機噪聲,設計輕量級卷積神經網絡模型中卷積核尺寸為5×5,dropout為0.2,設置dropout的原因是避免模型訓練過擬合,特征圖輸入通道數為3,即RGB三通道。第1層卷積的卷積核個數為32,第2層卷積的卷積核個數為64,輸入到CNN網絡的圖像數據類型是4維數組,第1維為訓練數據量為32,即訓練圖像塊的大小為32,第2、3維為聲譜圖的圖像尺寸,第4維為圖像輸入通道數。x和y分別為圖像數據和圖像標簽。
本文構建的輕量級卷積神經網絡模型結構圖如圖2所示。

圖2 CNN網絡結構圖Fig.2 CNN network structure diagram
CNN網絡結構中的激活函數選取ReLU函數,其數學公式為

(1)
式中x——輸入值
選取交叉熵損失函數(Softmax函數)來計算網絡的損失值(Loss),AdamOptimizer作為優化器來迭代學習訓練,假設神經網絡的原始輸出為y1、y2、…、yn,那么經過Softmax回歸處理后輸出為
(2)
式中yi——神經網絡輸出值
n——神經網絡輸出值維度
經過Softmax處理后,將單個節點的輸出結果變成一個概率值,作為神經網絡最后的輸出。借助深度學習強大的特征學習能力訓練聲音的辨識模型,經過500次迭代(Epoch),學習率(Learning rate)為0.000 1。
采用準確率(Accuracy,A)、精確率(Precision,P)、召回率(Recall,R)和平衡F1值(Balanced score F1)來評價種雞發聲分類識別性能[12]。
試驗數據來自于中國農業大學上莊試驗站模擬雞舍,研究對象為6羽海蘭褐父母代種雞,35~36周齡,飼養模式為網上平養,飼養空間長1.50 m、寬1.35 m、高1.50 m。試驗平臺包括飲水線、產蛋箱以及料槽等,雞只隨意采食和飲水,試驗階段光期為06:00—22:00,試驗期間環境溫度在15.0~18.0℃之間,溫度數據來自于舍內安裝的JWSH-515S-AC型溫濕度一體傳感器,其溫濕度探頭來自瑞士Rotronic公司。

圖3 試驗平臺示意圖Fig.3 Schematic of test platform
聲音數據采集平臺選用美國微軟公司的Kinect for Windows v1型嵌入式麥克風陣列(4通道同步采集、32位分辨率、16 kS/s采樣頻率),設備安裝在飼養區域正上方高1.8 m的位置,錄音軟件采用美國國家儀器公司(National Instruments, NI)的LabVIEW虛擬儀器平臺,利用LabVIEW聲音工具包模塊(Sound and vibration assistant, SVM)編寫音頻采集程序,單聲道采集,音頻連續采樣,采樣周期55 s,數據以*.wav格式存儲,Kinect設備通過1個USB數據線連接端口至小型工控機進行數據傳輸,大量數據存儲需外接2 TB USB 3.0移動硬盤(圖3)。各類型聲音采用人工方式進行標記,標記方法參照文獻[12],采集的音頻數據利用Python 3.7軟件以及Tensorflow
1.15.0、Skimage、Librosa 0.8.1等進行端到端的聲音信號處理和分析。
本研究基于輕量級卷積神經網絡建立算法模型,識別外界聲源,如風機噪聲、飲水聲,以及海蘭褐種雞的不同類型聲音,表1為不同聲音類型的定義。

表1 種雞舍內不同類型聲音的定義Tab.1 Definition of different types of sounds in breeder house
基于輕量級卷積神經網絡模型對不同聲音類型的識別結果見表2,表2增加了文獻[4]中經典算法模型(Gabor特征模型)的判別結果作為對比。從表2中可以看出,風機噪聲、飲水聲、產蛋叫聲的召回率最高,均為100%,應激叫聲的召回率最低,為88.3%,分析原因可能是不同的應激源導致動物的不同應激叫聲,本研究沒有對應激源進行進一步劃分,統一定義為種雞應激叫聲,風機噪聲和飲水聲的聲譜圖中聲紋變化單一,比較容易區分[25];風機噪聲、產蛋叫聲精確率參數最高,均為100%,鳴叫聲的精確率最低,為90.0%;風機噪聲、產蛋叫聲F1值最高,均為100%,鳴叫聲F1值最低,為90.0%,分析原因可能是鳴叫聲聲譜圖的聲紋變化較多,沒有固定的匹配模板。從表3來看,因為鳴叫聲和應激叫聲的聲紋變化較多,它們也最容易被誤判為其他類型聲音,并且它們相互之間的誤判率也是最高的。另外,因為每段音頻均為專業人員人工標記,所以識別結果與不同人的主觀判斷也有一定關聯。從表2、3中可以看出,產蛋叫聲、風機噪聲和飲水聲同其他類型聲音相比,界定相對清晰,較容易實現快速、準確的音頻標記;而應激叫聲和鳴叫聲則不容易實現準確的人工標記操作,部分鳴叫聲和應激叫聲之間存在混淆。

表2 CNN模型和Gabor特征模型識別率對比Tab.2 Comparison of recognition effect between CNN model and Gabor feature model %

表3 CNN模型不同聲音類型的分類混淆矩陣Tab.3 Confusion matrix of different types of sound

圖4 CNN模型訓練和測試的效果Fig.4 Training and testing results of CNN model
圖4為CNN模型訓練測試數據經過500次迭代學習后的效果,最終種雞發聲平均準確率可達95.7%,比文獻[4]研究方法的準確率提高3.7個百分點。總體來看,CNN模型幾乎在各類型聲音的識別上均優于文獻[4]中的反向傳播神經網絡模型。
試驗結果表明,本文提出的基于輕量級卷積神經網絡的方法適用于種雞舍內聲音的辨識,且比文獻[4]的識別性能有所提高,平均準確率可達95.7%,模型對飲水聲、風機噪聲、產蛋叫聲識別召回率均達到100%,其中風機噪聲和產蛋叫聲精確率和F1值也均達到100%。針對動物聲音識別方面研究大多僅區分2或3類聲音類型,聲音類型數量偏少,識別效果一般。而本文研究提出的CNN模型與國內外學者研究動物發聲識別結果相比,對種雞舍內常見的5類聲音具有較高的識別率,建模所用的聲音類型較多。而其他研究方法的識別率分別為78.0%~83.0%(監測家禽疾病發聲:支氣管炎、新城疫病等)[6]、79.4%~93.2%(監測家畜咀嚼、咬、反芻等5種行為)[26]、95.6%(識別豬咳嗽聲和非咳嗽聲)[16]、95.5%~97.3%(識別豬哼叫聲、受驚嚇聲、喂食前聲音)[20]、93.0%~97.4%(識別禽流感病毒感染雞的發聲和健康雞發聲)[8]、66.7%~88.4%(分類雞打噴嚏聲和其他聲音)[7]。
此外,卷積神經網絡模型的結構設計是影響識別準確率的一個相關因素,本文方法為輕量化模型,如果增加卷積核函數尺寸和卷積層數可能會提高識別率[8],但是同時將增加更多的計算時間,而選用成熟的卷積神經網絡模型因參數計算量大勢必會消耗更多內存,增加計算時長[16,20]。由此可知,未來需要根據具體研究目標和問題探索識別率和計算性能之間的關系,以尋求一個最佳的模型應用方案。
本文提出一種基于輕量級卷積神經網絡的種雞發聲分類識別方法,將一維聲音信號轉換為二維圖像信號,借助深度學習技術實現了信號輸入端到分析結果輸出端的聲音快速識別。該方法平均準確率可達95.7%,對比分析前人研究,本文方法對種雞舍內常見的5類聲音整體識別準確率提升3.7個百分點。該方法在理解動物行為和評價動物福利方面具有較高的研究價值。