祁飛 武佩 宣傳忠 馬彥華 鄔娟
摘 要:近年來對(duì)于聲音信號(hào)處理的技術(shù)日趨成熟,其中運(yùn)用Matlab進(jìn)行聲音信號(hào)處理的研究和實(shí)驗(yàn)越來越多[ 1 ]。本文主要通過Matlab軟件建立針對(duì)羔羊的尋母聲音的分析系統(tǒng),分別對(duì)出生20天的山羊羔和綿羊羔的尋母聲音進(jìn)行多次采集,并對(duì)采集的聲音信號(hào)進(jìn)行時(shí)域分析和頻域分析。結(jié)果表明:同年齡山羊羔和綿羊羔尋母聲音信號(hào)所包含的信息存在一定的差異。此分析系統(tǒng)可以擴(kuò)展為其他不同年齡、種類羊的其他聲音信號(hào)進(jìn)行處理和特征值提取等。
關(guān)鍵詞:尋母叫聲;信號(hào)對(duì)比分析
內(nèi)蒙古自治區(qū)是以草原畜牧業(yè)為主的地區(qū),近年來開始了羊福利化養(yǎng)殖的研究[ 2 ],提出將自動(dòng)化、人工智能等技術(shù)領(lǐng)域與羊養(yǎng)殖技術(shù)相融合。
羊聲音信號(hào)的研究對(duì)羊福利化養(yǎng)殖很有意義,不同種類羊在做不同行為活動(dòng)時(shí)所發(fā)出的叫聲不同,可以通過提取其聲音信號(hào)中的特征來識(shí)別它的行為。
2013年,張彩霞、武佩、宣傳忠等人通過Labview對(duì)母羊產(chǎn)羔、尋羔、饑餓行為下的聲音信號(hào)進(jìn)行處理分析,發(fā)現(xiàn)母羊不同行為下的聲音信號(hào)基頻、功率譜等有明顯差異[ 4 ]。
2015年,宣傳忠,武佩,馬彥華等人發(fā)表了基于功率譜和共振峰的母羊發(fā)聲信號(hào)識(shí)別[ 7 ]的文章,分析了母羊在不同應(yīng)激行為下的發(fā)聲信號(hào)具有明顯差異的特征參數(shù),并采用共振峰參數(shù)訓(xùn)練的 BP 網(wǎng)絡(luò),其對(duì)母羊發(fā)聲信號(hào)的正確識(shí)別率為 85.3%,高于利用 AR 功率譜估計(jì)參數(shù)的 81.0%,當(dāng) 2 種參數(shù)進(jìn)行組合訓(xùn)練 BP 網(wǎng)絡(luò)后,其正確識(shí)別率可達(dá) 93.8%。
2016年,宣傳忠,武佩,張麗娜等人又對(duì)羊咳嗽聲信號(hào)進(jìn)行處理[ 5 ]并且提取特征值進(jìn)行識(shí)別,提出一種改進(jìn)的梅爾頻率倒譜系數(shù)(MFCC)。
近些年對(duì)于羊聲音信號(hào)的研究越來越豐富,但是依然存在研究的聲音信號(hào)類別、羊只種類和年齡較單一等問題。針對(duì)這一現(xiàn)狀,本文采用MATLAB軟件對(duì)羔羊聲音信號(hào)進(jìn)行分析及特征值提取。
MATLAB軟件是美國(guó)MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語言和交互式環(huán)境,它本身具有強(qiáng)大的函數(shù)功能,可以實(shí)現(xiàn)各種算法、創(chuàng)建用戶界面。主要應(yīng)用于圖像分析、控制設(shè)計(jì)、信號(hào)處理與通訊、信號(hào)檢測(cè)等領(lǐng)域。
目前基于Matlab的聲音信號(hào)研究較多,取得的研究結(jié)果較為理想。因此文采用Matlab作為開發(fā)平臺(tái),采用幼年山羊和綿羊?qū)つ附新曅盘?hào)為實(shí)驗(yàn)信號(hào),為日后開發(fā)一個(gè)針對(duì)羊聲音信號(hào)的自動(dòng)處理與識(shí)別系統(tǒng),也為日后進(jìn)一步對(duì)更多種類羊的更多應(yīng)激行為下聲音的處理與分析提供了數(shù)據(jù)基礎(chǔ)。
一、聲音信號(hào)處理技術(shù)路線
二、聲音信號(hào)采集
羊最頻繁發(fā)出叫聲的時(shí)期就是第一季度的產(chǎn)羔期,這期間的羊最為活躍愛叫。因此本文選擇此期間的山羊羔和綿羊羔尋母的聲音作為研究對(duì)象,這期間羊聲音信號(hào)容易采集,為實(shí)驗(yàn)提供大量的數(shù)據(jù)支持,以得到最優(yōu)的實(shí)驗(yàn)結(jié)果。本文用錄音筆為工具進(jìn)行聲音的采集。
將出生20天的山羊羔、綿羊羔與母羊分開。保證羊聲音與其行為符合,采集過程中盡量使實(shí)驗(yàn)羊處于無人環(huán)境,排除聲音內(nèi)容混入驚嚇等其他信息。
為保證數(shù)據(jù)的可靠性采集時(shí)間持續(xù)1小時(shí)。使用Adobe Audition將采集到的兩種聲音信號(hào)各截取30個(gè)樣本保存為WAV格式,每個(gè)樣本時(shí)長(zhǎng)1s左右??紤]到羊聲音信號(hào)存在隨機(jī)性,選取時(shí)要剔除數(shù)據(jù)偏差較大的樣本。
三、聲音信號(hào)時(shí)域分析
聲音信號(hào)的時(shí)域波形如下:
時(shí)域分析程序如下:
[y,F(xiàn)s,Nbits]=wavread('文件名.wav');
wavplay(y,F(xiàn)s);
s1=wavread('文件名.wav');
y=resample(s1,80,441);
t=(0:sigLength-1)/Fs;
figure;plot(t,y);xlabel('Time(s)');
為了能夠在matlab當(dāng)中更好的分析語音信號(hào),將采樣頻率重新設(shè)置為8000,實(shí)驗(yàn)證明效果顯示明顯。
羊聲音特征:辨識(shí)度高,間歇性且持續(xù)時(shí)間長(zhǎng),時(shí)域特征明顯。本文通過時(shí)域分析主要獲取叫聲持續(xù)時(shí)間、聲音間隔時(shí)間兩個(gè)特征值。將聲音文件導(dǎo)入Adobe Audition中進(jìn)行預(yù)處理并顯示時(shí)域波形,兩種聲音信號(hào)分別提取叫聲持續(xù)時(shí)間、聲音間隔時(shí)間特征值77對(duì),再通過excel數(shù)據(jù)分析工具進(jìn)行統(tǒng)計(jì)分析。分析結(jié)果如下:
其中,綿羊羔(20天)尋母叫聲特點(diǎn)如下:
叫聲間隔時(shí)間在3.11s-12.09s之間,平均7.58s;
聲音持續(xù)時(shí)間0.78s-1.61s之間,平均1.53s;
山羊羔(20天)尋母叫聲特點(diǎn)如下:
叫聲間隔時(shí)間在0.26s-0.97s之間,平均0.56s;
聲音持續(xù)時(shí)間0.32s-0.96s之間,平均0.64s。
山羊羔尋母聲音比綿羊羔較為短促,發(fā)聲頻率高。
四、兩種聲音信號(hào)的頻譜、功率譜比較
1)本文采用Matlab提供的wavread函數(shù)對(duì)60個(gè)樣本進(jìn)行讀取,S1=wavread(‘20山羊羔尋母);wavread函數(shù)將信號(hào)賦給S1;
本文選取具有代表性的樣本分析如下:
2)濾波器主要分為經(jīng)典濾波器和現(xiàn)代濾波器。從設(shè)計(jì)方法上主要有FIR和IIR濾波器。根據(jù)選頻作用主要分為高通濾波器、低通濾波器、帶通濾波器和帶阻濾波器。Matlab軟件設(shè)計(jì)濾波器有很多種方式,主要通過FDAtool工具箱設(shè)計(jì)和自帶函數(shù)設(shè)計(jì)兩種方式實(shí)現(xiàn)濾波。
本文選擇用Matlab自帶的函數(shù)編寫程序設(shè)計(jì)濾波器。Matlab自帶的濾波器設(shè)計(jì)函數(shù)有:[b,a]=butter(n,wn[,ftype])、[z,p,k]=butter(n,wn[,ftype])、[b,a]=cheby1(n,Rp,wn[,ftype])、[b,a]=ellip(n,Rp,Rs,wn[,ftype])等。
對(duì)于山羊羔和綿羊羔聲音頻率分布雖有差異,但是都處于可聽域20-20000Hz之間,并且都屬于低頻信號(hào)。結(jié)合所研究的羔羊聲音信號(hào)的幅頻特性較明顯的這一特點(diǎn),因此本文選擇用IIR濾波器實(shí)現(xiàn)。
IIR濾波器幅頻特性精度高并且計(jì)算速度快[ 1 ],符合要求;并設(shè)計(jì)最優(yōu)幅頻特性的Butterworth濾波器對(duì)聲音信號(hào)進(jìn)行濾波。函數(shù)如下:
[n,wn]=buttord(wp,ws,rp,as,‘s);
[z,p,k]=buttap(n);
[bap,aap]=zp2tf(z,p,k);
[b,a]=lp2lp(bap,aap,wn);
[bz,az]=impinvar(b,a,F(xiàn)s);
設(shè)置rp=3,as=15;通過buttord函數(shù)確定濾波器階數(shù)和截止頻率。
3)功率譜分析方法有直接分析法、間接分析法。
直接法又稱周期圖法,它是把隨機(jī)序列x(n)的N個(gè)觀測(cè)數(shù)據(jù)視為一能量有限的序列,直接計(jì)算x(n)的離散傅立葉變換,得X(k),然后再取其幅值的平方,并除以N,作為序列x(n)真實(shí)功率譜的估計(jì)。
間接法是先由序列x(n)估計(jì)出自相關(guān)函數(shù)R(n),然后對(duì)R(n)進(jìn)行傅立葉變換,便得到x(n)的功率譜估計(jì)。對(duì)于直接法的功率譜估計(jì),當(dāng)數(shù)據(jù)長(zhǎng)度N太大時(shí),譜曲線起伏加劇,若N太小,譜的分辨率又不好,因此需要改進(jìn)。
對(duì)直接功率譜改進(jìn)后的方法主要是分段平均周期圖法(Bartlett法)。它通過將信號(hào)S1分成互不重疊的P個(gè)小段,每小段有m個(gè)采樣值,則P*m=N,N為信號(hào)總長(zhǎng)度。對(duì)每小段信號(hào)進(jìn)行功率譜估計(jì),然后再取平均作為整個(gè)信號(hào)的功率譜估計(jì)。
功率譜計(jì)算如下:
而Welch法對(duì)Bartlett法進(jìn)行了兩方面的修正,一是選擇適當(dāng)?shù)拇昂瘮?shù)w(n),并再周期圖計(jì)算前直接加進(jìn)去,加窗的優(yōu)點(diǎn)是無論什么樣的窗函數(shù)均可使譜估計(jì)非負(fù)。二是在分段時(shí),可使各段之間有重疊,這樣會(huì)使方差減小。
Matlab實(shí)現(xiàn)功率譜分析的方式主要是通過自帶函數(shù)如:[pxx,pxxc,f]=psd(x,Nfft,window,noverlap,p)、[pxx[,f]]=pmtm(x[,nw,Nfft,fs])、[pxx,f,a]=pmem(x,p,Nfft,fs,xcorr)等。本文主要采用Bartlett法進(jìn)行功率譜分析。
將兩組聲音樣本讀入程序分析,波形如下:
山羊羔尋母聲音頻率集中,多在1300-1900Hz之間,其他頻率范圍內(nèi)未見明顯波形。山羊羔尋母聲音功率譜波形規(guī)整,出現(xiàn)三個(gè)明顯波峰;
綿羊羔尋母聲音頻率分散,部分在在694Hz左右、860Hz左右、1040Hz左右、1235Hz左右。少部分能量分布在1606Hz。功率譜波形整體呈下降趨勢(shì),能量集中在923Hz、1031Hz左右、少量分布在1676Hz左右。
總結(jié)下來,山羊羔尋母聲音比綿羊羔尋母聲音頻率普遍偏高且集中,兩種叫聲的幅度值大致相同,未見明顯區(qū)別。對(duì)其他樣本分析結(jié)果同上。
五、兩種聲音信號(hào)的語譜圖比較
僅僅通過時(shí)域、頻率譜分析聲音信號(hào)所得到的信息還不完整,可能存在死區(qū)。
本文對(duì)兩種聲音信號(hào)增加了語譜圖分析。通過語譜圖我們可以觀察叫聲不同頻段的信號(hào)強(qiáng)度隨時(shí)間的變化情況,其縱軸為頻率,橫軸為時(shí)間,任一給定頻率成分在給定時(shí)刻的強(qiáng)弱用相應(yīng)點(diǎn)灰度或色調(diào)的濃淡來表示,顏色越深表示該點(diǎn)的叫聲能量越強(qiáng)[ 9 ]。語譜圖中顯示了大量的與叫聲信號(hào)語句特性有關(guān)的信息,是一種動(dòng)態(tài)的頻譜。
用Matlab實(shí)現(xiàn)語譜圖方法主要有兩種,一種通過軟件提供的spectrogram函數(shù)直接實(shí)現(xiàn),另一種通過將讀入的信號(hào)分針加窗,進(jìn)行能量密度譜計(jì)算,對(duì)其進(jìn)行偽色彩顯示。
通過實(shí)驗(yàn),本文選擇第二種方式。得到的語譜圖如下:
語譜圖中有主要有橫杠(與時(shí)間軸平行)豎杠,其中橫杠的寬度和強(qiáng)度表示共振峰的帶寬和頻率[ 10 ]。豎杠表示聲音信號(hào)的基因頻率。從顏色深淺上還可以看出信號(hào)的強(qiáng)度,偏紅橙色表示信號(hào)強(qiáng)度大,藍(lán)色則相反。
山羊羔聲音的明顯共振峰出現(xiàn)在1500-1766Hz之間,綿羊羔聲音的明顯共振峰出現(xiàn)在1055-1400Hz和1700Hz左右。可以看到兩種聲音信號(hào)在5000Hz以上都是深藍(lán)色。從語譜圖可以更直觀的觀察到兩種聲音信號(hào)的頻率分布。
六、結(jié)語與展望
本文通過Matlab軟件對(duì)兩種同年齡羔羊?qū)つ嘎曇粜盘?hào)進(jìn)行時(shí)域、頻域和語譜圖的分析,實(shí)現(xiàn)了通過matlab軟件對(duì)羔羊聲音信號(hào)的初次研究。提取了叫聲間隔時(shí)間、叫聲持續(xù)時(shí)間、功率譜能量分布頻率、共振波等特征參數(shù),為進(jìn)一步搭建基于Matlab的羊聲音信號(hào)自動(dòng)識(shí)別系統(tǒng)提供了基礎(chǔ)。日后可以通過Matlab實(shí)現(xiàn)羊聲音信號(hào)的倒譜分析,提取更可以區(qū)分和識(shí)別羊不同聲音信號(hào)的特征值。還可以通過matlab實(shí)現(xiàn)三維圖像分析羊聲音信號(hào)。
參考文獻(xiàn):
[1] 陳家焱,陳冬嬌,張達(dá)響.基于Matlab的聲音信號(hào)采集與分析處理[J].計(jì)算機(jī)與現(xiàn)代化,2005,06:91-92+96.
[2] 黃英來.基于動(dòng)物聲音的個(gè)體辨認(rèn)技術(shù)的研究[D].東北林業(yè)大學(xué),2006.
[3] 郝強(qiáng),趙河明,張毅,臧旭躍.基于MATLAB的聲音采集及去噪音處理方法[J].機(jī)電技術(shù),2014,05:49-50.
[4] 張彩霞,武佩,宣傳忠等.母羊聲音信號(hào)處理與識(shí)別系統(tǒng)的設(shè)計(jì)[J].內(nèi)蒙古農(nóng)業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2013,34(5):145-149.
[5] 宣傳忠,武佩,張麗娜等.羊咳嗽聲的特征參數(shù)提取與識(shí)別方法[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),2016,47(3):342-348.
[6] 黃明威.基于matlab的聲音采集圖形界面的設(shè)計(jì)和實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2013,19:4527-4528.
[7] 宣傳忠,武佩,馬彥華等.基于功率譜和共振峰的母羊發(fā)聲信號(hào)識(shí)別[J].農(nóng)業(yè)工程學(xué)報(bào),2015,31(24):219-224.
[8] 鄧華.MATLAB 通信仿真及應(yīng)用實(shí)例詳解.北京:人民郵電出版社,2003:1-2.
[9] 劉博.基于MATLAB的語音信號(hào)采集和語譜圖分析[J].電腦知識(shí)與技術(shù),2015,11:177-178.
[10] 李富強(qiáng),萬紅,黃俊杰.基于MATLAB的語譜圖顯示與分析[J].微計(jì)算機(jī)信息,2005,20:172-174.
作者簡(jiǎn)介:
祁飛(1991-),女,蒙古族,內(nèi)蒙古呼和浩特人,在讀碩士,研究方向:農(nóng)業(yè)電氣化與自動(dòng)化;
武佩,男,教授,博士生導(dǎo)師,研究方向:農(nóng)業(yè)工程測(cè)試與控制。