1.本发明属于音频事件检测相关技术领域,尤其涉及一种基于多任务学习的音频事件检测方法及系统。
背景技术:2.本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
3.音频事件检测是指检测音频流中存在的音频事件的类型和起止时间。音频事件检测具有广阔的应用前景,可以用于音频安全监控、生物声学研究、城市声音分析等,因此,音频事件检测的研究得到学术界广泛重视。音频流中不同类型的音频事件往往在时间上互相交叠,且音频流中经常掺杂有各种噪声,这为音频事件的准确检测带来极大的困难和挑战。
4.近年来,有研究提出采用多任务学习的方式提高音频事件检测的准确率,即,为音频事件检测任务添加一个辅助任务,通过搭建模型同时完成两个任务,通过辅助任务来辅助提高音频事件检测准确率。有的研究为音频事件检测任务添加了音频场景识别这一辅助任务,但是音频场景识别辅助任务需要额外标注音频文档的场景标签,增加了人工标注工作量。
技术实现要素:5.本发明为了解决上述辅助任务需要额外标注,增加了人工标注工作量的问题,提供了一种基于多任务学习的音频事件检测方法及系统,该方法通过为音频事件检测任务添加音频事件类型个数分类辅助任务,在一个模型中同时实现音频事件检测和音频事件类型个数分类,以提高音频事件检测准确率,同时,在提高准确率的基础上不额外增加人工标注工作量。
6.为了实现上述目的,本发明采用如下技术方案:
7.本发明的第一个方面提供一种基于多任务学习的音频事件检测方法。
8.一种基于多任务学习的音频事件检测方法,包括:
9.基于待检测音频片段的特征矩阵,采用训练好的音频事件检测模型,得到待检测音频片段中的音频事件;
10.所述音频事件检测模型训练的过程包括:
11.根据音频片段中的每个音频帧,得到音频片段中所有帧在音频事件检测输出层的输出值与在音频事件类型个数分类输出层的输出值,基于在音频事件检测输出层的输出值求得交叉熵和,基于在音频事件类型个数分类输出层的输出值求得差值平方和;
12.采用交叉熵和与差值平方和构造损失函数,训练音频事件检测模型,得到训练好的音频事件检测模型。
13.进一步的,在所述求得交叉熵和与差值平方和之前包括:获取音频片段,提取每个音频片段的特征矩阵,为音频片段内每个音频帧添加音频事件标签和音频事件类型个数标
签,构建音频特征训练集。
14.进一步的,提取每个音频片段的特征矩阵的过程包括:对音频片段进行分帧处理,提取每帧的音频特征,每个音频片段内所有帧的音频特征构成该音频片段的特征矩阵。
15.进一步的,所述为音频片段内每个音频帧添加音频事件标签和音频事件类型个数标签的过程包括:假设训练集中共有m个不同类型的音频事件,则音频事件标签为m维向量,向量中的元素取值为0或1,如果音频帧中包含了某个类型的音频事件,则该类型音频事件所对应的标签向量位置处的元素值为1,否则为0;为音频片段内每个音频帧添加音频事件类型个数标签,音频事件类型个数通过统计音频事件标签中元素1的个数得到。
16.进一步的,所述得到音频片段中所有帧在音频事件检测输出层的输出值,基于该输出值求得交叉熵和的过程包括:根据音频片段中的每个音频帧,计算每个音频帧在音频事件检测输出层的输出值,用该输出值和音频帧的音频事件标签求取交叉熵,将音频片段内所有帧的交叉熵求和得到交叉熵和。
17.进一步的,所述得到音频片段中所有帧在音频事件类型个数分类输出层的输出值,基于该输出值求得差值平方和的过程包括:根据音频片段中的每个音频帧,计算每个音频帧在音频事件类型个数分类输出层的输出值,用该输出值和音频帧的音频事件类型个数标签求取差值平方值,将音频片段内所有帧的差值平方值求和得到差值平方和。
18.进一步的,所述得到待检测音频片段中的音频事件的过程包括:用和训练阶段相同的方法对待检测音频片段进行分帧处理,提取每帧的音频特征,音频片段内所有帧的音频特征构成待识别音频片段的特征矩阵。以待识别音频片段的特征矩阵作为训练好的音频事件检测模型的输入,在训练好的音频事件检测模型的音频事件检测输出层得到待检测音频片段中的各个音频帧包含各个音频事件的概率值,设定阈值,概率值大于设定阈值的音频事件是音频帧中所包含的音频事件。
19.本发明的第二个方面提供一种基于多任务学习的音频事件检测系统。
20.一种基于多任务学习的音频事件检测系统,包括:
21.检测模块,其被配置为:基于待检测音频片段的特征矩阵,采用训练好的音频事件检测模型,得到待检测音频片段中的音频事件;
22.模型训练模块,其被配置为:所述音频事件检测模型训练的过程包括:根据音频片段中的每个音频帧,得到音频片段中所有帧在音频事件检测输出层的输出值与在音频事件类型个数分类输出层的输出值,基于在音频事件检测输出层的输出值求得交叉熵和,基于在音频事件类型个数分类输出层的输出值求得差值平方和;采用交叉熵和与差值平方和构造损失函数,训练音频事件检测模型,得到训练好的音频事件检测模型。
23.本发明的第三个方面提供一种计算机可读存储介质。
24.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的基于多任务学习的音频事件检测方法中的步骤。
25.本发明的第四个方面提供一种计算机设备。
26.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第一方面所述的基于多任务学习的音频事件检测方法中的步骤。
27.与现有技术相比,本发明的有益效果是:
28.(1)本发明通过多任务学习将音频事件检测和音频事件类型个数分类相结合,通过一个模型同时实现音频事件检测和音频事件类型个数分类。与不采用多任务学习,单独进行音频事件检测的方法相比,本发明可以显著提高音频事件检测的准确率。
29.(2)本发明设计的音频事件类型个数分类辅助任务不需要额外的标注信息,不会增加人工标注的工作量,使得本发明提出的多任务学习方法在现有数据库的基础上即能进行。
30.(3)与单独为音频事件检测建模相比,在同等检测性能下,本发明设计的多任务学习模型可以大幅度减少模型参数的数量,提高运算效率。
31.本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
32.构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
33.图1是本发明基于多任务学习的音频事件检测模型的示意图;
34.图2是图1中的卷积神经网络1的结构示意图;
35.图3是图1中的卷积神经网络2的结构示意图;
36.图4是图1中的卷积神经网络3的结构示意图。
具体实施方式
37.下面结合附图与实施例对本发明作进一步说明。
38.应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
39.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
40.实施例一
41.如图1所示,本实施例提供了一种基于多任务学习的音频事件检测方法。
42.一种基于多任务学习的音频事件检测方法,包括:
43.基于待检测音频片段的特征矩阵,采用训练好的音频事件检测模型,得到待检测音频片段中的音频事件;
44.所述音频事件检测模型训练的过程包括:
45.根据音频片段中的每个音频帧,得到音频片段中所有帧在音频事件检测输出层的输出值与在音频事件类型个数分类输出层的输出值,基于在音频事件检测输出层的输出值求得交叉熵和,基于在音频事件类型个数分类输出层的输出值求得差值平方和;
46.采用交叉熵和与差值平方和构造损失函数,训练音频事件检测模型,得到训练好的音频事件检测模型。
47.具体的,本实施例的技术方案可以采用如下步骤实现:
48.步骤(1):获取音频数据库,构建音频特征训练集。
49.其中步骤(1)包括:
50.步骤(1-1):对数据库中每个音频片段进行分帧处理,并对每帧提取音频领域常用的音频特征,得到每个音频片段的特征矩阵;
51.步骤(1-2):为音频片段内每个音频帧添加音频事件标签,音频事件标签的形式为multi-hot向量形式,假设训练集中共有m个不同类型的音频事件,则音频事件标签为m维向量,向量中的元素取值为0或1,如果音频帧中包含了某个类型的音频事件,则该类型音频事件所对应的标签向量位置处的元素值为1,否则为0;
52.步骤(1-3):为音频片段内每个音频帧添加音频事件类型个数标签,音频事件类型个数通过统计音频事件标签中元素1的个数得到。
53.步骤(1-4):得到带有音频事件标签和音频事件类型个数标签的音频特征训练集。
54.步骤(2):按照图1构建基于多任务学习的音频事件检测模型,将音频片段的特征矩阵作为模型的输入,求取交叉熵和s1以及差值平方和s2。
55.其中步骤(2)包括:
56.步骤(2-1):从音频特征训练集中按顺序选择一个音频片段,将音频片段的特征矩阵作为模型的输入;
57.步骤(2-2):对音频片段中的每个音频帧,基于其音频事件标签和音频事件检测输出层的输出求取交叉熵,将音频片段内所有帧的交叉熵求和得到交叉熵和s1;
58.步骤(2-3):对音频片段中的每个音频帧,求取其音频事件类型个数标签和音频事件类型个数分类输出层的输出值之间的差值的平方值,将音频片段内所有帧的差值平方值求和得到差值平方和s2;
59.步骤(3):基于交叉熵和s1与差值平方和s2构造损失函数,基于损失函数对图1中的音频事件检测模型进行训练,得到训练好的音频事件检测模型;
60.其中步骤(3)包括:
61.步骤(3-1):令s=a
×
s1+(1-a)
×
s2,以s为图1整个网络模型的损失函数,对整个网络模型进行训练,其中a是一个取值范围为[0,1]的常数因子,其值通过模型训练确定;
[0062]
步骤(3-2):重复步骤(2)-步骤(3-1),直至损失函数值s小于预设的阈值;
[0063]
步骤(3-3):输出训练好的音频事件检测模型。
[0064]
步骤(4):对待检测的音频片段,用和步骤(1)中同样的方法对其进行分帧处理,提取每帧的音频特征,音频片段内所有帧的音频特征构成待识别音频片段的特征矩阵。将待识别音频片段的特征矩阵输入训练好的音频事件检测模型,在音频事件检测输出层得到待检测音频片段中的各个音频帧包含各个音频事件的概率值,设定阈值,概率值大于阈值的音频事件是音频帧中所包含的音频事件。
[0065]
图1中音频事件检测输出层是一层全连接层,输出层节点的个数为训练集中包含的音频事件类型的总个数,采用sigmoid函数作为激活函数,其输出值表示音频帧中包含各个不同音频事件的概率值。
[0066]
图1中音频事件类型个数分类输出层是一层全连接层,输出层节点的个数为1,采用relu函数作为激活函数,其输出值表示音频帧中包含的不同音频事件的个数。
[0067]
图2是图1中的卷积神经网络1的结构示意图,包括相继连接的一层卷积层、一层最大池化层、一层卷积层、一层最大池化层。卷积层的卷积步移stride参数设置为1,通过padding方法使卷积层的输出在帧维度上的尺寸和卷积神经网络2的输入端的输入在帧维度上的尺寸相同。每一个卷积层节点的个数和卷积核函数窗口的尺寸等参数根据数据和训练模型情况,通过调试得到。最大池化层的步移stride参数设置为1,最大池化层的窗口尺寸根据数据和训练模型情况,通过调试得到。
[0068]
图3是图1中的卷积神经网络2的结构示意图,包括相继连接的一层卷积层和一层最大池化层。卷积层的卷积步移stride参数设置为1,通过padding方法使卷积层的输出在帧维度上的尺寸和卷积神经网络2的输入端的输入在帧维度上的尺寸相同。卷积层节点的个数和卷积核函数窗口的尺寸等参数根据数据和训练模型情况,通过调试得到。最大池化层的步移stride参数设置为1,最大池化层的窗口尺寸根据数据和训练模型情况,通过调试得到。
[0069]
图4是图1中的卷积神经网络3的结构示意图,包括相继连接的一层卷积层、一层最大池化层和一层全连接层。卷积层的卷积步移stride参数设置为1,通过padding方法使卷积层的输出在帧维度上的尺寸和卷积神经网络3的输入端的输入在帧维度上的尺寸相同。卷积层节点的个数和卷积核函数窗口的尺寸等参数根据数据和训练模型情况,通过调试得到。最大池化层的步移stride参数设置为1,最大池化层的窗口尺寸根据数据和训练模型情况,通过调试得到。
[0070]
实施例二
[0071]
本实施例提供了一种基于多任务学习的音频事件检测系统。
[0072]
一种基于多任务学习的音频事件检测系统,包括:
[0073]
检测模块,其被配置为:基于待检测音频片段的特征矩阵,采用训练好的音频事件检测模型,得到待检测音频片段中的音频事件;
[0074]
模型训练模块,其被配置为:所述音频事件检测模型训练的过程包括:根据音频片段中的每个音频帧,得到音频片段中所有帧在音频事件检测输出层的输出值与在音频事件类型个数分类输出层的输出值,基于在音频事件检测输出层的输出值求得交叉熵和,基于在音频事件类型个数分类输出层的输出值求得差值平方和;采用交叉熵和与差值平方和构造损失函数,训练音频事件检测模型,得到训练好的音频事件检测模型。
[0075]
实施例三
[0076]
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例一所述的基于多任务学习的音频事件检测方法中的步骤。
[0077]
实施例四
[0078]
本实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述实施例一所述的基于多任务学习的音频事件检测方法中的步骤。
[0079]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0080]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0081]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0082]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0083]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random accessmemory,ram)等。
[0084]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。