基于DE-VRF的猪声音分类识别
2023-04-07顾小平陈佳豪胡潇涛
顾小平 吴 浩 陈佳豪 胡潇涛 宋 弘
(四川轻化工大学自动化与信息工程学院 四川 宜宾 644000)
0 引 言
当前我国畜牧业正处于智能化转型关键时刻,随着现代养殖业的规模化和集约化越来越大,人工智能、大数据等创新技术必将与传统畜牧业进行融合,并且得到广泛应用。由于我国养猪业处于发展阶段,养殖规模的扩大使得传统的人工观测变得更加难以实现,同时人工观测的准确性和实时性也不足[1-2]。因此,利用语音识别技术分析猪只异常声音,对猪咳嗽声进行识别,有利于生猪呼吸道疾病的预警,提高人工效率的同时也能降低经济损失[3]。
国外对于猪只声音的研究较早,Hirtum等[4]利用模糊算法对猪只声音进行分析,数据样本5 319条,对猪只声音正确识别率为79%。Ferrari等[5]通过分析猪只声音信号波形的均方误差及峰值频率,发现正常猪与患病猪之间的声音差异,从而对患病猪只进行识别。Chung等[6]提出一种数据挖掘解决方案,将其应用于生猪疾病监测,利用支持向量以及稀疏表示分类器组成的二级分类结构,自动检测识别生猪疾病。Zhang等[7]提取了梅尔频率倒谱系数和子带频谱质心作为复合特征参数,利用支持向量数据描述和反向传播神经网络对生猪的五种异常声音进行分类。
目前,国内针对猪只声音识别的研究较少。黎煊等[8]通过监测猪咳嗽声进行疾病预警,提出了基于深度信念网络的猪咳嗽声识别和基于连续语音识别技术的猪连续咳嗽声识别。韩磊磊等[9]利用决策树支持向量机模型对每帧数据进行识别,然后结合模糊推理技术对时间窗口内结果进行推理识别,实现对猪只异常声音进行识别。
随机森林算法是Breiman[10]提出的概念,并且证明其不存在过拟合问题。本文将随机森林引入到猪声音识别领域,为了能让分类性能好的决策树拥有更大的决策权,提出加权随机森林算法,采用差分进化算法优化模型参数,提取MFCC_F、短时能量和短时过零率特征参数进行特征融合,输入到DE-VRF模型,实现对猪只声音的分类识别。
1 数据采集与处理
1.1 数据采集
本文实验的数据信号采集地位于四川省某大型养殖场,考虑采集声音的多样复杂,选用灵敏度较高GK-MIC03型拾音器作为声音数据采集器,通过网线传输至上位机存储。声音采集在1月至4月猪只多发病期进行,采集7头60 kg左右的猪只声音,其中有3头经兽医诊断为呼吸道疾病感染,选取猪只咳嗽、尖叫和进食声作为研究对象,其中:咳嗽声为患病猪只发出的声音;尖叫声为猪只在打斗或打针时所发出的声音,采集时需要人为进行刺激;进食声为猪只进食所发出的哼唧声音。经养殖场兽医协助,采用Audacity音频处理软件对所采集的猪只声音进行人工分类标记,然后对标记后的数据进行切分,得到猪只声音样本800个,其中咳嗽样本375个、尖叫样本195个、进食样本230个,并将其全部保存为.wav格式供后续进行数据处理。
1.2 猪只声音数据预处理
在进行猪只声音信号特征提取之前,需要对数据进行预处理,同语音识别处理方法类似,包含去噪、分帧加窗和端点检测。将特征参数融合后的输入DE-VRF模型进行训练分类,从而实现对猪只咳嗽声音识别,其识别原理流程如图1所示。
图1 猪只咳嗽识别原理流程
1.2.1语音增强
式中:i为当前第i层的小波分解;n为分解层数;λ为阈值;α∈[0,+∞)表示调整参数。猪只声音去噪前后对比如图2所示。
(a) 去噪前猪只声音
(b) 去噪后猪只声音图2 去噪前后猪只声音样本
1.2.2加窗分帧
猪只声音信号同语音信号一样,是非平稳信号,所以在处理时,把它分成较短的帧,每帧中可将其看作稳态信号。为了帧与帧之间的参数能够平稳过渡,应在相邻两帧之间互相有部分重叠。一般情况下,时域分帧10~30 ms,因此本文选择帧长200、帧移80。在原始猪只声音信号上加窗函数就能实现声音信号的分帧。本文选择海明窗(Hamming)作为窗函数,由于海明窗的加权系数能够抑制旁瓣大小,能够让信号帧与帧之间连续性较好,其窗函数如下:
1.2.3端点检测
端点检测的目的是为了找出语音信号的起始点,提高声音信号的识别率。选择基于短时能量的方法进行端点检测。对于猪只三种声音样本x(n),帧长C,其中第v帧声音信号表示为xv(n),此时猪只声音短时能量Ev计算公式如下:
单参数双门限检测法,其中单参数是指幅值归一化后的短时能量ev,如式(4)所示。
双门限设置T1和T2两个阈值,分别为T1=0.01、T2=0.002,当猪只声音样本短时能量ev高于T1时认为是有效信号部分,即语音帧,当短时能量高于或低于T2时认为是样本的起始点。
2 特征提取
特征参数提取包括时域和频域特征,本文时域特征采用短时能量、短时过零率,频域采用主流MFCC(Mel Frequency Cepstral Coefficients)系数为主,并在此基础上进行改进与组合。
2.1 时域特征提取
短时能量(Short-term Energy,E)即每一帧猪只声音信号能量大小,假设猪只声音信号x(n),其中第v帧声音信号为xv(n),表示为:
xv(n)=w(n)×x((v-1)×inc+n)
(5)
式中:1≤n≤C,1≤v≤L,C为帧长,L为猪只声音分帧后的总帧数;inc表示帧移;m为猪只声音分帧后的总帧数。再采用式(3)即可计算短时能量。
短时过零率(Zero-Crossing Rate,Z)即猪只声音信号穿过横轴的次数,其表示为:
2.2 改进MFCC特征提取
梅尔频率倒谱系数(MFCC)的原理是基于人对声音的感知规律,来分析声音的频谱特性,相比其他特征参数,更符合要求。它与频率的关系公式如下:
式中:fmel为梅尔频率;f为实际频率。MFCC特征参数的提取包括傅里叶变换、Mel滤波器组、对数运算、离散余弦变换。
本文采用24维MFCC_F特征参数,由MFCC与其一阶差分(ΔMFCC)进行组合,其中MFCC_F与MFCC和ΔMFCC关系为:
FMFCC=MFCC+ΔMFCC
(8)
2.3 特征参数融合
短时能量(Ev)能够很好地表征猪只声音之间的区别,对于猪只异常声音分帧之后,每一帧猪只声音信号能量大小即短时能量。短时过零率(Zv)即声音波形经过水平轴的情况,能够表征猪只声音信号一部分频率信息。因单维数的时域特征很难表征信号的特点,为了提高声音识别率,本文将24维MFCC_F特征参数与单维短时能量(Ev)和短时过零率(Zv)进行特征融合,考虑到三者数量级相差较大,因此将其分别归一化后,构成特征融合参数P,P=[FMFCC,Ev,Zv]。
3 基于DE-VRF分类识别
3.1 随机森林
随机森林[12-13]是在决策树算法基础上的一种改进,将多个决策树合并在一起,其中每棵树都是独立的样本集,如图3所示。随机森林[12]分类算法采用CART作为基分类器,其中每棵决策树都采用装袋算法(Bagging),即随机从N个数据样本集中选择n个样本,然后在所有M个决策属性中,随机选取mtry个进行决策属性分裂(其中mtry fk(X)=ii=1,2,…,C (9) RF分类模型的输出为: 图3 随机森林算法流程 加权随机森林[12]是指在传统的RF模型基础上,对每一个决策树进行加权优化,它能够有效避免因决策树分类性能不同而对整个模型产生影响,提高模型的分类精度。随机森林K个决策树的权值为v1,v2,…,vk。将待训练样本数据分为两部分,第一部分数据用传统方法进行训练,第二部分数据用传统的方法训练完成后的决策树进行测试,将测试的正确率作为权值,表示为: 式中:Xc,k为第k棵树分类正确的样本数量;X为测试样本。 在进行决策投票之前,每棵决策树都将乘以权值,其加权随机森林模型输出为: 3.3.1差分进化算法 差分进化算法(Differential Evolution,DE)[14]具有较好的全局优化能力,其基本思想是:随机产生一个初始种群,通过群体上不断地进行变异、交叉操作,产生新个体,然后将新个体与当代种群中相应的个体相比较,选择适应度表现较好的个体,经过数次迭代更新之后求得最优解。其具体为: (1) 种群初始化。设置种群规模(Np),决策变量个数(D),每个个体都是D维向量。初始化形式如下: (2) 变异操作。变异操作是DE算法中最核心的操作,按照某种方式随机对种群个体进行变换,获得变异个体Ui(t)={u(i,1),u(i,2),L,u(i,D)},这里选择按照式(14)产生变异变量: ui(t)=Xa(t)+F·[Xb(t)-Xc(t)] (14) 式中:下标i,a,b,c∈{1,2,L,Np}为互不相同的整数;F为比例缩放因子。 (3) 交叉操作。交叉是为了增加种群的多样性。就是将种群个体Xi(t)与变异个体ui(t)交叉生成实验个体Vi(t)={v(i,1),v(i,2),L,v(i,D)}的过程,每一代交叉方式如下: 式中:CR为交叉概率;jrand∈{1,2,L,D}是一个随机选取的整数。 (4) 选择操作。从目标个体Xi(t)与交叉操作产生实验个体Vi(t)中选择适应度表现较优的个体,构成下一代种群,选择方式如下: 式中:f(·)为适应度函数。 3.3.2差分进化优化加权随机森林 本文将差分进化引入到加权随机森林模型进行优化,实现对猪只声音分类识别,其具体步骤为:(1) 始化算法参数,随机设置分裂属性mtry、决策树棵数K、预测试样本X;(2) 通过Bootstrap算法采样,随机生成训练样本,并从每个训练样本中确定预测试样本X;(3) 然后将每一个训练样本剩余样本分别生成K棵决策树,并且每次均从全部属性M中选择mtry个属性作为决策属性;(4) 判断节点内样本数是否小于零,返回决策树投票决定的分类结果;(5) 生成决策树后,对其每棵决策树进行测试,采用式(11)计算权值,式(12)计算分类模型输出结果;(6) 将输出结果作为适应度函数,采用差分进化算法对第一步中参数迭代优选;(7) 判断是否达到迭代次数,然后输出模型参数,生成优化加权随机森林;其流程如图4所示。 图4 DE-VRF算法流程 本文选取猪只三种声音共计800段,其中训练和测试样本占比为4 ∶1,采用2个指标来衡量实验结果,分别为识别准确率(正确识别猪只声音样本占该类声音样本总数百分比)和总识别率(正确识别的三种猪只声音样本占声音总数百分比),两者能很好地表征模型性能。通过多次实验,设置种群维度D为3,进化迭代次数G为100,变异比例因子F为0.8,交叉概率CR为0.3,由分裂属性mtry、决策树棵树K和预测试样本率组成空间向量(mtry,K,X),mtry∈[1,10],K∈[1,100],X=[0.1,0.6],将该空间向量作为差分进化算法中的个体,通过DE迭代优化选取较优的个体,确定模型的参数,最终实验结果由加权后决策树投票得到。 为了验证模型参数对VRF模型的影响,图5-图7所示分别为分裂属性数目mtry、决策树数目K和预测试样本率X与平均识别正确率之间的关系。 图5 分裂属性对VRF影响 可以看出,在其他参数一定时,识别正确率随着分裂属性mtry数目增加而增加,并且到达一定数目时达到最优。 图6 决策树数目对VRF影响 可以看出,随着决策树数目K增加,在其他参数一定时,平均识别率增加,并且到达一定数目时识别正确率趋于稳定。 图7 预测试样本率对VRF影响 可以看出,在其他参数一定时,随着预测试样本率的增加,识别正确率呈现先增后减。 差分进化迭代优化结果如图8所示,迭代50次趋于收敛。经差分进化优化之后模型的参数mtry为6、K为70、X为0.3时,加权随机森林模型识别效果最优,将测试样本数据输入到DE-VRF模型进行识别验证,当模型输入特征参数为MFCC系数、MFCC_F系数及其组合系数时,其识别结果如表1所示。 图8 DE最优个体适应度值曲线 表1 不同特征组合实验结果(%) 由表1中数据可知,MFCC_F特征参数的咳嗽性能优于原始参数,其识别效果提升了3.97百分点。对每个组合特征进行实验,结果表明,MFCC_F特征参数、短时能量、短时过零率进行特征融合时,识别准确率效果最佳,平均达到96.57%,总识别率达96.59%。因此,输入特征融合参数可以很好地用于猪只声音分类。 为便于分析,测试结果以混淆矩阵的形式进行表示(表2),其中,每一行为样本数据的真实值,每一列为样本数据的预测值,两者都以百分比的形式展现,混淆矩阵能够很好地反映DE-VRF模型的性能。表2中,主对角线上元素表示每类样本的识别正确率,其余为误识别率。表2结果证明了将DE-VRF模型用于猪声音分类的可行性。 表2 DE-VRF模型下实验结果的混淆矩阵 在猪只声音识别过程中,由MFCC_F+Ev+Zv特征融合后的26维的特征参数取得较好的识别效果,但由于过高的维度,使得系统计算更繁琐。为了提高计算效率,并且提炼出更有效的特征参数,本文将引入主成分分析法(PCA)[15]进行特征参数降维优化。其实现过程如下: 设定实验样本数目总数为n,特征参数维数为m,X为数据样本,计算变量的协方差矩阵D,矩阵D中元素表示为: 由此协方差D的特征值和特征向量表示为: 将特征值按照从大到小进行排序,选择其中前k个特征值对应的主成分,k值由特征值累计贡献率σk确定,计算公式为: 当组合特征参数的维数贡献率大于95%时,可认为该新构成的特征参数能够有效替代原参数,其组合特征参数维数与贡献率的关系如图9所示。 图9 特征参数的维数贡献率 由图9可知,PCA降维之后,在累计贡献率为95.5%时,特征参数由原来的26维降至13维,基本上保留了原始数据信息,因此,降维后的组合特征参数可以代替原参数进行识别。其降维前后识别效果对比如表3所示。 表3 降维前后识别效果对比 可以看出,引入主成分分析法实现组合特征降维优化之后,测试时间降低了近一半,不仅降低了模型的复杂度,同时识别效果较降维之前,仅降低了0.5百分点。因此,本文采用的组合特征降维后能够有效提高模型计算效率。 为了对比本文模型的识别效果,分别选取深度神经网络(Deep Neural Network,DNN)和一维卷积神经网络(One-Dimensional Convolutional Neural Network,1D-CNN)对猪只声音进行识别并与DE-VRF模型识别结果进行比较。其识别对比如表4所示。 表4 不同算法识别效果对比 可以看出,DNN模型具有一定的识别正确率,达95.57%,但测试时间较长。1D-CNN模型虽然测试时间最短,但是测试集平均识别率仅为93.85%。而基于DE-VRF的猪只声音分类识别模型的平均识别率在3种模型中最高,达96.34%。这表明本文方法能克服随机森林中决策树统一决策权的缺陷,具有更好的识别率和更为优越的性能,能够有效地解决生猪异常监测识别问题。 本文对生猪声音进行分类识别,采集猪只咳嗽、尖叫和进食3种与生猪身体状况相关的声音作为研究对象,在对声音信号进行预处理后,提取改进特征参数MFCC_F与短时能量和短时过零率进行特征融合,采用DE-VRF作为识别模型,对猪只咳嗽声音进行识别。实验表明,特征参数融合后可以很好地用于猪只异常声音分类。将随机森林引入猪只声音分类识别领域,采用差分进化优化加权随机森林,避免因随机森林中决策树统一决策而造成影响。实验表明,基于DE-VRF猪只声音分类识别网络能够较好地收敛。本文通对比2种不同实验模型,分析3种猪只声音,特征融合参数经PCA降维之后,由实验验证表明,基于DE-VRF的猪只声音平均识别率达到96.34%,总识别率为96.15%。3.2 加权随机森林
3.3 差分进化优化加权随机森林模型
4 实验结果与分析
4.1 模型参数的影响
4.2 识别结果
4.3 特征参数降维优化
4.4 与其他算法对比
5 结 语