一种基于音频提示学习的声音事件检测方法及装置

未命名 10-21 阅读:72 评论:0


1.本发明涉及声音事件检测技术领域,特别是涉及一种基于音频提示学习的声音事件检测方法及装置。


背景技术:

2.声音事件检测,是检测一段音频中是否出现目标声音事件,并标注事件发生类别和起止时间,以实现音频场景解析与分析,属于音频模式识别的一个任务。大部分现有声音事件检测技术方案是通过改进传统音频分类识别任务,并修改输出结构设计得来的。当前基于音频分类的预训练模型已经有许多相关的技术,而如何将预训练的音频分类模型应用到声音事件检测下游任务来是一个很大的挑战。
3.目前,现有的声音事件检测技术方案是在预训练模型的基础上进行全参数微调,但全参数的微调可能会影响预训练模型的特征表征能力,所需的训练时间更长,训练参数量较多,有时候可能需要更多样本的数据集,付出比较大的代价和预算成本。现有的训练与训练模型方法是通过使用帧级标签对帧级损失进行约束,但在现实场景下,并不能获得足够多的帧级别标签数据,而且对其标注也需要耗费大量的物力人力,因此这种训练模型方法缺乏泛用性。


技术实现要素:

4.本发明提供了一种基于音频提示学习的声音事件检测方法及装置,可以减少模型训练的时间和存储空间,节省训练成本,提高声音事件检测的准确性和效率。
5.为了解决上述技术问题,本发明提供了一种基于音频提示学习的声音事件检测方法,包括:
6.对待检测声音进行特征提取,获取所述待检测声音对应的第一梅尔谱图;
7.将第一梅尔谱图输入至预设的第一声音事件检测模型,对所述第一梅尔谱图进行编码,形成第一序列,并通过预设层数的swin transformer block将所述第一序列转换成第二序列,继而利用token-semantic cnn对所述第二序列进行结构修改,输出所述待检测声音的事件帧级分布;
8.根据所述待检测声音的事件帧级分布,确定待检测声音的声音事件类别和声音事件活动时间。
9.本发明将待检测声音进行特征提取,并转换成第一梅尔谱图,将第一梅尔谱图输入至第一声音事件检测模型,对第一梅尔谱图进行编码、结构修改等数据处理,输出事件帧级分布,根据模型输出的事件帧级分布可以得出待检测声音中的声音事件类别及其事件活动时间,提高声音事件检测的准确性和效率。
10.进一步地,所述对待检测声音进行特征提取,获取所述待检测声音对应的第一梅尔谱图,具体为:
11.获取待检测声音的第一时域信号;
12.对所述第一时域信号进行短时傅里叶变换,得到第一短时傅里叶变换幅度谱;
13.利用预设的梅尔滤波器组,将所述第一短时傅里叶变换幅度谱转换成第一梅尔短时傅里叶变换幅度谱;
14.对所述第一梅尔短时傅里叶变换幅度谱取对数,得到第一梅尔谱图。
15.进一步地,所述对所述第一梅尔谱图进行编码,形成第一序列,具体为:
16.将所述第一梅尔谱图拆分成若干个补丁;
17.将所述若干个补丁拼接成第一矩阵,以使所述第一矩阵的尺寸与所述第一声音事件检测模型的输入尺寸相同;
18.利用所述第一声音事件检测模型中的patch-embed cnn,将所述第一矩阵切割成若干个patch token;
19.将若干个patch token根据预设的排列顺序进行排列,形成第一序列。
20.本发明将第一梅尔谱图输入至模型后,将第一梅尔谱图的尺寸调整至与模型的输入尺寸一致,对第一梅尔谱图进行编码,完成数据预处理,形成第一序列,以适应模型的处理形式,避免出现数据不匹配的情况。
21.进一步地,所述利用token-semantic cnn对所述第二序列进行结构修改,得出所述待检测声音的事件帧级分布,具体为:
22.在对所述第二序列进行结构修改前,对第二序列进行升维处理;形成第三序列,所述第三序列包括频率信息、时间信息和类别信息;
23.利用token-semantic cnn,对第三序列的频率信息进行聚合,并对第三序列的时间信息进行插值,得出所述待检测声音的事件帧级分布。
24.本发明将第二序列进行升维处理,形成第三序列;对第三序列中包含的频率信息进行聚合,消去了频率信息的维度,仅剩下时间信息和类别信息的维度,在模型输出前整合数据信息,使得模型输出信息更加简洁和清晰,提高声音事件检测的效率。
25.进一步地,在所述输出所述待检测声音的事件帧级分布前,还包括:
26.判断所述待检测声音的事件帧级分布是否有效,具体为:
27.判断第一事件预测是否大于预设的第一阈值;其中,所述第一事件预测由所述第一声音事件检测模型对所述待检测声音处理后输出;
28.当所述第一事件预测大于所述第一阈值时,确定所述待检测声音的事件帧级分布有效,并将所述待检测声音的事件帧级分布从第一声音事件检测模型输出。
29.本发明在模型输出事件帧级分布前,先根据待检测声音对应的事件预测对事件帧级分布进行有效性判断,即利用阈值法检测事件预测是否大于预设的第一阈值,若大于,则可以判断事件帧级发布有效,在得出事件帧级发布有效的结论后,再将事件帧级发布从模型中输出提高声音事件检测的准确性。
30.进一步地,所述第一声音事件检测模型,具体为:
31.选取swin transformer模型,在所述swin transformer模型中每层swin transformer block的输入引入一个音频提示向量;
32.锁定所述swin transformer模型的骨干网络参数,确定模型训练的对象为所述音频提示向量和所述swin transformer模型中的token-semantic cnn;
33.利用强标签数据集和弱标签数据集,对所述swin transformer模型进行强弱监督
的训练微调;
34.将训练完成后的swin transformer模型确定为第一声音事件检测模型。
35.本发明对预训练的swin transformer模型中的每一层swin transformer block的输入都引入一个可学习的音频提示向量,在训练模型时,保持模型中的骨干网络参数,仅对音频提示向量和与下游任务相关的网络结构进行微调,可以减少训练的参数量、缩短训练时间,并且在训练的过程中可以更好地保持原模型强大的表征能力。
36.进一步地,所述第一声音事件检测模型,训练过程具体为:
37.获取源声音;所述源声音的所有声音事件的类别相同;
38.根据所述源声音创建若干个声音背景;
39.对所述若干个声音背景进行数据增强,形成训练数据集;
40.根据所述训练数据集分别构建强标签数据集和弱标签数据集;
41.将所述训练数据集进行特征提取,转换成训练梅尔谱图;
42.将所述训练梅尔谱图输入至所述swin transformer模型,以使所述swin transformer模型输出训练事件预测和训练帧级预测;
43.采用sigmoid函数激活对所述训练事件预测和所述训练帧级预测;
44.结合二分类交叉熵和平滑绝对误差,形成损失函数;其中,所述二分类交叉熵用于计算训练事件预测的损失,所述平滑绝对误差用于计算训练帧级预测的损失;
45.根据所述损失函数更新所述swin transformer模型。
46.本发明构建强标签数据集,训练模型输出训练事件预测和训练帧级预测,将两种预测进行激活,然后采用不同的损失函数分别计算损失,从而更新模型;在模型微调过程中加入强弱标签联合优化模型训练,可以使得模型对帧级定位更加准确,获得更好的检测性能。
47.进一步地,所述对所述若干个声音背景进行数据增强,形成训练数据集,具体为:
48.对所述若干个声音背景进行时移,将时移后的若干个声音背景形成训练数据集;
49.所述对所述若干个声音背景进行时移的公式具体为:
50.x
sift
(n)=x(n+l)
51.其中,所述x
sift
为时移后的声音背景,x为标准化后的音频信号,x
sift
(n)为时移后声音背景的第n个点,l为时移的点数。
52.进一步地,所述根据所述训练数据集分别构建强标签数据集和弱标签数据集,具体为:
53.构建弱标签数据集,具体公式为:
54.y
weak
(i)=[0,0,

,1,

,0]
t
,i∈[1,class_num]
[0055]
其中,y
weak
(i)是训练数据集中第i个标签声音事件的弱标签;class_num为声音事件类别数;i为标签索引;
[0056]
构建强标签数据集,具体公式为:
[0057][0058]
i为标签索引;j为帧数索引,class_num为声音事件类别数;frame_size为帧数。
[0059]
本发明提供了一种基于音频提示学习的声音事件检测方法,在swin transformer模型中的每一层swin transformer block的输入都引入一个可学习的音频提示向量,在训练模型时,保持模型中的骨干网络参数,仅对音频提示向量和与下游任务相关的网络结构进行微调,在模型微调过程中加入强弱标签联合优化模型训练,可以减少训练的参数量,使得模型对帧级定位更加准确,获得检测性能更好的第一声音事件检测模型;将待检测声音转换成第一梅尔谱图,将其输入至第一声音事件检测模型,输出事件帧级分布,从而得出待检测声音中的声音事件类别及其事件活动时间,可以提高声音事件检测的准确性和效率。
[0060]
相应的,本发明提供了一种基于音频提示学习的声音事件检测装置,包括:获取模块、检测模块和确定模块;
[0061]
所述获取模块用于对待检测声音进行特征提取,获取所述待检测声音对应的第一梅尔谱图;
[0062]
所述检测模块用于将第一梅尔谱图输入至预设的第一声音事件检测模型,对所述第一梅尔谱图进行编码,形成第一序列,并通过预设层数的swin transformer block将所述第一序列转换成第二序列,继而利用token-semantic cnn对所述第二序列进行结构修改,输出所述待检测声音的事件帧级分布;
[0063]
所述确定模块用于根据所述待检测声音的事件帧级分布,确定待检测声音的声音事件类别和声音事件活动时间。
[0064]
本发明提供了一种基于音频提示学习的声音事件检测装置,以模块间的有机结合为基础,可以减少模型训练的时间和存储空间,节省训练成本,提高声音事件检测的准确性和效率。
附图说明
[0065]
图1为本发明提供的基于音频提示学习的声音事件检测方法的一种实施例的流程示意图;
[0066]
图2为本发明提供的梅尔谱图编码方法的一种实施例的流程示意图;
[0067]
图3为本发明提供的后处理方法的一种实施例的流程示意图;
[0068]
图4为本发明提供的第一声音事件检测模型训练方法的一种实施例的流程示意图;
[0069]
图5为本发明提供的基于音频提示学习的声音事件检测方法的另一种实施例的流程示意图;
[0070]
图6为本发明提供的基于音频提示学习的声音事件检测装置的一种实施例的结构示意图。
具体实施方式
[0071]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0072]
实施例1
[0073]
参见图1,是本发明提供的基于音频提示学习的声音事件检测方法的一种实施例的流程示意图,该方法包括步骤101至步骤103,各步骤具体如下:
[0074]
步骤101:对待检测声音进行特征提取,获取所述待检测声音对应的第一梅尔谱图。
[0075]
进一步地,在本发明第一实施例中,对待检测声音进行特征提取,获取所述待检测声音对应的第一梅尔谱图,具体为:
[0076]
获取待检测声音的第一时域信号;
[0077]
对所述第一时域信号进行短时傅里叶变换,得到第一短时傅里叶变换幅度谱;
[0078]
利用预设的梅尔滤波器组,将所述第一短时傅里叶变换幅度谱转换成第一梅尔短时傅里叶变换幅度谱;
[0079]
对所述第一梅尔短时傅里叶变换幅度谱取对数,得到第一梅尔谱图。
[0080]
在本发明第一实施例中,为了方便利用模型对待检测声音进行声音事件检测,需要先对待检测声音进行特征提取。首先读取待检测声音文件,获取待检测声音的第一时域信号;然后将输入的第一时域信号进行短时傅里叶变换,获得第一短时傅里叶变换幅度谱;将第一短时傅里叶变换幅度谱通过预设的梅尔滤波器组,获得第一梅尔短时傅里叶变换幅度谱;最后通过取对数来获得第一对数梅尔短时傅里叶变换幅度谱,即第一梅尔谱图;以上过程可以用以下公式进行表示:
[0081][0082]
其中,m(f,t)是梅尔谱图在频率f和时间t处的值;|hi(f)|是第i个梅尔滤波器在频率f处的响应值;|xi(t)|是第i个滤波器对应的频域信号在时间t处的幅度。
[0083]
步骤102:将第一梅尔谱图输入至预设的第一声音事件检测模型,对所述第一梅尔谱图进行编码,形成第一序列,并通过预设层数的swin transformer block将所述第一序列转换成第二序列,继而利用token-semantic cnn对所述第二序列进行结构修改,输出所述待检测声音的事件帧级分布。
[0084]
进一步地,在本发明第一实施例中,对所述第一梅尔谱图进行编码,形成第一序列,具体为:
[0085]
将所述第一梅尔谱图拆分成若干个补丁;
[0086]
将所述若干个补丁拼接成第一矩阵,以使所述第一矩阵的尺寸与所述第一声音事件检测模型的输入尺寸相同;
[0087]
利用所述第一声音事件检测模型中的patch-embed cnn,将所述第一矩阵切割成若干个patch token;
[0088]
将若干个patch token根据预设的排列顺序进行排列,形成第一序列。
[0089]
在本发明第一实施例中,参见图2,是本发明提供的梅尔谱图编码方法的一种实施例的流程示意图;在通常情况下,时间维度会比频率维度的长度长,因此为了更好地捕捉同一时间帧的频率箱之间的关系,需要对音频的梅尔谱图尺寸进行调整。如图2所示,通过拆分成n个补丁,再将其拼接成一个新的矩阵,可以使梅尔谱图的尺寸与第一声音事件检测模型的输入尺寸一致,并将其通过一个卷积核大小为(p
×
p)的patch-embed cnn切割成不同的patch token。最后,按照时间

