首页 > 乐器声学 专利正文
一种鸟鸣声识别模型训练方法、识别方法及存储介质与流程

时间:2022-01-23 阅读: 作者:专利查询

一种鸟鸣声识别模型训练方法、识别方法及存储介质与流程

1.本发明涉及声音识别领域,尤其是一种鸟鸣声识别模型训练方法、识别方法及存储介质。


背景技术:

2.世界上有近10000种鸟类,相关数据表明,部分鸟类种群数量呈现下降趋势,人类对鸟类的保护已经到了刻不容缓的地步,而鸟种丰富度和鸟类活动活跃度往往能推断出这个地区的环境质量的好坏,因此如何监测鸟类的方式是保护鸟类的重要一步。
3.目前监测鸟类的方法有传统的人工样点法、样线法以及人工布置红外相机监测等,传统的人工监测方法存在着效率低、覆盖面窄的缺陷,布置的红外相机还受拍摄角度以及供电的影响。而实际上,相比于用照片或视频来观察鸟喙或者鸟的羽毛等形态特征,鸟鸣声所蕴含的生物学信息特征也有很大的差异,这种差异可以帮助区分不同物种的鸟,因此基于鸣声的鸟类监测是一种新兴方法,可以通过提取和分析鸟鸣声所蕴含的信息来鉴别鸟的物种,统计生态区的鸟类分布特点,从而帮助了解生物多样性,进而监控生态系统的平衡。而目前传鸟鸣声监测基于模板匹配的分类算法或者深度学习,而基于模板匹配的分类算法鲁棒性差,适用场景窄;当数据量紧缺或者数据质量不高时,深度学习算法表现不佳,导致训练的模型识别效果差,因此需要寻求解决方案。


技术实现要素:

