基于改进EMD-TEO倒谱距离的生猪音频信号端点检测
2021-03-21吴亚文陶浩兵辜丽川
吴亚文 邵 睿 李 淼 张 锋 陶浩兵 辜丽川 焦 俊*
(1.安徽农业大学 信息与计算机学院,合肥 230036;2.中国科学院 智能机械研究所,合肥 230031)
在生猪养殖过程中通常对生猪行为进行分析以监测生猪健康状况,识别生猪音频信号中包含的行为信息是生猪行为分析的重要环节,端点检测能准确定位端点并提取出有效的音频数据,进而缩短信号处理时间和提高识别效果,端点检测的正确判定是提高生猪音频信号识别率的关键一步。运用短时平均幅度(Average amplitude,AMP)、短时过零率(Zero crossing rate,ZCR)等端点检测算法在一定程度上可实现语音的端点检测[1],但其在低信噪比(Signal-noise ratio,SNR)和复杂环境情况下具有波动性、不平稳性以及端点检测准确率低等。
在生猪信号的端点检测方面,黎煊等[2]利用AMP的单参数双门限检测猪咳嗽音,虽然方法简单,但区分弱摩擦音和尾音困难;徐亚妮[3]进行猪咳嗽音识别的过程中使用了AMP和ZCR结合的门限端点检测;马辉栋等[4]虽然对门限阈值有所改进,但在具体的低SNR环境下,两者的抗噪声效果差,检测效果都不是很明显。Ghosh等[5]提出了一种基于长时段信号变化率测度(Long-term signal variability measure,LSTV)语音端点检测算法,该算法虽然在低于-5 dB噪声比环境下端点检测效果较好,但在信噪比高于-5 dB或复杂环境下,检测性能饱和,端点检测效果差。除了国内外传统端点检测方法外,谱熵法[6]、共振峰检测[7]、梅尔频率倒谱系数(Mel frequency cepstrum coefficient,MFCC)倒谱距离[8]、方差法[9]、自相关函数法[10]、能零比[11]、能熵比[12],这些端点检测虽然在前期的传统的方法上进行特征估计,进而在实现对噪声信号、无话信号和有效信号的区分上作出了改善,但是在遇到比较复杂的生猪音频信号时,由于声音本体因素以及环境影响比较大,这些端点检测方法效果都不是很理想。
本研究拟采用改进经验模态分解(Empirical mode decomposition,EMD)得到的Teager能量算子(Teager energy operator,TEO)特征参数和音频信号倒谱特征参数相结合的端点检测方法[13],对不同的生猪音频信号进行端点检测,以期能够在不同信噪比(特别是低SNR)环境下,提高对生猪音频信号端点检测的准确率以及鲁棒性。
1 生猪语音信号预处理
为了消除因动物发声本身以及采集环境、采集音频信号设施等因素对音频信号的影响,在本试验之前需进行预加重、分帧和加窗操作,以便预处理获得的声音信号较为平稳、光滑,对后面的端点检测较为有利[14]。
1.1 预加重
音频信号s(n)的高频端会衰减,相应高频率的部分会很小,因此要加强高频部分信号。本试验采用数字滤波器对生猪音频信号进行预加重:
b(n)=s(n)-as(n-1)
(1)
式中:b(n)为预加重后的音频信号;a为预加重系数,这里设为0.937 5;s(n)为原信号。
1.2 分帧
生猪音频信号在短时间内看作成相对稳态过程,这样试验准备工作可以把音频信号分帧,再根据生猪音频信号的基频且保持1帧里面包含多个周期,对音频信号进行分帧如下:
fn=(N-F)/I+1
(2)
式中:fn为帧数;N为信号长度;F为帧长;I为帧移。
1.3 加窗
由于分帧使得音频信号首尾可能出现中断现象,加窗就是对分帧后的片段进行变换,使中断部分衔接起来,每1帧信号体现出周期性特征,生猪音频信号经过有限长单位冲激响应(Finite impulse response,FIR)滤波器产生的输出x(n)的卷积形式如下:
(3)
式中:b(n)为预加重后的信号;w(m)为1个单位冲击响应。
加窗采用汉明窗,窗函数w(n)如下:
w(n)=
(4)
式中:L为窗长。
1.4 谱减法滤波
谱减法是利用音频信号的短时平稳特点,使得噪声的短时谱被带噪的音频信号短时谱去除,进而提取出干净音频的频谱[15]。原理框图见图1。
图1 谱减法原理框图Fig.1 Block diagram of subtraction principle
生猪音频信号的时间序列为x(n),对其分帧后的1帧信号做快速傅里叶变换(Fast fourier transform,FFT):
(5)
式中:Xi(k)为FFT变换的后频域上的幅值;xi(m)为预处理后的第i帧信号;N1为帧长。
(6)
式中:Im(Xi(k))为Xi(k)的虚部除以i;Re(Xi(k))为Xi(k)的实部。
平均能量E(k)的计算公式为:
(7)
式中:I1为无话段时长;N2为I1所对应帧数。
利用预处理后获得的每帧信号作为短时平稳性质状态信号,且所取的噪声信号是加性噪声,满足谱减法的要求,且音频加强效果好,简易操作。谱减法公式为:
(8)
2 改进EMD-TEO的倒谱距离端点检测
采用EMD算法先将生猪音频信号分解成多个单一的模态分量;然后利用TEO对有特殊含义的模态分量处理,获得其能量谱,提取出生猪声音的特征频率参数;最后为获取更高的、准确的端点值,引入短时倒谱距离方法,计算倒谱距离参数;采取两级参数的端点检测,能够更加准确的完成对有效信号开始值和结尾值的辨识。
2.1 EMD
EMD分解是一种分析和处理连续的非线性、不平稳信号的方法,利用分解的方式,把原始信号分成1组基本模式分量(Intrinsic mode function,IMF)[16]。EMD分解原理具体步骤:
2)把m(t)从输入信号去除,获得首个IMF分量h1(t);
3)检测h1(t)是不是符合IMF的前提,如不符合,把h1(t)作为输入信号,重复1)、2)操作,直到h1(t)是1个IMF,记成c1(t)=h1(t);
5)r1(t)仍有原始数据的频率信息,循环计算第1)~4)步,得到信号的x(t)的n个满足IMF条件的分量如下:
(9)
式中:r1(t)~rn(t)为第1~n次剩余序列;c1(t)~cn(t)为第1~n的个IMF分量。
6)当最后得到的IMF分量cn(t)或剩余序列信号rn(t)是单调函数,或者序列信号的数值非常小时,完成重复操作。起始数据值队列用IMF分量及1个均值表示为:
(10)
2.2 TEO
TEO是一种非线性映射,可以准确获得信号瞬时功率,进行积分求其能量[17]。对于连续的时间信号ci(t),TEO定义为:
T[ci(t)]=[c′i(t)]2-ci(t)·c″i(t)
(11)
式中:T为Teager能量操作算子;c′i(t)为信号IMF分量的1阶微分;c″i(t)为信号IMF分量的2阶微分。
关于离散时域的TEO计算如下:
T[ci(m)]=[ci(m)]2-ci(m+1)ci(m-1)
m=1,2,…,N1
(12)
式中:ci(m)为信号时域列的IMF分量的第i帧音频信号。
2.3 倒谱距离
(13)
倒谱距离端点检测具体步骤如下:
1)在真正的生猪音频信号开始时,有1段背景噪音帧(取无音帧),取前面5帧倒谱系数计算的均值用来估计噪音频谱值。
2)对每帧音频信号的倒谱值和所取的噪音倒谱系数预估值进行求解,并求出两者间的倒谱距离。
3)由2)计算的倒谱距离路径,再求解噪音帧的倒谱距离阈值,最后用门限法进行端点检测[18]。
2.4 改进EMD-TEO的倒谱距离端点检测
本研究设计的改进EMD-TEO的倒谱距离端点检测算法流程见图2。具体实现步骤如下:
图2 改进EMD-TEO的倒谱距离端点检测算法流程Fig.2 Flow chart of cepstrum distance endpoint detection algorithm based on improved EMD-TEO
(14)
式中:i为帧数;j为EMD分解的阶数;m为时域序数。
(15)
式中:Ti为信号的Teager能量;L1为分解后IMF所有阶数。
4) 求出倒谱距离参数dcep并平滑处理,结合求得的每帧信号Ti,根据获取的第一个参数dcep,提取相对较高的某个阈值(门限值)T2,或(也可以是第二个参数里面较高的参数阈值T4)作出首次判决,高于T2或T4,就能说明是生猪音频信号有效段,
5)根据第一个参数dcep,选取1个较低的阈值T1,从步骤5)的交汇点向两边扩展查询,找到参数dcep与阈值T1相交的2个点,就能初步说明是起始点。
6)根据第二个Ti参数,从1级说明的起始点开始两端查询,分别找到Ti参数和阈值T3相交的2个点,就能确定信号的起始值。
3 结果与分析
采用MATLAB进行预处理和3种端点检测算法的仿真试验。采集‘京徽蒙’猪场特定隔离、相对安静环境下录制的生猪音频信号,采样频率设为44.1 kHz,音频文件保存格式设为‘.wav’。选取的4段2.45 s的生猪叫声,分别为成年母猪哼叫、发情、采食以及打呼噜声,分别在对比分析试验中列出端点检测准确率结果,并选取成年母猪哼叫作为展示。帧长设为25 ms,帧移设为10 ms,生猪音频信号分别添加3种窗函数时域波形图(图3),发现矩形框信号旁瓣峰值较大,有所偏移,误差较大,汉明窗和汉宁窗的时域波形图基本一致,但汉明窗的主瓣更宽,平滑度更高,所以选用汉明窗。试验中的高斯白噪声来源于NoiseX92 噪声库,猪场的背景噪声为人工录音笔录制。
图3 生猪音频信号分别添加3种窗函数的时域波形图Fig.3 Time domain waveform of pig audio signal with three window functions
3.1 EMD-TEO端点检测
对生猪音频信号添加10 dB高斯白噪声的音频信号进行EMD分解得到10个IMF分量(图4),EMD分解的IMF1和IMF2分量有效信号大部分淹没,无效信号有大量毛刺信号分布,可知含噪太高,因此舍弃,利用重构语音信号的方式达到去噪的目的,EMD分解的前2阶IMF的噪声有75%的分量,去掉前两阶相当于信号减噪,只是减弱了高频分量,没有降低有效声音的分量。
分别对4组添加高斯白噪声的生猪音频信号进行EMD-TEO端点检测试验,噪声信噪比大小依次为-5,0,5和10 dB。对添加-5和10 dB高斯白噪声的2组生猪音频信号进行EMD-TEO端点检测结果见图5。添加-5和10 dB高斯白噪声的时域波形中,噪音信号均淹没了大部分有用信号,但添加10 dB高斯白噪声的毛刺信号较弱;对生猪音频信号进行EMD重构很明显消除了部分模糊信号和锯齿信号,说明EMD分解有一定的效果。对添加-5和10 dB噪声的生猪音频信号利用EMD-TEO进行端点检测,可以看到,添加-5 dB噪声的生猪音频信号有用信号段大部分能检测出来,但仍有部分有效信号检测不准确;而添加10 dB噪声的生猪音频信号在端点检测时,检测细节上更清晰,检测准确度更高。
图4 生猪音频信号EMD分解的1~10阶IMF分量Fig.4 1-10 order IMF component of EMD decomposition of pig audio signal
3.2 倒谱距离端点检测
分别对4组添加高斯白噪声的生猪音频信号进行短时倒谱距离端点检测试验,噪声信噪比大小依次为-5,0,5和10 dB。对添加-5和10 dB高斯白噪声的2组生猪音频信号进行短时倒谱距离端点检测(图6),添加-5和10 dB高斯白噪声的时域波形中,添加10 dB高斯白噪声的生猪音频信号较添加-5 dB高斯白噪声的生猪音频信号的线条和锯齿有区分性,但都覆盖了很多有用信息;对添加不同噪声的生猪音频信号利用短时倒谱距离进行端点检测,可以看到添加-5 dB噪声的生猪音频信号的首段有用信息漏检,后3段有效信号检测效果差,而添加10 dB噪声的生猪音频信号在端点检测时,能重新检测出首段有用信号,后3段的检测细节较添加-5 dB噪声的生猪音频信号准确。
3.3 改进EMD-TEO倒谱距离端点检测
本试验在EMD分解之前引入谱减法进行去噪,然后进行EMD重构再次变相去噪,达到一个信噪比较高的混杂生猪音频信号,再进行TEO求得Teager能量参数,同时在谱减法去噪之后进行短时倒谱距离参数计算,将两者参数结合进行双参数门限检测。向原生猪音频信号添加噪声大小依次为-5,0,5和10 dB的高斯白噪声和猪场环境噪声,对产生的8组生猪音频信号进行改进EMD-TEO倒谱距离端点检测试验。其中添加-5和10 dB高斯白噪声的音频信号改进EMD-TEO端点检测结果见图7和图8。在添加-5和10 dB高斯白噪声的时域波形中,噪音信号可多可少的淹没了大部分有用信号,但进行谱减法去噪后,有效信号基本能凸显出来,只有略微的毛刺信号;对生猪音频信号进行EMD重构,减弱了无声段的毛刺信号了和锯齿信号,说明谱减法和EMD分解已基本滤清杂音。对添加不同噪声的生猪音频信号利用改进EMD-TEO进行端点检测,可以看到改进EMD-TEO对添加-5 dB噪声的生猪音频信号的有效信号段分段基本准确,但有个别无效信号错检成有效信号,而添加的10 dB噪声生猪音频信号在端点检测时,对存在个别错检漏检的片段,在检测上更加精确。表1示出谱减法和EMD分解去噪对于低信噪比环境下生猪音频信号去噪效果明显。
图5 EMD-TEO对添加-5和10 dB高斯白噪声的生猪音频信号的端点检测Fig.5 EMD-TEO endpoint detection of pig audio signal with -5 and 10 dB white Gaussian noise
图6 短时倒谱距离对添加-5和10 dB高斯白噪声的生猪音频信号的端点检测Fig.6 Short time cepstrum distance endpoint detection of pig audio signal with -5 and 10 dB white Gaussian noise
图7 改进EMD-TEO倒谱距离对添加-5 dB高斯白噪声的生猪音频信号的端点检测Fig.7 Improved EMD-TEO cepstrum distance for endpoint detection of pig audio signal with -5 dB white Gaussian noise
图8 改进EMD-TEO倒谱距离对添加10 dB高斯白噪声的生猪音频信号的端点检测Fig.8 Improved EMD-TEO cepstrum distance for endpoint detection of pig audio signal with 10 dB white Gaussian noise
表1 谱减法和EMD分解依次对添加-5、0、5和10 dB高斯白噪声的生猪音频信号去噪结果Table 1 Spectral subtraction and EMD decomposition are used to denoise thepig audio signal with -5, 0, 5 and 10 dB white Gaussian noise in turn
3.4 对比试验结果分析
为了更好地、更直观地体现出本研究提出的改进EMD-TEO的倒谱距离端点检测算法性能,利用3种端点检测方法,在各种不同信噪比情况下,对端点检测准确率进行比较。由于现在所做的端点检测的方法,都没有和实际语音的真实端点做严格的比较,为了知道较为真实端点,对获取的纯净信号进行‘零交叉+能量’(因为能量和0的交叉值都为0,一旦大于某个很小的阈值就是信号有效段,进而确定端点)端点检测(图9),该方法仅对纯净信号适用,对复杂含噪信号效果不好,所以此方法只是用来检测真实的纯净语音信号的总帧数以及生猪音频信号的有效帧数,表2示出真实的生猪音频信号有效段帧数。表3示出添加-5和10 dB高斯白噪声的情况下,改进EMD-TEO的倒谱距离端点检测的生猪哼叫信号的有效段帧数。可见,在添加-5 dB的高斯白噪声环境下,1~2、3~5、7~11、13 ~19有效信号段有大部分误检,1、5~6、11~13段均有少数漏检;在添加 10 dB 的高斯白噪声环境下,1~2、6~7有效信号段有部分误检,1、4~5、7~10段均有极少数漏检,但对比-5 dB噪声环境下误检和漏检要少很多,因此也能证明在信噪比高的情况下,端点检测的准确率更高。
图9 ‘零交叉+能量’端点检测Fig.9 Endpoint detection of ‘zero cross energy’
表2 真实的生猪音频信号有效段帧数Table 2 Real live pig audio signal validsegment frame count
端点检测的误差帧数即音频信号错认为噪音的帧数加上噪音信号错认为有效信号的帧数之和,正确帧数计算如下:
正确帧数=(总帧数-误差帧数)/总帧数
表4示出相对于EMD-TEO端点检测算法以及短时倒谱距离端点检测算法,本研究提出的改进EMD-TEO的倒谱距离端点检测算法,在添加高斯白噪声的信噪比为-5和0 dB时,端点检测的准确率达到了84.725%和91.196%,远高于其他2种检测算法,在信噪比为5和10 dB时,虽然准确率接近,但改进EMD-TEO的倒谱距离端点检测仍优于其他2种算法;当添加的是饲养场环境噪声,且SNR为-5和0 dB时,端点检测准确率为72.842%和 80.269%,虽然较高斯白噪声的准确率低,但准确率远高于前面2种算法。
表3 改进EMD-TEO的倒谱距离对添加-5和10 dB高斯白噪声的生猪音频信号端点检测有效段帧数Table 3 Improved cepstrum distance of EMD-TEO to detect effective frame number ofpig audio signal with -5 and 10 dB white Gaussian noise
为了进一步说明本算法的适用性,利用改进EMD-TEO的倒谱距离端点检测方法,针对声音的不同种类在录制的饲养场背景噪声环境下进行端点检测,得出分别添加-5、0、5和10 dB饲养场背景噪声的不同生猪音频信号的端点检测准确率,虽然各类声音的检测准确率有差异,但仍能看出3种不同声音在改进EMD-TEO的倒谱距离端点检测算法下的检测效果是相当好(表5)。
表4 3种端点检测算法对添加-5、0、5和10 dB噪声的生猪音频信号端点检测的准确率Table 4 Accuracy of three endpoint detection algorithms for pig audio signal with -5,0,5 and 10 dB noise %
表5 3种声音在饲养场背景噪声下的端点检测结果Table 5 Endpoint detection results of three kinds ofsound in the background noise of feedlot
4 结 论
本研究针对生猪音频信号,引入谱减法去噪,结合EMD-TEO和短时倒谱距离特征参数,提出了一种改进EMD-TEO的倒谱距离端点检测算法,利用双参数两级双门限判断真实的端点检测值。研究表明,该算法对于研究复杂情况下的生猪音频信号端点检测效果良好,且对不同类型、不同环境以及非平稳信号状态下的声音有着很强的端点检测鲁棒性,对于生猪音频信号处理和识别具有较高的实用价值。