频率

窗口的顺序,在同一时间帧中不同频率箱的patch
将依次排列在输入序列中,得到第一序列
[0090]
进一步地,在本发明第一实施例中,利用token-semantic cnn对所述第二序列进行结构修改,得出所述待检测声音的事件帧级分布,具体为:
[0091]
在对所述第二序列进行结构修改前,对第二序列进行升维处理;形成第三序列,所述第三序列包括频率信息、时间信息和类别信息;
[0092]
利用token-semantic cnn,对第三序列的频率信息进行聚合,并对第三序列的时间信息进行插值,得出所述待检测声音的事件帧级分布。
[0093]
作为本发明第一实施例的一种举例,假设第一声音事件检测模型中有4层swin transformer block,则第一序列e0通过4层swin transformer block后会形成第二序列因为cnn网络的输入和输出是三维向量,所以在第二序列通过token-semantic cnn前,需要将cnn前,需要将还原成第三序列将第二序列e4从二维向量转换成三维向量,再将第三序列输入到token-semantic cnn进行输出结构修改。token-semantic cnn可以设置为卷积核大小)和填充大小(1,0)的cnn网络,利用该cnn网络,将第三序列中的频率维度的大小压缩成1,对频率信息进行聚合,即消去了频率信息的维度,只留下时间和类别两个维度;进行插值后得到待检测声音的事件帧级分布。
[0094]
进一步地,在本发明第一实施例中,在所述输出所述待检测声音的事件帧级分布前,还包括:
[0095]
判断所述待检测声音的事件帧级分布是否有效,具体为:
[0096]
判断第一事件预测是否大于预设的第一阈值;其中,所述第一事件预测由所述第一声音事件检测模型对所述待检测声音处理后输出;
[0097]
当所述第一事件预测大于所述第一阈值时,确定所述待检测声音的事件帧级分布有效,并将所述待检测声音的事件帧级分布从第一声音事件检测模型输出。
[0098]
在本发明第一实施例中,在模型输出事件帧级分布前,先根据待检测声音对应的事件预测对事件帧级分布进行有效性判断,即利用阈值法检测事件预测是否大于预设的第一阈值,若大于,则可以判断事件帧级发布有效,在得出事件帧级发布有效的结论后,再将事件帧级发布从模型中输出提高声音事件检测的准确性。
[0099]
步骤103:根据所述待检测声音的事件帧级分布,确定待检测声音的声音事件类别和声音事件活动时间。
[0100]
在本发明第一实施例中,当模型输出有效的事件帧级分布后,通过均值池化可以得出待检测声音的声音事件类别,通过后处理可以得到声音事件活动时间。参见图3,是本发明提供的后处理方法的一种实施例的流程示意图;其中,y
clip
是事件预测,y
frame
是帧级预测,待检测声音的事件帧级分布包括帧级预测。通过阈值法可以对声音事件类别进行判断,通过事件预测来推断帧级预测是有效预测还是无效预测;再根据判断为有效预测的帧级预测进行得出事件活动时间。例如,设置帧级阈值,将待检测声音中每一帧的帧级预测与帧级阈值作对比,当帧级预测大于帧级阈值,则该帧有事件发生,统计有事件的帧,即得出声音事件活动时间。
[0101]
进一步地,在本发明第一实施例中,第一声音事件检测模型,具体为:
[0102]
选取swin transformer模型,在所述swin transformer模型中每层swin transformer block的输入引入一个音频提示向量;
[0103]
锁定所述swin transformer模型的骨干网络参数,确定模型训练的对象为所述音频提示向量和所述swin transformer模型中的token-semantic cnn;
[0104]
利用强标签数据集和弱标签数据集,对所述swin transformer模型进行强弱监督的训练微调;
[0105]
将训练完成后的swin transformer模型确定为第一声音事件检测模型。
[0106]
在本发明第一实施例中,通过在swin transformer模型引入音频提示向量,在训练模型时,保持模型中的骨干网络参数,仅对音频提示向量和与下游任务相关的网络结构进行微调。具体的,在预训练的swin transformer模型中,在patch-embed之后的每一层swin transformer block的输入都引入一组长度为n的可学习的音频提示向量,该方法为深层提示;其中,深层提示的swin transformer的公式可以表示为:
[0107]
[_,ei]=li([p
i-1
,e
i-1
]),i=1,2,...,n
[0108]
其中,ei表示第i层的特征向量,p
i-1
代表第i层的音频提示向量,l代表第i层的swin transformer block。
[0109]
作为本发明第一实施例的一种举例,参见图4,是本发明提供的第一声音事件检测模型训练方法的一种实施例的流程示意图,e0是原始输入的特征向量,p0是原始输入的音频提示向量,4层swin transformer block是第一声音事件检测模型中的骨干网络;token-semantic cnn是与下游任务相关的网络结构,因此对第一声音事件检测模型进行训练时,冻结骨干网络,仅微调音频提示向量和与下游任务相关的网络结构;即不改变图4中的4层swin transformer block的参数和每层swin transformer block的特征向量,仅对token-semantic cnn和每层swin transformer block的音频提示向量进行微调。相比于全参数微调,本发明的模型微调方法可以减少训练的参数量、缩短训练时间,并且在训练的过程中可以更好地保持原模型强大的表征能力。
[0110]
进一步地,在本发明第一实施例中,第一声音事件检测模型,训练过程具体为:
[0111]
获取源声音;所述源声音的所有声音事件的类别相同;
[0112]
根据所述源声音创建若干个声音背景;
[0113]
对所述若干个声音背景进行数据增强,形成训练数据集;
[0114]
根据所述训练数据集分别构建强标签数据集和弱标签数据集;
[0115]
将所述训练数据集进行特征提取,转换成训练梅尔谱图;
[0116]
将所述训练梅尔谱图输入至所述swin transformer模型,以使所述swin transformer模型输出训练事件预测和训练帧级预测;
[0117]
采用sigmoid函数激活对所述训练事件预测和所述训练帧级预测;
[0118]
结合二分类交叉熵和平滑绝对误差,形成损失函数;其中,所述二分类交叉熵用于计算训练事件预测的损失,所述平滑绝对误差用于计算训练帧级预测的损失;
[0119]
根据所述损失函数更新所述swin transformer模型。
[0120]
进一步地,在本发明第一实施例中,对所述若干个声音背景进行数据增强,形成训练数据集,具体为:
[0121]
对所述若干个声音背景进行时移,将时移后的若干个声音背景形成训练数据集;
[0122]
所述对所述若干个声音背景进行时移的公式具体为:
[0123]
x
sift
(n)=x(n+l)
[0124]
其中,所述x
sift
为时移后的声音背景,x为标准化后的音频信号,x
sift
(n)为时移后声音背景的第n个点,l为时移的点数。
[0125]
进一步地,在本发明第一实施例中,根据所述训练数据集分别构建强标签数据集和弱标签数据集,具体为:
[0126]
构建弱标签数据集,具体公式为:
[0127]yweak
(i)=[0,0,

,1,

,0]
t
,i∈[1,class_num]
[0128]
其中,y
weak
(i)是训练数据集中第i个标签声音事件的弱标签;class_num为声音事件类别数;i为标签索引;
[0129]
其中,所述y
weak
为one-hot向量,当y
weak
(i)=1时,表示训练数据集中存在第i个标签声音事件,当y
weak
(i)=0时,表示训练数据集中不存在第i个标签声音事件。
[0130]
构建强标签数据集,具体公式为:
[0131][0132]
i为标签索引;j为帧数索引,class_num为声音事件类别数;frame_size为帧数;
[0133]
其中,y
strong
为one-hot向量,当y
strong
(j,i)=1时,表示训练数据集中第j帧存在第i个标签声音事件;y
strong
(j,i)=0时,表示训练数据集中第j帧不存在第i个标签声音事件。
[0134]
在本发明第一实施例中,通过混音和数据增强的方法可以构建强弱标签数据集;具体的,混音是获取单一声音事件类别的源音频,以不同的方式,例如scaper开源库,组合或转换源音频,以实现从相同的源音频创建出无限数量的不同音景。为了使得训练模型获得更好的鲁棒性,结合实际的声景情况,可以使用时移方式进行数据增强。将数据增强后的声音背景集合成训练数据集,再分别构建强标签数据集和弱标签数据集,训练模型输出训练事件预测和训练帧级预测。当模型输出训练事件预测和训练帧级预测后,采用sigmoid激活函数将两种预测激活,然后采用二分类交叉熵计算训练事件预测的损失,采用平滑绝对误差计算训练帧级预测的损失,从而更新模型;全局损失函数如下所示:
[0135]
l(x)=bce(y
clip
,z
clip
)+α*smoothl1loss(y
frame
,z
frame
)
[0136]
其中,l(x)为全局损失函数,bce为二分类交叉熵损失,smoothl1loss为平滑绝对误差损失,y
clip
为训练事件预测,z
clip
为训练事件标签,y
frame
为训练帧级预测,z
frame
为帧级标签,α是超参数。
[0137]
作为本发明第一实施例的一种举例,本发明对第一声音事件检测模型进行训练,可以采用adam优化器,设置100个epoch(循环),batch_size(每次投入的训练样本数)为64,学习率为0.001,前5个epoch采取warm up的训练策略,后面每10个epoch对学习率进行衰减,当衰减至小于0.0001时不再进行衰减。
[0138]
作为本发明第一实施例的一种举例,参见图5,是本发明提供的基于音频提示学习的声音事件检测方法的另一种实施例的流程示意图;利用训练完成的第一声音事件检测模型对待检测声音事件进行声音事件检测,其中,第一声音事件检测模型在patch-embed之后
的每层swin transformer block的输入都引入一组可学习的音频提示向量。将待检测声音进行特征提取,并转换成第一梅尔谱图;将第一梅尔谱图输入至第一声音事件检测模型,对第一梅尔谱图进行编码,通过patch-embed cnn网络后形成第一序列e0,再经过4层swin transformer block形成第二序列e4,再对第二序列进行升维形成第三序列,利用token-semantic cnn对第三序列进行输出结构修改,最后模型输出事件帧级分布,根据模型输出的事件帧级分布分别进行均值池化和后处理,可以得出待检测声音中的声音事件类别及其事件活动时间,提高声音事件检测的准确性和效率。
[0139]
综上,本发明第一实施例提供了一种基于音频提示学习的声音事件检测方法,在swin transformer模型中的每一层swin transformer block的输入都引入一个可学习的音频提示向量,在训练模型时,保持模型中的骨干网络参数,仅对音频提示向量和与下游任务相关的网络结构进行微调,在模型微调过程中加入强弱标签联合优化模型训练,可以减少训练的参数量,使得模型对帧级定位更加准确,获得检测性能更好的第一声音事件检测模型;将待检测声音转换成第一梅尔谱图,将其输入至第一声音事件检测模型,输出事件帧级分布,从而得出待检测声音中的声音事件类别及其事件活动时间,可以提高声音事件检测的准确性和效率。
[0140]
实施例2
[0141]
参见图6,是本发明提供的基于音频提示学习的声音事件检测装置的一种实施例的结构示意图,该装置包括获取模块201、检测模块202和确定模块203;
[0142]
获取模块201用于对待检测声音进行特征提取,获取所述待检测声音对应的第一梅尔谱图;
[0143]
检测模块202用于将第一梅尔谱图输入至预设的第一声音事件检测模型,对所述第一梅尔谱图进行编码,形成第一序列,并通过预设层数的swin transformer block将所述第一序列转换成第二序列,继而利用token-semantic cnn对所述第二序列进行结构修改,输出所述待检测声音的事件帧级分布;
[0144]
确定模块203用于根据所述待检测声音的事件帧级分布,确定待检测声音的声音事件类别和声音事件活动时间。
[0145]
进一步地,在本发明第二实施例中,获取模块201,包括获取单元、第一转换单元、第二转换单元和第三转换单元;
[0146]
获取单元用于获取待检测声音的第一时域信号;
[0147]
第一转换单元用于对所述第一时域信号进行短时傅里叶变换,得到第一短时傅里叶变换幅度谱;
[0148]
第二转换单元用于利用预设的梅尔滤波器组,将所述第一短时傅里叶变换幅度谱转换成第一梅尔短时傅里叶变换幅度谱;
[0149]
第三转换单元用于对所述第一梅尔短时傅里叶变换幅度谱取对数,得到第一梅尔谱图。
[0150]
进一步地,在本发明第二实施例中,检测模块202,包括拆分单元、拼接单元、切割单元和排列单元;
[0151]
拆分单元用于将所述第一梅尔谱图拆分成若干个补丁;
[0152]
将所述若干个补丁拼接成第一矩阵,以使所述第一矩阵的尺寸与所述第一声音事
件检测模型的输入尺寸相同;
[0153]
利用所述第一声音事件检测模型中的patch-embed cnn,将所述第一矩阵切割成若干个patch token;
[0154]
将若干个patch token根据预设的排列顺序进行排列,形成第一序列。
[0155]
进一步地,在本发明第二实施例中,检测模块202,还包括升维单元和结构修改单元;
[0156]
升维单元用于在对所述第二序列进行结构修改前,对第二序列进行升维处理;形成第三序列,所述第三序列包括频率信息、时间信息和类别信息;
[0157]
结构修改单元用于利用token-semantic cnn,对第三序列的频率信息进行聚合,并对第三序列的时间信息进行插值,得出所述待检测声音的事件帧级分布。
[0158]
进一步地,在本发明第二实施例中,检测模块202,还包括判断单元;
[0159]
判断单元用于判断所述待检测声音的事件帧级分布是否有效,具体为:
[0160]
判断第一事件预测是否大于预设的第一阈值;其中,所述第一事件预测由所述第一声音事件检测模型对所述待检测声音处理后输出;
[0161]
当所述第一事件预测大于所述第一阈值时,确定所述待检测声音的事件帧级分布有效,并将所述待检测声音的事件帧级分布从第一声音事件检测模型输出。
[0162]
进一步地,在本发明第二实施例中,第一声音事件检测模型,具体为:
[0163]
选取swin transformer模型,在所述swin transformer模型中每层swin transformer block的输入引入一个音频提示向量;
[0164]
锁定所述swin transformer模型的骨干网络参数,确定模型训练的对象为所述音频提示向量和所述swin transformer模型中的token-semantic cnn;
[0165]
利用强标签数据集和弱标签数据集,对所述swin transformer模型进行强弱监督的训练微调;
[0166]
将训练完成后的swin transformer模型确定为第一声音事件检测模型。
[0167]
进一步地,在本发明第二实施例中,第一声音事件检测模型,训练过程具体为:
[0168]
获取源声音;所述源声音的所有声音事件的类别相同;
[0169]
根据所述源声音创建若干个声音背景;
[0170]
对所述若干个声音背景进行数据增强,形成训练数据集;
[0171]
根据所述训练数据集分别构建强标签数据集和弱标签数据集;
[0172]
将所述训练数据集进行特征提取,转换成训练梅尔谱图;
[0173]
将所述训练梅尔谱图输入至所述swin transformer模型,以使所述swin transformer模型输出训练事件预测和训练帧级预测;
[0174]
采用sigmoid函数激活对所述训练事件预测和所述训练帧级预测;
[0175]
结合二分类交叉熵和平滑绝对误差,形成损失函数;其中,所述二分类交叉熵用于计算训练事件预测的损失,所述平滑绝对误差用于计算训练帧级预测的损失;
[0176]
根据所述损失函数更新所述swin transformer模型。
[0177]
进一步地,在本发明第二实施例中,对所述若干个声音背景进行数据增强,形成训练数据集,具体为:
[0178]
对所述若干个声音背景进行时移,将时移后的若干个声音背景形成训练数据集;
[0179]
所述对所述若干个声音背景进行时移的公式具体为:
[0180]
x
sift
(n)=x(n+l)
[0181]
其中,所述x
sift
为时移后的声音背景,x为标准化后的音频信号,x
sift
(n)为时移后声音背景的第n个点,l为时移的点数。
[0182]
进一步地,在本发明第二实施例中,根据所述训练数据集分别构建强标签数据集和弱标签数据集,具体为:
[0183]
构建弱标签数据集,具体公式为:
[0184]yweak
(i)=[0,0,

,1,

,0]
t
,i∈[1,class_num]
[0185]
其中,y
weak
(i)是训练数据集中第i个标签声音事件的弱标签;class_num为声音事件类别数;i为标签索引;
[0186]
构建强标签数据集,具体公式为:
[0187][0188]
i为标签索引;j为帧数索引,class_num为声音事件类别数;frame_size为帧数。
[0189]
综上,本发明第二实施例提供了一种基于音频提示学习的声音事件检测装置,以模块间的有机结合为基础,在swin transformer模型中的每一层swin transformer block的输入都引入一个可学习的音频提示向量,在训练模型时,保持模型中的骨干网络参数,仅对音频提示向量和与下游任务相关的网络结构进行微调,在模型微调过程中加入强弱标签联合优化模型训练,可以减少训练的参数量,使得模型对帧级定位更加准确,获得检测性能更好的第一声音事件检测模型;将待检测声音转换成第一梅尔谱图,将其输入至第一声音事件检测模型,输出事件帧级分布,从而得出待检测声音中的声音事件类别及其事件活动时间,可以提高声音事件检测的准确性和效率。
[0190]
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围。特别指出,对于本领域技术人员来说,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:
1.一种基于音频提示学习的声音事件检测方法,其特征在于,包括:对待检测声音进行特征提取,获取所述待检测声音对应的第一梅尔谱图;将第一梅尔谱图输入至预设的第一声音事件检测模型,对所述第一梅尔谱图进行编码,形成第一序列,并通过预设层数的swin transformer block将所述第一序列转换成第二序列,继而利用token-semantic cnn对所述第二序列进行结构修改,输出所述待检测声音的事件帧级分布;根据所述待检测声音的事件帧级分布,确定待检测声音的声音事件类别和声音事件活动时间。2.根据权利要求1所述的基于音频提示学习的声音事件检测方法,其特征在于,所述对待检测声音进行特征提取,获取所述待检测声音对应的第一梅尔谱图,具体为:获取待检测声音的第一时域信号;对所述第一时域信号进行短时傅里叶变换,得到第一短时傅里叶变换幅度谱;利用预设的梅尔滤波器组,将所述第一短时傅里叶变换幅度谱转换成第一梅尔短时傅里叶变换幅度谱;对所述第一梅尔短时傅里叶变换幅度谱取对数,得到第一梅尔谱图。3.根据权利要求1所述的基于音频提示学习的声音事件检测方法,其特征在于,所述对所述第一梅尔谱图进行编码,形成第一序列,具体为:将所述第一梅尔谱图拆分成若干个补丁;将所述若干个补丁拼接成第一矩阵,以使所述第一矩阵的尺寸与所述第一声音事件检测模型的输入尺寸相同;利用所述第一声音事件检测模型中的patch-embed cnn,将所述第一矩阵切割成若干个patch token;将若干个patch token根据预设的排列顺序进行排列,形成第一序列。4.根据权利要求1所述的基于音频提示学习的声音事件检测方法,其特征在于,所述利用token-semantic cnn对所述第二序列进行结构修改,得出所述待检测声音的事件帧级分布,具体为:在对所述第二序列进行结构修改前,对第二序列进行升维处理;形成第三序列,所述第三序列包括频率信息、时间信息和类别信息;利用token-semantic cnn,对第三序列的频率信息进行聚合,并对第三序列的时间信息进行插值,得出所述待检测声音的事件帧级分布。5.根据权利要求1所述的基于音频提示学习的声音事件检测方法,其特征在于,在所述输出所述待检测声音的事件帧级分布前,还包括:判断所述待检测声音的事件帧级分布是否有效,具体为:判断第一事件预测是否大于预设的第一阈值;其中,所述第一事件预测由所述第一声音事件检测模型对所述待检测声音处理后输出;当所述第一事件预测大于所述第一阈值时,确定所述待检测声音的事件帧级分布有效,并将所述待检测声音的事件帧级分布从第一声音事件检测模型输出。6.根据权利要求1所述的基于音频提示学习的声音事件检测方法,其特征在于,所述第一声音事件检测模型,具体为:
选取swin transformer模型,在所述swin transformer模型中每层swin transformer block的输入引入一个音频提示向量;锁定所述swin transformer模型的骨干网络参数,确定模型训练的对象为所述音频提示向量和所述swin transformer模型中的token-semantic cnn;利用强标签数据集和弱标签数据集,对所述swin transformer模型进行强弱监督的训练微调;将训练完成后的swin transformer模型确定为第一声音事件检测模型。7.根据权利要求6所述的基于音频提示学习的声音事件检测方法,其特征在于,所述第一声音事件检测模型,训练过程具体为:获取源声音;所述源声音的所有声音事件的类别相同;根据所述源声音创建若干个声音背景;对所述若干个声音背景进行数据增强,形成训练数据集;根据所述训练数据集分别构建强标签数据集和弱标签数据集;将所述训练数据集进行特征提取,转换成训练梅尔谱图;将所述训练梅尔谱图输入至所述swin transformer模型,以使所述swin transformer模型输出训练事件预测和训练帧级预测;采用sigmoid函数激活对所述训练事件预测和所述训练帧级预测;结合二分类交叉熵和平滑绝对误差,形成损失函数;其中,所述二分类交叉熵用于计算训练事件预测的损失,所述平滑绝对误差用于计算训练帧级预测的损失;根据所述损失函数更新所述swin transformer模型。8.根据权利要求7所述的基于音频提示学习的声音事件检测方法,其特征在于,所述对所述若干个声音背景进行数据增强,形成训练数据集,具体为:对所述若干个声音背景进行时移,将时移后的若干个声音背景形成训练数据集;所述对所述若干个声音背景进行时移的公式具体为:x
sift
(n)=x(n+l)其中,所述x
sift
为时移后的声音背景,x为标准化后的音频信号,x
sift
(n)为时移后声音背景的第n个点,l为时移的点数。9.根据权利要求7所述的基于音频提示学习的声音事件检测方法,其特征在于,所述根据所述训练数据集分别构建强标签数据集和弱标签数据集,具体为:构建弱标签数据集,具体公式为:y
weak
(i)=[0,0,

,1,

,0]
t
,i∈[1,class_num]其中,y
weak
(i)是训练数据集中第i个标签声音事件的弱标签;class_num为声音事件类别数;i为标签索引;构建强标签数据集,具体公式为:其中,y
strong
(j,i)为训练数据集中第j帧第i个标签声音事件的强标签;i为标签索引;j为帧数索引,class_num为声音事件类别数;frame_size为帧数。
10.一种基于音频提示学习的声音事件检测装置,其特征在于,包括:获取模块、检测模块和确定模块;所述获取模块用于对待检测声音进行特征提取,获取所述待检测声音对应的第一梅尔谱图;所述检测模块用于将第一梅尔谱图输入至预设的第一声音事件检测模型,对所述第一梅尔谱图进行编码,形成第一序列,并通过预设层数的swin transformer block将所述第一序列转换成第二序列,继而利用token-semantic cnn对所述第二序列进行结构修改,输出所述待检测声音的事件帧级分布;所述确定模块用于根据所述待检测声音的事件帧级分布,确定待检测声音的声音事件类别和声音事件活动时间。

技术总结
本发明涉及声音事件检测技术领域,公开了一种基于音频提示学习的声音事件检测方法及装置。该方法在Swin Transformer模型中的每一层Swin Transformer Block的输入都引入一个可学习的音频提示向量,在训练模型时,保持模型中的骨干网络参数,仅对音频提示向量和与下游任务相关的网络结构进行微调,在模型微调过程中加入强弱标签联合优化模型训练,可以减少训练的参数量,使得模型对帧级定位更加准确,获得检测性能更好的第一声音事件检测模型;将待检测声音转换成第一梅尔谱图,将其输入至第一声音事件检测模型,输出事件帧级分布,从而得出待检测声音中的声音事件类别及其事件活动时间,可以提高声音事件检测的准确性和效率。率。率。


技术研发人员:陈耿林 刘勇 陈庆春 郑蕾 周炳朋
受保护的技术使用者:华南师范大学
技术研发日:2023.08.01
技术公布日:2023/10/15
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