4.有鉴于此,为了解决上述技术问题,本发明的目的是提供一种鸟鸣声识别模型训练方法、识别方法及存储介质。
5.本发明采用的技术方案是:
6.一种鸟鸣声识别模型训练方法,包括:
7.获取数据集合;所述数据集合包括预训练音频数据集、预训练鸟声数据集、目标鸟声数据集以及负样本数据集;
8.对所述预训练音频数据集、所述预训练鸟声数据集、所述目标鸟声数据集分别进行第一处理,得到所述预训练音频数据集、所述预训练鸟声数据集以及所述目标鸟声数据集对应的第一训练数据;所述第一处理包括:对所述预训练音频数据集、所述预训练鸟声数据集、所述目标鸟声数据集分别进行第一分帧处理并根据第一分帧处理结果确定第一幅度谱,根据所述第一幅度谱确定由有效帧构成的第一切片数据,根据所述第一切片数据进行第二分帧处理并根据第二分帧处理结果确定第二幅度谱,根据所述第二幅度谱以及梅尔滤波器组确定第一梅尔谱,对所述第一梅尔谱进行频率时间屏蔽处理;
9.对所述负样本数据集进行第二处理,得到第二训练数据;
10.根据所述第一训练数据以及所述第二训练数据,对鸟鸣声识别模型进行训练,得到目标鸟鸣声识别模型。
11.进一步,所述对所述预训练音频数据集、所述预训练鸟声数据集、所述目标鸟声数
据集分别进行第一分帧处理,包括:
12.对所述预训练音频数据集、所述预训练鸟声数据集、所述目标鸟声数据集根据预设帧长和预设帧移分别进行分帧,分别得到对应的分帧数据;
13.分别从分帧数据中确定第一帧以及确定第二帧;第二帧为第一帧的上一帧;
14.将第一帧与第二帧进行帧叠后将第二帧作为新的第一帧,返回所述确定第二帧的步骤,直至第一帧为分帧数据的最后一帧,得到分帧数据对应的帧叠数据;所述帧叠数据为所述第一分帧处理结果。
15.进一步,所述根据第一分帧处理结果确定第一幅度谱,包括:
16.对所述帧叠数据进行第一加窗处理,得到第一加窗处理结果;
17.对所述第一加窗处理结果进行傅里叶变换运算处理;
18.确定傅里叶变换运算处理结果的模值,得到所述帧叠数据中每一帧数据的第一幅度谱。
19.进一步,所述根据所述第一幅度谱确定由有效帧构成的第一切片数据,包括:
20.计算所述第一幅度谱每个频率点的分贝值,得到每个频率点的幅度分贝值;
21.根据所述幅度分贝值进行平均值计算,确定每一帧数据的平均分贝值;每一帧数据包括若干个频率点;
22.将所述平均分贝值大于等于分贝阈值对应的数据作为有效帧;
23.将所述有效帧按照时间先后顺序进行拼接得到拼接数据;
24.根据预设切片长度对所述拼接数据进行第一切片处理,得到第一切片数据。
25.进一步,所述梅尔滤波器组包括至少一个梅尔滤波器,所述根据所述第二幅度谱以及梅尔滤波器组确定第一梅尔谱,包括:
26.计算所述第二幅度谱的平方,得到频率谱;
27.根据所述预训练鸟声数据集以及所述目标鸟声数据集中各种鸟种的鸟鸣声发声频率,确定实际频率上限和实际频率下限;
28.根据梅尔频率与实际频率的转化方程,计算所述实际频率上限对应的梅尔滤波器组的带通频率上限以及计算所述实际频率下限对应的梅尔滤波器组的带通频率下限;
29.根据所述梅尔滤波器对所述频率谱进行处理,得到第一梅尔谱;所述梅尔滤波器的中心频率根据所述带通频率上限以及所述带通频率下限确定。
30.进一步,所述对所述第一梅尔谱进行频率时间屏蔽处理,包括:
31.确定各种鸟种对应的鸟鸣频率上限以及鸟鸣频率下限;
32.计算所述鸟鸣频率上限与预设屏蔽宽度的第一差值并确定第一阈值;所述第一阈值大于等于所述鸟鸣频率下限且小于等于所述第一差值;
33.计算所述第一阈值与所述预设屏蔽宽度的和,得到第二阈值;
34.根据所述第一阈值以及所述第二阈值确定屏蔽频率通道范围,并根据所述屏蔽频率通道范围对所述第一梅尔谱进行频率通道屏蔽;
35.确定所述第二分帧处理中分帧的总帧数,计算所述总帧数与预设时间帧屏蔽宽度的第二差值并确定第三阈值;所述第三阈值大于等于1且小于等于所述第二差值;
36.计算所述第三阈值与所述预设时间帧屏蔽宽度的和,得到第四阈值;
37.根据所述第三阈值以及所述第四阈值确定屏蔽时间通道范围,并根据所述屏蔽时
间通道范围以及第二预设通道数对频率通道屏蔽结果进行时间通道屏蔽,得到所述预训练音频数据集、所述预训练鸟声数据集以及所述目标鸟声数据集对应的第一训练数据。
38.进一步,所述对所述负样本数据集进行第二处理,得到第二训练数据,包括:
39.对所述负样本数据集进行第二切片处理,得到第二切片数据;
40.对所述第二切片数据进行第三分帧处理并根据第三分帧处理结果确定第三幅度谱,根据所述第三幅度谱以及梅尔滤波器组确定第二梅尔谱并作为所述第二训练数据。
41.进一步,所述鸟鸣声识别模型包括特征提取主干模块以及鸟声识别检测块,所述鸟声识别检测块包括第一支路和第二支路;所述根据所述第一训练数据以及所述第二训练数据,对鸟鸣声识别模型进行训练,得到目标鸟鸣声识别模型,包括:
42.根据所述第二训练数据和所述目标鸟声数据集对应的第一训练数据构成第三训练数据;
43.将所述预训练音频数据集以及所述预训练鸟声数据集对应的第一训练数据以及所述第三训练数据输入至特征提取主干模块进行特征提取处理,将特征提取处理得到的嵌入特征在时间维度上进行聚合,得到子片段级的预测结果;所述特征提取主干模块基于分级迁移学习训练得到;
44.将所述子片段级的预测结果输入至第一支路,进行第一卷积处理,得到各个子片段的鸟声的片段级预测结果;
45.将所述子片段级的预测结果输入至第二支路,进行第二卷积处理并输入用于分类的注意力块,将所述注意力块的输出与所述片段级预测结果相乘并基于子片段的时间进行聚合,得到帧级别预测结果;
46.根据所述片段级预测结果或者所述帧级别预测结果计算损失函数值,并根据所述损失函数值通过微调确定目标鸟鸣声识别模型。
47.本发明还提供一种鸟鸣声识别方法,包括:
48.将待检测鸟鸣声数据输入所述目标鸟鸣声识别模型,得到识别结果;所述识别结果包括片段级识别结果或者帧级别识别结果,所述片段级识别结果包括待检测鸟鸣声数据中的鸟鸣声类别,所述帧级别识别结果包括待检测鸟鸣声数据中的鸟鸣声类别以及鸟鸣声出现的起始时刻以及结束时刻。
49.本发明还提供一种鸟鸣声识别装置,包括处理器以及存储器;
50.所述存储器存储有程序;
51.所述处理器执行所述程序以实现所述方法。
52.本发明还提供一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行时实现所述方法。
53.本发明的有益效果是:通过对预训练音频数据集、预训练鸟声数据集、目标鸟声数据集分别进行第一处理,得到预训练音频数据集、预训练鸟声数据集以及目标鸟声数据集对应的第一训练数据,第一处理包括:对预训练音频数据集、预训练鸟声数据集、目标鸟声数据集分别进行第一分帧处理并根据第一分帧处理结果确定第一幅度谱,根据第一幅度谱确定由有效帧构成的第一切片数据,能够对数据集合进行数据增强,有利于提高第一训练数据的质量;根据第一切片数据进行第二分帧处理并根据第二分帧处理结果确定第二幅度谱,根据第二幅度谱以及梅尔滤波器组确定第一梅尔谱,对第一梅尔谱进行频率时间屏蔽
处理,使得第一训练数据更加具有鲁棒性,扩展了适用场景;对负样本数据集进行第二处理,得到第二训练数据,根据第一训练数据以及第二训练数据,对鸟鸣声识别模型进行训练,得到目标鸟鸣声识别模型,有利于提高目标鸟鸣声识别模型的识别准确率。
附图说明
54.图1为本发明鸟鸣声识别模型训练方法的步骤流程示意图;
55.图2为本发明具体实施例鸟鸣声识别模型的示意图;
56.图3为本发明具体实施例分级迁移学习预模型的示意图。
具体实施方式
57.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
58.本技术的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
59.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
60.如图1所示,本发明实施例提供一种鸟鸣声识别模型训练方法,包括步骤s100-s400:
61.s100、获取数据集合。
62.本发明实施例中,数据集合包括预训练音频数据集、预训练鸟声数据集、目标鸟声数据集以及负样本数据集。可选地,预训练音频数据集的数据可以包括人的语音、各种动物鸣叫声、各种乐器流派声等音频数据(信号);负样本数据集可以包括为自然噪声(风声,雨声,流水声等)、城市噪声(交通噪声、建筑施工噪声、社会生活噪声)等,不作具体限定,具体可以添加实际项目中可能遇到的噪声类别;预训练鸟声数据集大量不同鸟种的音频数据;目标鸟声数据集包含多种数量鸟种的音频数据,而鸟种数量比预训练鸟声数据集小,而用预训练鸟声数据集训练出来的模型再对目标鸟声数据集进行拟合,这样训练出来的最终模型比直接拟合目标鸟声数据集的模型具有更高的鲁棒性,避免由于目标鸟声数据集各鸟种数量不足导致模型过拟合。需要说明的是,各个数据集中均为片段级标注的数据(包含真实标签),可以来源于各种爱鸟录音网站。可选地,对于以上数据集的类别数数量关系,一般设置为n
sound
》n
bird-source
》n
bird-target
》n
negative
(包括但不限于100》50》20》10)。对于以上数据集的每个类别的数据总时长,可设置为k
sound
》k
bird-source
》k
bird-target
》k
negative
,同时要求各个数据
集的每个类别数据总时长不低于10分钟,每个类别的数据可以包括若干个音频文件/数据。如表1所示,为数据集的相关信息。
63.表1
[0064][0065]
s200、对预训练音频数据集、预训练鸟声数据集、目标鸟声数据集分别进行第一处理,得到预训练音频数据集、预训练鸟声数据集以及目标鸟声数据集对应的第一训练数据。
[0066]
需要说明的是,对预训练音频数据集进行第一处理,得到预训练音频数据集对应的第一训练数据,对预训练鸟声数据集进行第一处理,得到预训练鸟声数据集对应的第一训练数据,对目标鸟声数据集(本地目标鸟声数据集)进行第一处理,得到目标鸟声数据集(本地目标鸟声数据集)对应的第一训练数据。
[0067]
可选地,第一处理包括:对预训练音频数据集、预训练鸟声数据集、目标鸟声数据集分别进行第一分帧处理并根据第一分帧处理结果确定第一幅度谱,根据第一幅度谱确定由有效帧构成的第一切片数据,根据第一切片数据进行第二分帧处理并根据第二分帧处理结果确定第二幅度谱,根据第二幅度谱以及梅尔滤波器组确定第一梅尔谱,对第一梅尔谱进行频率时间屏蔽处理。
[0068]
具体地,对预训练音频数据集、预训练鸟声数据集、目标鸟声数据集分别进行第一分帧处理中,包括步骤s211-s213:
[0069]
s211、对预训练音频数据集、预训练鸟声数据集、目标鸟声数据集根据预设帧长和预设帧移分别进行分帧,分别得到对应的分帧数据。
[0070]
可选地,对预训练音频数据集、预训练鸟声数据集、目标鸟声数据集根据预设帧长和预设帧移分别进行分帧。本发明实施例中,记一个音频文件的数据采样点数n,设置分帧帧长为wlen(预设帧长,包括但不限于1024),设置帧移inc(预设帧移,包括但不限于256),得该音频文件的分帧帧数nf,λ为帧编号,λ∈[1,nf]。
[0071][0072]
记分帧后的每一帧为x
in
(n,λ),x
in
(n,λ)构成分帧数据,其中n为采样点编号,n=0,1,...,n
f-1,其中nf为帧叠后的总长度(可以设为2的整数次方,如1024)。
[0073]
s212、分别从分帧数据中确定第一帧以及确定第二帧;第二帧为第一帧的上一帧。
[0074]
s213、将第一帧与第二帧进行帧叠后将第二帧作为新的第一帧,返回确定第二帧
的步骤,直至第一帧为分帧数据的最后一帧,得到分帧数据对应的帧叠数据;帧叠数据为第一分帧处理结果。
[0075]
具体地,确定当前帧,将当前帧与相邻帧进行帧叠,例如可以为将当前帧与上一帧帧叠或者将当前帧与下一帧帧叠,不作具体限定。本发明实施例中以第二帧为x
in
(n,λ-1),第一帧为x
in
(n,λ)为例,进行说明,将相邻的帧进行帧叠,直至第一帧为分帧数据的最后一帧(即没有上一帧),从而确定分帧数据对应的帧叠数据。具体地,将当前帧x
in
(n,λ)与上一帧x
in
(n,λ-1)进行帧叠得到帧叠结果x
on
(n,λ),帧叠公式如下:
[0076][0077]
其中,n
l
为帧叠开始的采样点编号,nf为帧叠后的总长度,各个x
on
(n,λ)构成帧叠数据,即x
on
(n,λ)为帧叠数据的一部分。具体地,预训练音频数据集的分帧数据帧叠后得到对应的帧叠数据,预训练鸟声数据集的分帧数据帧叠后得到对应的帧叠数据,目标鸟声数据集的分帧数据帧叠后得到对应的帧叠数据。
[0078]
具体地,根据第一分帧处理结果确定第一幅度谱中,包括步骤s221-s223:
[0079]
s221、对帧叠数据进行第一加窗处理,得到第一加窗处理结果。
[0080]
具体地,对x
on
(n,λ)进行加窗,本发明实施例中以汉明窗为例,其他实施例中不作具体限定。其中,汉明窗w(n,α),其中w()为向量,α取0.46,窗长(即w(n,α)的长度,n的取值范围)等于帧长点数nf(总长度),由此得到所有加窗后的帧xw(λ,n)(第一加窗处理结果):
[0081][0082]
xw(n,λ)=x
on
(n,λ)*w(n,α)0≤n≤n
f-1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0083]
s222、对第一加窗处理结果进行傅里叶变换运算处理。
[0084]
s223、确定傅里叶变换运算处理结果的模值,得到帧叠数据中每一帧数据的第一幅度谱。
[0085]
可选地,傅里叶变换运算处理可以为利用dft(离散傅里叶变换(discrete fourier transform)或者利用fft(快速傅立叶变换,fast fourier transform)进行处理,不作具体限定。本发明实施例中,以dft为例进行说明。具体地:
[0086]
对每一帧xw(n,λ)进行n点(一般为2的次幂,例如1024)的傅里叶变换运算,取傅里叶变换运算处理结果的模值得到每一帧信号(数据)的幅度谱第一幅度谱x(k,λ),其中k表示频率点,λ为帧编号,j为虚数单位,由于傅里叶变换的对称性,只对频谱的前nf个频点进行分析,其中nf=n/2+1。
[0087][0088]
具体地,根据第一幅度谱确定由有效帧构成的第一切片数据中,包括步骤s231-s235:
[0089]
s231、计算第一幅度谱每个频率点的分贝值,得到每个频率点的幅度分贝值。
[0090]
s232、根据幅度分贝值进行平均值计算,确定每一帧数据的平均分贝值。
[0091]
需要说明的是,每一帧数据包括若干个频率点。
[0092]
具体地,对x(k,λ)的每个频率点上计算分贝值,得到每一帧的每个频率点上的幅度分贝值db(k,λ),最后计算平均分贝值dba(λ)代表这一帧信号的分贝值:
[0093]
db(k,λ)=20lg|x(k,λ)|0≤k≤n
f-1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0094][0095]
s233、将平均分贝值大于等于分贝阈值对应的数据作为有效帧。
[0096]
s234、将有效帧按照时间先后顺序进行拼接得到拼接数据。
[0097]
s235、根据预设切片长度对拼接数据进行第一切片处理,得到第一切片数据。
[0098]
本发明实施例中,设置分贝阈值ζ,分贝阈值ζ理的大小可以根据实际需求设定,可选地本发明实施例中以ζ取值范围在20db-30db为例,当平均分贝值低于分贝阈值ζ的帧(数据)为无效帧,当平均分贝值大于等于分贝阈值ζ的帧(数据)为有效帧,由此统计到一个音频数据的所有有效帧,将有效帧在时间维度上按时间先后顺序进行拼接,得到拼接数据y_ping。然后,根据预设切片长度对拼接数据y_ping进行第一切片处理,得到第一切片数据y_cut。可选地,第一切片处理可以采用汉明窗方法,参照公式(3),设置切片窗口长度(预设切片长度)为n
cut
(包括但不限于64000),若存在长度小于n
cut
的拼接数据,要对其进行补零到n
cut
,由此把拼接完成的拼接数据y_ping转化为一定数量长度为n
cut
的第一切片数据y_cut。
[0099]
可选地,根据第一切片数据进行第二分帧处理并根据第二分帧处理结果确定第二幅度谱中,第二分帧处理类似于第一分帧处理,对第一切片数据进行分帧、叠帧得到第二分帧处理结果;根据第二分帧处理结果确定第二幅度谱类似于根据第一分帧处理结果确定第一幅度谱,对分帧处理结果进行加窗处理、傅里叶变换运算处理、确定傅里叶变换运算处理结果的模值,得到帧叠数据(第二分帧处理结果)中每一帧数据的第二幅度谱,不再赘述。
[0100]
本发明实施例中,梅尔滤波器组包括至少一个梅尔滤波器;具体地,根据第二幅度谱以及梅尔滤波器组确定第一梅尔谱,包括步骤s241-s244:
[0101]
s241、计算第二幅度谱的平方,得到频率谱。
[0102]
可选地,假设第二幅度谱为x
p
(k1,λ1),则第一切片数据的频率谱为x
p2
(k1,λ1),其中,k1表示频率点,λ1表示帧编号。
[0103]
s242、根据预训练鸟声数据集以及目标鸟声数据集中各种鸟种的鸟鸣声发声频率,确定实际频率上限和实际频率下限。
[0104]
具体地,实际频率上限为fh和实际频率下限为f
l
,例如f
l
=200hz,fh=14000hz,将所有鸟鸣声中频率最高的作为fh,将所有鸟鸣声中频率最低的作为f
l

