黄鸿铿,李应
(福州大学 数学与计算机科学学院,福建 福州 350116)
动物声音自动识别,对于动物物种、种群及数量研究,生态环境分析具有重要意义。目前,对动物声音识别方法的研究有基于时间序列特征的动物声音识别[1],通过各个音节延续的隐马尔可夫模型的鸟类识别[2],通过声音模式对鸟类分类[3]。此外,还有借助于经典的基于文本数据库查询方法,采用基于索引的动物声音检索[4]以及在连续和真实的现场录音中,识别特定的鸟类声音[5]。我们也在近年的工作[6-7]中,通过自适应能量检测进行鸟类声音检测;对声谱图提取灰度共生矩阵特征,并结合随机森林(random forests,RF)[8]识别鸟类声音。然而,对于自然环境下的各种低信噪比动物声音的识别,还缺乏有效的方法。
关于低信噪比声音信号的分析、分类和识别,近期的研究包括小波包过滤的低信噪比声音事件识别[9];利用匹配追踪 (matching pursuit,MP)算法从Gabor字典中选择重要的原子,用主成分分析和线性判别分析确定声音事件的特征,最后采用支持向量机(supported vector machine, SVM)分类器进行分类识别[10]。以声谱图及其相关的特征为基础,Dennis等[11]提出基于声谱图进行伪着色并提取相关图像特征的声音事件识别方法。尤其,Dennis等[12]提出的子带功率分布(subband power distribution, SPD)特征,在谱图中将可靠的声音事件与噪声分开并去除不可靠区域,最后用最近邻居分类器(k-nearest neighbor, kNN)对特征进行识别。这种方法能在信噪比低至0时,可以识别相关的声音事件。然而,由于环境声的多变性,对于自然环境中0以下各种低信噪比动物声音及声音事件,目前却没有更为有效的识别方法。
针对低信噪比动物声音及声音事件的识别,以声谱图投影特征结合RF的动物声音识别方法[13]为基础,该文提出一种Bark尺度的小波包分解系数重构的频谱投影(Bark scale Wavelet packet decomposition coefficient reconstructed spectral projection, BSP)特征。并通过结合短时谱估计、BSP特征和RF的方法识别各种声音场景下的动物声音。
基于BSP特征结合随机森林(RF)的动物声音识别的整体架构,如图1所示。具体流程包括:首先,对动物声音进行声音增强;然后将增强后声音信号进行Bark尺度的小波包分解并重构分解系数,把这些重构通过短时傅里叶变换生成重构信号频谱;并对频谱进行主成分分析,提取投影特征,即各个Bark频率群的BSP;最后使用RF识别各个Bark频率群的BSP。
图 1 动物声音识别的流程Fig. 1 The process of animal sound recognition
Bark是一种模拟人耳听觉感知特性的非线性频率尺度。小波包分析对信号的低频和高频部分同时进行分解,具有更强的频带划分能力[14]。Bark尺度小波包分解是基于人耳Bark域频率感知特性的小波包分解结构。
人耳的Bark域在20 Hz~16 kHz的频率范围内分为24个Bark频率群[15]。Bark域频率z和赫兹(Herz)域频率f的转换关系为
式中:Bark频率群的带宽在500 Hz以下时增加速度恒定,约100 Hz增加一个带宽;在500~1 220 Hz带宽呈线性增加;1 220 Hz以上,带宽呈对数增加。根据小波包分析的特性,可以用小波包分析来逼近人耳的Bark谱。对于8 kHz采样、频率在4 kHz以下的大部分的动物声音事件,用常规方法模拟1~17号Bark,可以得到图2,每个子带的中心频率相差约为1 Bark的小波包分解结构。对动物声音识别的第一步,将按这个分解结构,对声音信号进行小波包分解。并把这个小波包分解的17组系数用于下一步的投影特征提取。
声音信号经过小波包分解后,再对其相应的小波包分解系数重构的频谱进行主成分分析,得到BSP特征。对分解系数重构的频谱投影,即提取BSP特征的过程如下。
1)计算规范化的频谱矩阵X。对小波包分解系数进行重构,并把重构的信号进行短时傅里叶变换,得到重构信号的频谱。其中,t代表帧索引,,代表频率索引,。 将第 t 帧,转化为规范化的帧:
图 2 声音信号的Bark尺度小波包分解结构Fig. 2 Wavelet packet decomposition of sound signal based on Bark scale
式中K值可以通过式(6)确定:
计算前K个特征值之和占全部特征值之和的比重来衡量。
我们对样本声音进行如图2所示的Bark尺度的小波包分解,并得到为17个分解系数重构的频谱投影,即BSP特征,将作为RF训练与识别的特征。
RF是一种利用多棵决策树分类器来对数据进行判别的集成分类器算法[8],其输出结果是由决策树输出的类标签的数量而定。这里,将各个小波包结点分解生成的BSP特征结合RF分类器,对动物声音样本进行训练和识别。其过程如图3所示,通过自助重采样技术,从训练样本第个结点的BSP特征集{}中自助重采样,生成新的个训练样本集。然后这个训练样本集,按照决策树的构建方法生长成颗决策树,并组合在一起形成第i个森林。由这棵决策树构造出第i 个RF与第i个结点的BSP特征集相对应。每个BSP特征集都要生成一个RF,因此一共生成17个RF。
图 3 随机森林(RF)训练与识别过程Fig. 3 The train and recognition process of random forests
RF对测试样本的识别过程如下。首先,把测试样本各个Bark频率群生成的BSP特征分别放在相应RF的棵决策树的根节点。根据决策树判别规则向下传递直到决策树的叶子节点。叶子节点对应的类标签就是这棵决策树对特征所属类别所做的投票。根据17个子频带生成的RF中每棵决策树的投票结果,统计17个RF中所有投票总和,其中获得投票数最多的类标签就是测试样本对应类标签l。
如表1所示,实验使用的40种纯净动物叫声来自Freesound[16]声音数据库,分成鸟类和哺乳类;4种环境声音,为录音棒录制的环境背景声音。每种声音有30个样本,实验中随机选取20个样本作为训练样本,其余10个样本作为测试样本。对声音文件统一处理,将其都转换成:采样率为8 kHz,量化精度为16 bits,单声道,且长度为2 s左右wav格式的声音片段。实验对所有的声音样本归一化处理并采用Hamming窗进行分帧。
表 1 声音样本集Table 1 Sound sample set
1) 帧
在短时傅里叶变换过程中,每帧帧长为32 ms,帧移为帧长一半。
2) 特征
小波包分解采用db2基函数,频谱投影参数K通过实验确定。在对比实验中,声谱图投影特征[17-18]的投影参数K取5;梅尔频率倒谱系数(mel frequency cepstrum coefficient, MFCC),采用 24 阶三角滤波器组,提取12维离散余弦变换系数;幂归一化倒谱系数(power normalized cepstrum coefficients, PNCC),采用32阶的Gammatone滤波器,提取12维离散余弦变换系数。
3) 随机森林(RF)分类器
其主要参数有两个,一个是决策树中非叶节点分裂时预选特征成分的数量,另一个是RF中决策树的个数。综合考虑该文实验样本数量和实验结果,设定。利用RF进行3次识别,然后取均值作为最终结果。
通过纯净声音的BSP结合随机森林(RF)训练和测试,确定BSP参数K。在实验中,我们在没有背景声音的条件下确定BSP特征中K的选取,K代表投影矩阵中选取的前K个特征向量。如图4所示,当时,随着K的增加,测试样本的识别率迅速增加,当时,随着K的增加,测试样本的识别率并无明显提升。出于计算代价和性能表现的权衡,在下面实验中,K取5。
图 4 参数K与识别率Fig. 4 Parameter K and its recognition rate
使用维纳滤波[19]、多频带谱减法[20]和短时谱估计法[21]对声音进行增强处理,然后提取BSP特征,分别进行RF的识别率测试,并选出最有效的声音增强算法。
为了减少同一声音事件在不同信噪比及不同噪声环境下,因增强处理带来信号失真的差异,实验中我们对纯净的训练声音样本也都分别进行维纳滤波、多频带谱减法和短时谱估计法的增强处理。对测试样本,在分别添加信噪比为–10 dB、–5 dB、0 dB、5 dB和10 dB的4种环境声后,再进行相应3种增强方法处理。在随后的实验中也采取这种方法。
实验结果如图5所示。结果表明,在信噪比为10 dB时,BSP结合RF具有80%以上的平均识别率。但在不同环境不同信噪比下,不做声音增强处理的识别率,整体上低于3种声音增强处理的识别率。说明3种声音增强算法一定程度上都能消除背景声音的影响。尤其,在低于0 dB的情况下,特别是低于–5 dB,3种声音增强算法消除噪声的作用最为明显。从图5 可以看出,嘈杂说话声环境和流水声环境在–5 dB以上信噪比时、风声环境在5 dB及以上信噪比时,维纳滤波的识别率逐渐低于不增强处理时的识别率。多频带谱减法和短时谱估计法,对4种环境各种信噪比下,则都保持较高的识别率。在不同环境声不同信噪比的条件下,短时谱估计法有最佳的识别性能,因此在之后的实验中采用短时谱估计增强方法对声音信号进行加强。
图 5 4种不同噪声环境下不同增强处理方法的识别效果Fig. 5 Results of different enhancement process in four kinds of noisy environments
把BSP特征与SPD[12]、声谱图投影[17-18]、PNCC和MFCC等4种常用特征进行RF的训练与识别实验比较。
首先,无噪声条件下的实验,结果如表2所示。BSP、SPD、声谱图投影、PNCC和MFCC等5种特征对动物声音的识别率都达到90%以上,其中,目前对声音事件识别最有效的SPD,识别效果略好于该文的BSP。
表 2 无噪声条件下不同方法的比较Table 2 Comparing different method in non-noise condition %
其次,在不同噪声环境不同信噪比条件下的5种特征的平均识别率实验结果如表3所示。利用流水声、风声、公路声和嘈杂说话声,模拟真实复杂环境噪声。取信噪比–10 dB、–5 dB、0 dB、5 dB、10 dB和15 dB,分别与4种噪声环境进行混合,用于RF训练并测试5种不同特征提取的平均识别率。不同噪声环境下的平均识别率如表3所示。从表3中可以看到,在不同环境不同信噪比条件下,BSP的平均识别率达到80.5%,比SPD、声谱图投影、PNCC和MFCC等4种特征分别高出11.4%、9.6%、17.1%和50.5%。
表 3 在不同噪声环境下的平均识别率Table 3 Average accuracy in different noisy environments %
由于MFCC在低信噪比的识别率明显低于其他4种特征,随后,我们只比较其他4种特征的识别效果。图6表示BSP、SPD、声谱图投影和PNCC等4种特征,在4种噪声环境下,信噪比为–10 dB、–5 dB、0 dB和5 dB时的识别率。从图中可以看出,在信噪比小于0 dB时,BSP特征的识别率明显高于其他3种特征。
图 6 4种噪声环境下不同信噪比的识别率Fig. 6 Recognition rate of four kinds of features in four kinds of noisy environments
把该文提出BSP-RF与MP-SVM[10]、PC-SVM[11]和SPD-KNN[12]等声音事件检测识别的3种方法进行比较,结果如表4所示。从表4中可以看出,本文方法BSP-RF在低信噪比情况下的识别率,与文献[10-12]中的方法相比有较大提高。BSP-RF在–10 dB的情况下,依然能够保持平均60%以上的识别率,效果尤为明显。其次,我们进行BSP结合SVM,BSP结合KNN的实验。结果表明,对于BSP特征而言,采用RF对各种环境下不同信噪比动物声音的识别效果优于SVM与KNN。
表 4 6种方法的平均识别率Table 4 Average recognition rate of six kinds of methods %
从表4可以看出,RF的平均识别率高于KNN和SVM。特别是在–10 dB的情况下,分别比KNN和SVM高出20.9%、10.3%,说明RF比KNN、SVM更适用于BSP特征的分类识别。由于BSP特征把声音信号分解成17个频带,每个频带只包含部分的声音信息,用这些不完整的信息进行KNN分类会造成识别率的下降。KNN是基于距离的分类方法,某个特征维度之间的差异值过大可能很大程度上影响其他特征维度,同时KNN不能给出决策树那样的分类规则,所以BSP特征在KNN的分类效果低于RF。SVM适用于高维度、分类数目少、小样本的分类识别,BSP的特征维度相对较小且实验中包含40类动物声音,所以文中方法不适合采用SVM进行分类。RF是基于决策树的分类规则挖掘不同特征维度之间的关系,同时结合不同频带之间投票结果,可以提高BSP特征的分类精度,所以RF比KNN以及SVM更适用于BSP特征的分类。
为了分析环境声音对动物声音在各个Bark频率群的影响,我们给出纯净的翠鸟声音和加入信噪比为–10 dB背景声音后各个Bark频率群的能量分布。从图7中可以看出各个Bark频率群的能量的变化以及背景声音对翠鸟声音在各个Bark频率群的影响。
图 7 翠鸟的各个Bark频率群的能量分布Fig. 7 The energy distribution of kingfisher in each Barkfrequency group
图7(a)和(b)是翠鸟声音经过声音增强前后的各个Bark频率群的能量分布。从图中可以看出背景声音对Bark频率群1~4,即低频部分的影响比较大,对于高频部分的影响相对比较小。经过短时谱估计法声音增强后,可以消除大部分背景声音的影响,但影响依然存在。该文结合经过Bark尺度小波包结构,把声音信号分解成17个投影特征。这样,可以有效地平衡背景声音对部分Bark频率群的影响,有利于识别率的提高。
1) Bark尺度的小波包分解的本质
Bark尺度的小波包分解的本质,就是把声音信号按人类听觉敏感程度,对声音信号进行频带划分,再进行不同尺度的小波分析。动物声音,即便在各种环境中,受到不同信噪比的环境声音的干扰,只要人类听觉能感知到,就意味着它存在不同于环境声音的Bark频率群。而本文提出的Bark尺度的小波包分解系数重构频谱投影,就是分离出这些相关频率群频谱的关键成分。这些Bark频率群的频谱,必然为每一种动物声音的特色或独有。用这些频谱的投影,进行随机森林(RF)的投票,必定是高分。而与那些与背影声音同频率群的成分,虽然在投票中难获高分,但多个频率群共同投票后,仍然能保持较高的得分优势。
2) 错误检测的分析
表5给出加入–5 dB风声后,16类容易出现错误检测的情况(另外24类基本上能够正确识别,限于空间,表5中未列出)。从表5可以看出,在–5 dB风声下,第10类的测试样本全部被错误检测,其中有9个测试样本错分到第19类中;第24、28、38、39这4类测试样本也都全部被错误检测成第19类。同时,发现大部分被错误检测的样本,都被检测成第19类。
表 5 加入–5 dB风声噪声测试样本错分情况Table 5 Wrong test samples’ condition in –5 dB wind noise
观察图8(a) 10类(鹈鹕)、(b) 19类(黄喉地莺)和(c) 38类(绵羊)声音分别在–5dB风声下的声谱图,可以发现它们的相似之处。其中,低频部分,即0~800 Hz部分相似度较高;3张声谱图在0.5 s之后,高低频部分都很相近。也就是说,这3张频谱图,高低频部分有80%左右是相近的。这就可能造成大部分Bark频率群频谱投影的相近或相等,从而造成了测试样本的错误检测。
从实验结果进一步观察到,在加入风声噪声的情况下,大部分错分的样本被错分到第19类;在加入嘈杂说话声时则大部分的样本被错分到第2类;在加入公路噪声时则大部分的样本被错分到第39类。这说明测试样本错分的原因和加入噪声的类型有关。
图 8 3种不同动物在-5 dB风声下的频谱Fig. 8 Spectrums of three kinds of animal in -5 dB wind noise
但是,它们作为不同的动物的声音,自然环境下,能被人类听觉感知到,必然有区别于环境声音的成分存在,即有不同于背景声音的Bark频率群存在。因此,根据该文方法的原理,这种差别可以通过小波包分解结构及随机森林投票策略的适当调整来识别。进而,本文提出的方法可以在各种背景声音中,识别各种不同信噪比的动物声音。
3) 更深层次的识别
对于非平稳的环境及动物声音,如在特定的背景声音环境下,各种动物声音混在一起,时强时弱等情况,有可能影响RF投票结果。对于这种情况,我们可以考虑帧一级的RF投票。如,声音信号按32 ms分帧,只要动物声音不是在32 ms内同时发生,我们依然可以通过RF投票确定每一帧可能的动物声音,并进一步来判断出可能的多种的动物声。这种情况下,这种方法甚至可以识别出人类很难识别的非平稳及混合的各种动物声音。
实验表明,在–10 dB以上信噪比环境下,在未对声音信号进行增强处理的情况下,该文提出的方法对于动物声音识别有较好的效果。而短时谱估计声音增强结合BSP特征与随机森林的方法,不论是低信噪比还是高信噪比声音环境,对各种环境中的动物声音检测都有较好的效果。
提出的方法能胜任于自然环境下各种低信噪比动物声音识别的原因如下:1) 采用短时谱估计声音增强算法,一定程度上抑制了环境声音的影响。2) Bark尺度的小波包分解是基于人耳基底膜的工作原理,环境声音对于不同Bark频率群的影响是不一样的,因此结合各个Bark频率群的特征信息作为决策依据,一定程度上能够提高识别率。3) 采用多随机森林决策的方法有效地消除了环境声音对部分Bark频率群特征的影响。
在后续的工作中,将结合深度学习相关方法,围绕如何在多个声音重叠的情况下实现各个声音事件的检测与识别做进一步的研究。