风机噪声环境下的鸡鸣自动识别
2021-09-17吉训生
谢 捷,江 昆,罗 展,胡 凯,吉训生
(江南大学物联网工程学院,江苏 无锡 214122)
0 引言
近年来,伴随着经济与社会的迅速发展,我国的家禽养殖业生产规模不断扩大,据联合国粮农组织资料统计,2010年我国禽蛋产量为2 616万t,占世界总产量的43.26%,其中鸡蛋产量2 233.3万t,占世界鸡蛋总产量的40%[1]。据《2013年度中国家禽业发展报告》指出,我国蛋鸡饲养规模与产能居世界第一[2]。然而,由于疾病与压力的影响,家禽养殖业每年都面临着巨大的威胁,其中,传染性疾病是最大的威胁之一。
作为人类重要的肉类与蛋类食物来源,人们对鸡的健康状况密切关注。因此,如果能够提前发现疾病并消灭,可以有效地减少经济损失。然而,许多养殖场的工作人员并不是专业的饲养专家,难以在早期发现感染疾病的鸡并实施处理。因此,研究家禽疾病早期自动化检测方法非常重要。随着信息技术的发展,传统农业技术和人工智能技术的融合将成为未来农业发展的趋势。 Whitaker[3]通过对输入光谱图的多列采样,然后使用正则化最小二乘优化,将谱图的列向量转化为稀疏系数向量,最后利用支持向量机(support vector machine,SVM)识别健康的鸡与感染支气管炎的鸡。Lee等[4]首先使用基于关系的特征选择方法对时域与频域中的特征进行选择,去除相关性较低的特征,最后使用SVM对有压力的鸡与健康鸡的叫声进行分类。
目前鸡鸣研究中,依然采用手动方式获取鸡鸣片段,然而,采用手工获取鸡鸣的手段难以应用在自动化鸡鸣监测系统中。针对自动化鸡鸣监测系统,每个声音传感器每天都会产生大量的数据,然而自动采集的数据中,研究人员只对含有鸡鸣的声音片段感兴趣,需要从背景噪声中识别鸡鸣进而提升监测系统的性能。因此,研究开发鸡鸣自动识别方法尤为重要。曹晏飞,陈红茜等人[5]以含有风机噪声的海兰褐蛋鸡的声音片段和风机噪声片段为研究对象,基于含有风机噪声的海兰褐蛋鸡的声音片段有效帧的最小帧功率显著大于风机声音片段,由此提出通过阈值对两者进行分类。然而,基于阈值的分类方法通常对环境噪声非常敏感,同时传感器设备位置通常是固定的,传感器采集的鸡声能量随着鸡的移动而发生变化。
本研究中,以采集的鸡鸣、含有风机噪声的鸡鸣和风机噪声为研究对象,构建鸡鸣识别系统。具体地说,首先连续的鸡鸣数据被分割为长度相同音频片段;其次,针对每个音频片段,提取梅尔频率倒谱系数为特征;最后,采用五折交叉验证的方式,使用SVM与功率谱阈值方法识别采集的鸡鸣、含有风机噪声的鸡鸣和风机噪声。
1 材料与方法
1.1 材料
本文的所有数据集均从Freesound[6]网站上下载,Freesound是个免费的音频分享网站,很多的音频爱好者会在上面分享自己的作品,其声音来自于世界各地,各种不同的场景,如菜市场,养鸡场等,具有非常好的代表性。对于数据集,首先,连续的音频数据被分割为长度10 s的音频片段(不足10 s的进行补零处理),其次,将声音片段统一转换为单通道,如式(1)所示。
(1)
其中,Sleft、Sright与Ssingle分别为左声道、右声道与单通道信号。采样率为16 KHz,采样位数为16位的WAV文件。在真实的大型养鸡环境中,噪声的类型有很多,如通风系统噪声、饲喂系统噪声、清粪系统噪声、集蛋系统噪声等,其中最主要的噪声来源是通风系统。因此,以含有风机噪声的鸡声音频片段与风机噪声音频片段为研究对象,构建实验数据集,获取500个鸡鸣片段与500个风机噪声片段。
1.2 添加噪声
本研究采用的声音片段包含鸡鸣片段与风机噪声片段,在实际鸡养殖环境中,通常鸡鸣和风机噪声混合在一起,因此,为了符合实际的养殖环境,对于每个鸡鸣片段添加风机噪声片段(随机挑选538个风机噪声片段),并设置添加风机噪声后的鸡声片段的信噪比(5 dB、0 dB、-5 dB),获取含有风机噪声的鸡鸣片段。
1.3 特征提取
前期的声音识别研究中,大量的音频特征被提出,包括:时域特征,如最大信号值、标准差、均方根等;频域特征,如子带功率比、平均频率、最大功率等;时频域特征。然而在构建特征集时,特征过少会引起信息提取的不充分,特征过多导致分类器算法复杂度提升,进而降低模型的泛化能力,因此,需要兼顾特征维度和模型性能构建合适的特征集。在本文中,梅尔频率倒谱系数(Mel-Frequency Cepstral Coefficients,MFCCs)作为分类的特征。由于其可以反应较为真实的声音信息,并具有合理的计算复杂度,MFCCs在声音识别中得到了广泛应用[7]。在本文中,首先提取13维的MFCCs特征,并计算其一阶与二阶差分,以描述鸡鸣的动态特征,最终,得到了39维的特征向量。
1.4 分类模型
针对每个声音片段,提取MFCCs特征,然后分别采用KNN和SVM对采集的鸡鸣、含有风机噪声的鸡鸣和风机噪声进行识别。前期实验表明,对于KNN最优的N为1[8];对于SVM参数的调优使用每次只改变其中一个变量的方法,依次得到每个参数的相对最优值,调优结果为C=5,kernel=‘RBF’。
2 实验结果与讨论
本次实验,数据集被划分为5等份,其中,训练集占60%,验证集与测试集分别占20%,然后使用五折交叉验证获取平均结果。
2.1 实验结果评价
对于鸡鸣识别模型,本文使用13维MFCCs作为特征,分别使用SVM与KNN作为识别器训练出一个模型,此时,2个模型均获得了100%的分类准确率,表明了该模型在鸡鸣识别任务中的有效性。同时,为了评估该模型对噪声的鲁棒性,在鸡鸣音频中混入风机噪声,信噪比分别为-5dB、0dB与5dB,使用KNN与SVM分类器识别鸡鸣、风机噪声与带有风机噪声的鸡鸣3种类别的声音,实验结果如表1所示。
表1 试验模型在不同噪声条件下的分类性能
实验表明,在不同的噪声信噪比条件下,该模型最低准确率为95.13%。在-5 dB条件下,使用SVM分类器最高获得了98.07%的分类准确率,表明所提出模型对于风机噪声具有良好的抗噪性能。
2.2 实验结果分析
为了进一步分析模型的分类结果,分别计算出不同分类器在不同噪声条件下的混淆矩阵如图1所示。
图1 不同信噪比下,不同模型的混淆矩阵
实验表明,对于SVM分类器,该模型更容易将带有风机噪声的鸡鸣误分类为鸡鸣。对于KNN分类器,更容易将带有风机噪声的鸡鸣误分类为风机噪声。然而,使用MFCC特征,可以有效地将风机噪声与鸡鸣区分出来,无论是无噪声的鸡鸣或带有风机噪声的鸡鸣。在实际养殖环境中,声音采集一般为连续录音,通过本文提出的模型可以有效地识别出含有鸡鸣的音频片段,克服人工筛选的缺点。
3 结论
针对实际肉鸡养殖环境中存在的风机噪声问题,本文提出一种基于梅尔频率倒谱系数的鸡鸣识别方法。首先,将获得的连续音频格式化为16 KHz采样率、16位深度与长度10s的音频片段。之后,对每一音频段提取13维梅尔倒谱系数作为特征,使用轻量级分类对鸡鸣与风机噪声进行分类,获得了100%的分类准确率。之后,为了进一步评估模型对风机噪声的鲁棒性,将鸡鸣与风机噪声混合,测试了模型在5 dB、0 dB与-5 dB噪声条件下的表现。实验结果表明,该模型在此噪声条件下最低获得了95.13%的分类准确率,同时,通过分析模型的混淆矩阵可知,该模型可有效地区分风机噪声与鸡鸣,无论是无噪声的鸡鸣或混有风机噪声的鸡鸣,可有效提升实际声音分析中筛选鸡鸣片段的效率。