[0105]
s243、根据梅尔频率与实际频率的转化方程,计算实际频率上限对应的梅尔滤波器组的带通频率上限以及计算实际频率下限对应的梅尔滤波器组的带通频率下限。
[0106]
具体地,转化方程为:
[0107][0108]
其中,f
mel
(f)为转换结果,f为频率,计算处待定出梅尔滤波器组的带通频率上下限,得到带通频率上限f
mel
(fh)以及带通频率下限f
mel
(f
l
)。
[0109]
s244、根据梅尔滤波器对频率谱进行处理,得到第一梅尔谱。
[0110]
需要说明的是,梅尔滤波器的中心频率根据带通频率上限以及带通频率下限确定。
[0111]
本发明实施例中,构建梅尔滤波器组,在鸟声(鸟鸣声)的频率范围内(如f∈[f
l
,fh])设置若干(梅尔滤波器)带通滤波器h(k1,m),1≤m≤m,其中k1表示频率点,λ1表示帧编号,m为滤波器的标号,m为梅尔滤波器的总数量。需要说明的是,m的取值可以根据需要进行调整,不作具体限定,m取值越大,得出的梅尔谱频率分辨率越好,本发明实施例中,m为256。h(k1,m)表达式见式(9),每个梅尔滤波器具有三角滤波特性,其中心频率为f(m)(第m个滤波器的中心频率),如式(10)所示:
[0112][0113][0114]
n1为dft(或者fft)的长度,fs为采样频率,为f
mel
(f)的逆函数,b代表梅尔频率,为梅尔频率值b(单位为mel)转化为频率(单位为hz)。
[0115]
本发明实施例中,将第一切片数据y_cut的频率谱x
p2
(k1,λ1)通过梅尔滤波器h(k1,m)得到该第一切片数据y_cut的第一梅尔谱见式子(11),从而可以把看成一个时间维度为λ1∈[1,247]、频率维度为m∈[1,256]的谱图:
[0116][0117]
其中,nf1为第二处理的分帧数。
[0118]
具体地,对第一梅尔谱进行频率时间屏蔽处理,频率时间屏蔽处理包括频率通道屏蔽以及时间通道屏蔽,即在谱图的横轴方向(频率),纵轴方向(时间),选择一定范围的通带置0。
[0119]
具体地,频率通道屏蔽包括步骤s251-s253;
[0120]
s251、确定各种鸟种对应的鸟鸣频率上限以及鸟鸣频率下限。
[0121]
可选地,可以通过根据预训练鸟声数据集或者目标鸟声数据集中各种鸟种的鸟鸣声发声频率,测定鸟鸣频率上限f
鸟max
以及鸟鸣频率下限f
鸟min
,或者通过查询资料确定各种鸟种对应的鸟鸣频率上限f
鸟max
以及鸟鸣频率下限f
鸟min
,具体不作限定。
[0122]
s252、计算鸟鸣频率上限与预设屏蔽宽度的第一差值并确定第一阈值;第一阈值大于等于鸟鸣频率下限且小于等于第一差值。
[0123]
s253、计算第一阈值与预设屏蔽宽度的和,得到第二阈值。
[0124]
s254、根据第一阈值以及第二阈值确定屏蔽频率通道范围,并根据屏蔽频率通道范围对第一梅尔谱进行频率通道屏蔽。
[0125]
具体地,屏蔽频率通道范围为[m1,m1+f
*
),其中m1∈[f
鸟min
,f
鸟max-f
*
],其中f
*
为可调的预设屏蔽宽度,例如可以设置对应鸟种发声频带宽度的n%(n∈[0,20)),第一阈值为m1,第二阈值为m1+f
*
,然后根据屏蔽频率通道范围设置频率屏蔽通道数nf(例如2),对第一梅尔谱进行频率通道屏蔽,得到频率通道屏蔽结果。
[0126]
具体地,时间通道屏蔽包括步骤s261-s263:
[0127]
s261、确定第二分帧处理中分帧的总帧数,计算总帧数与预设时间帧屏蔽宽度的第二差值并确定第三阈值;第三阈值大于等于1且小于等于第二差值。
[0128]
可选地,第二分帧处理中分帧的总帧数为对第一切片数据进行分帧、叠帧后的总帧数。
[0129]
s262、计算第三阈值与预设时间帧屏蔽宽度的和,得到第四阈值。
[0130]
s263、根据第三阈值以及第四阈值确定屏蔽时间通道范围,并根据屏蔽时间通道范围对频率通道屏蔽结果进行时间通道屏蔽,得到预训练音频数据集、预训练鸟声数据集以及目标鸟声数据集对应的第一训练数据。
[0131]
具体地,屏蔽时间范围通道为[λ2,λ2+t
*
),其中λ2∈[1,总帧数-t
*
],t
*
是可调的预设时间帧屏蔽宽度,例如可以设置对应鸟种发声频带宽度的n%(n∈[0,20)),λ2为第三阈值,λ2+t
*
为第四阈值,然后根据屏蔽时间范围通道设置屏蔽时间通道数n
t
,(例如2),对频率通道屏蔽结果进行时间通道屏蔽,在时间通道λ2∈[1,nf]范围内置零n
t
数量的通道。需要说明的是,本发明实施例中,屏蔽时间通道数n
t
与频率屏蔽通道数nf相同;最终得到的预训练音频数据集、预训练鸟声数据集以及目标鸟声数据集对应的第一训练数据为经过频率通道屏蔽以及时间通道屏蔽处理的梅尔谱。
[0132]
s300、对负样本数据集进行第二处理,得到第二训练数据。
[0133]
具体地,步骤s300包括步骤s310-s320:
[0134]
s310、对负样本数据集进行第二切片处理,得到第二切片数据。
[0135]
s320、对第二切片数据进行第三分帧处理并根据第三分帧处理结果确定第三幅度谱,根据第三幅度谱以及梅尔滤波器组确定第二梅尔谱并作为第二训练数据。
[0136]
同样地,第二切片处理原理与第一切片处理原理相同,第三分帧处理类似于第一分帧处理,对第二切片数据进行分帧、叠帧得到第三分帧处理结果;根据第三分帧处理结果确定第三幅度谱似于根据第一分帧处理结果确定第一幅度谱,对分帧处理结果进行加窗处理、傅里叶变换运算处理、确定傅里叶变换运算处理结果的模值,得到帧叠数据(第三分帧处理结果)中每一帧数据的第三幅度谱。同样地,根据第三幅度谱以及梅尔滤波器组确定第二梅尔谱与根据第二幅度谱以及梅尔滤波器组确定第一梅尔谱的方法相同,不再赘述。
[0137]
s400、根据第一训练数据以及第二训练数据,对鸟鸣声识别模型进行训练,得到目标鸟鸣声识别模型。
[0138]
如图2所示,本发明实施例中,鸟鸣声识别模型包括特征提取主干模块(cnn**_blocks)以及鸟声识别检测块(asc_sed_block),鸟声识别检测块包括第一支路和第二支路。
[0139]
可选地,其中cnn**_blocks由6个特征提取块(cnn*_block)组成,而cnn*_block由
卷积层(cnn层),批标准化层(bn层),池化层(pooling层)组成,每一个cnn*_block的卷积核大小都设置为3
×
3,第一个到第六个cnn*_block的卷积层内的卷积核个数分别设置为64、128、256、512、1024、2048,每一个cnn*_block的pooling层设置为最大池化模式,池化尺寸为2
×
2。
[0140]
具体地,步骤s400包括步骤s410-s450:
[0141]
s410、根据第二训练数据和目标鸟声数据集对应的第一训练数据构成第三训练数据。
[0142]
本发明实施例中,将第二训练数据作为一个负样本类别纳入目标鸟声数据集(本地目标鸟声数据集)对应的第一训练数据中,构成第三训练数据。可选地,第三训练数据可以根据需要进行分配,包括但不限于按比例8:2划分训练集和验证集。其中,第三训练数据用于鸟鸣声识别模型asc_sed_model的微调(fine_tune)。
[0143]
s420、将预训练音频数据集以及预训练鸟声数据集对应的第一训练数据以及第三训练数据输入至特征提取主干模块进行特征提取处理,将特征提取处理得到的嵌入特征在时间维度上进行聚合,得到子片段级的预测结果;特征提取主干模块基于分级迁移学习训练得到。
[0144]
本发明实施例中,将预训练音频数据集以及预训练鸟声数据集对应的第一训练数据按比例8:2划分训练集和验证集,用于训练采用分级迁移学习策略的分级迁移学习的预模型从而得到特征提取主干模块。
[0145]
具体地,构建分级迁移学习预模型cnn_model,cnn_model的结构如图3所示,由特征cnn_blocks、cnn*_blocks和全连接层组成,通过在cnn_model上采取分级迁移学习的策略去获得经迁移学习后的特征提取主干模块cnn**_blocks,具体地迁移学习策略训练过程如下:
[0146]
1)对于cnn_blocks,按预训练音频数据集对应的第一训练数据的类别设置分类全连接层fc(第一全连接层),输入预训练音频数据集对应的第一训练数据得到第一嵌入特征(embedding1),再经过训练所设置的小批次样本数为32,使用初始学习率为1x10-3
的adam优化器进行优化,对模型训练50个epoch(时期)后保存模型,可以得到第一次训练完成的特征提取主干模块cnn**_blocks。
[0147]
2)对于cnn*_blocks,把cnn_blocks的权重复制到cnn*_blocks,按预训练鸟声数据集对应的第一训练数据的类别添加新的分类全连接层fc(第二全连接层),输入预训练鸟声数据集对应的第一训练数据得到第二嵌入特征(embedding2),训练所设置的小批次样本数为32,使用初始学习率为1x10-4
的adam优化器进行优化,通过第三训练数据用微调(fine-tune)的训练方式对模型训练50个epoch后保存模型,可得到新的特征提取主干模块cnn**_blocks,作为鸟鸣声识别模型中的特征提取主干模块。
[0148]
具体地,将预训练音频数据集以及预训练鸟声数据集对应的第一训练数据以及第三训练数据输入至鸟鸣声识别模型中的特征提取主干模块进行特征提取处理,将特征提取处理得到的嵌入特征(embedding)在时间维度上进行聚合,得到子片段级的预测结果(batch_size,2048,子片段),将子片段级的预测结果作为鸟声识别检测块asc_sed_block的输入。
[0149]
s430、将子片段级的预测结果输入至第一支路,进行第一卷积处理,得到各个子片
段的鸟声的片段级预测结果。
[0150]
具体地,对子片段级的预测结果进行第一卷积处理包括:将子片段级的预测结果经过若干个(目标鸟声数据集类别个数)大小为1x1的卷积核进行卷积操作后,再经过sigmoid激活函数进行处理(式12),得到各个子片段的鸟声的片段级预测结果segmentwise_output。
[0151][0152]
其中,x1是输入到sigmoid函数σ()的张量,即s430的片段级预测结果。
[0153]
s440、将子片段级的预测结果输入至第二支路,进行第二卷积处理并输入用于分类的注意力块,将注意力块的输出与片段级预测结果相乘并基于子片段的时间进行聚合,得到帧级别预测结果。
[0154]
具体地,第二卷积处理包括经过若干个(目标鸟声数据集类别个数)大小为1x1的卷积核后,再经过tanh激活函数和softmax函数(式13-14)进行处理,而用于分类的注意力块公式如(15)所示:
[0155][0156][0157]
att_norm=softmax(tanh(x1))
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(15)
[0158]
其中,x1是子片段级的预测结果,p(i)表示第i类别的概率,vi为类别索引i对应的tanh(x1),k为鸟的总类别数。需要说明的是,通过softmax函数可以将多分类的输出数值转化为相对概率,得出的最后注意力块的输出(att_norm)与片段级预测结果相乘,得到各子片段的分类预测结果,然后在子片段的时间轴上进行聚合,得到总片段的分类预测结果clipwise_output,即帧级别预测结果。
[0159]
s450、根据片段级预测结果或者帧级别预测结果计算损失函数值,并根据损失函数值通过微调确定目标鸟鸣声识别模型。
[0160]
可选地,可以根据片段级预测结果或者帧级别预测结果与真实结果(真实标签),通过二元交叉熵(bce)损失函数函数计算损失函数值,并根据损失函数值通过初始学习率为1x10-5
的adam优化器进行微调(fine-tune),训练预设次数(例如10)的epoch或者在损失函数值小于等于损失阈值时结束训练,确定目标鸟鸣声识别模型。
[0161]
具体地,以片段级预测结果为例,利用片段级预测结果和片段级真实标签经过二元交叉熵(bce)损失函数函数计算损失函数值:
[0162][0163]
其中,loss为损失函数值,为预测值(片段级预测结果),yi为片段级真实标签,n2为鸟的类别数。
[0164]
本发明实施例还提供一种鸟鸣声识别方法,包括:
[0165]
将待检测鸟鸣声数据输入上述目标鸟鸣声识别模型,得到识别结果。
[0166]
其中,识别结果包括片段级识别结果或者帧级别识别结果,片段级识别结果为弱
标注输出,包括待检测鸟鸣声数据中的鸟鸣声类别;帧级别识别结果为强标注输出,包括待检测鸟鸣声数据中的鸟鸣声类别以及鸟鸣声出现的起始时刻以及结束时刻。如表2所示,表2为目标鸟鸣声识别模型的识别结果,表3为长录音sedtest1.wav检测结果,其中表2中从左到右为精确率,召回率,f1分数以及测试音频数量;表3中从左到右为音频文件名,鸟类别名,开始时间(s),结束时间(s),最大置信度,平均置信度。
[0167]
表2
[0168][0169]
表3
[0170]
可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
[0185]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0186]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序的介质。
[0187]
以上,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。