1.本发明涉及声音识别技术领域,具体涉及一种基于时频图和卷积神经网络的运动声音判假方法、装置。
背景技术:2.运动声音判假指通过声音识别技术判断所发出的声音是否为特定运动的声音,比如当前发出的声音是否为跳绳声,是否为跑步声等。近些年声音识别技术日益成熟,通过分析语音的唯一特性,例如发音的频率,来识别出说话的人,在身份认证、网络支付等领域得到了广泛应用。目前对于声音识别模型的训练,正负样本的数据量大多都是平衡的,但在运动声音判假技术领域,由于运动声音通常为一种特定的声音(比如跳绳声),所以训练运动声音判假模型的正样本数据非常有限,而反向声音(模型训练的负样本)比如假运动声、环境噪声、说话声等类别多样,数据量丰富,正负样本的数据量非常不平衡,直接影响了运动声音判假模型的识别精度。
3.另外,目前通常采用lstm长短期记忆神经网络来训练声音识别模型,但lstm(long short
‑
term memory)长短期记忆神经网络的结构复杂,模型训练速度较慢,识别效率不高,无法满足运动声音判假这一对声音识别速度要求较高的应用场景。
技术实现要素:4.本发明以平衡运动声音判假模型训练的正负样本,提高模型识别效率和识别精度为目的,提供了一种基于时频图和卷积神经网络的运动声音判假方法、装置。
5.为达此目的,本发明采用以下技术方案:
6.提供一种基于时频图和卷积神经网络的运动声音判假方法,步骤包括:
7.s1,将具有相同声音类别标签的多个运动声音片段拼合形成为运动音频;
8.s2,以过采样方式从所述运动音频中随机截取若干运动声音片段作为运动声音判假模型训练的正向样本数据,以欠采样方式从反向音频中随机截取与从所述运动音频中截取的所述运动声音片段同等数量的反向声音片段作为模型训练的反向样本数据,每个所述反向声音片段对应一时长相同的作为所述正向样本数据的所述运动声音片段;
9.s3,将所述正向样本数据和所述反向样本数据输入到改进的卷积神经网络中,经迭代更新训练形成所述运动声音判假模型;
10.s4,从真实环境中采集的音频中截取待识别声音片段输入到所述运动声音判假模型中,模型输出对所述待识别声音片段的运动判假结果。
11.作为本发明的一种优选方案,步骤s1中,截取掉每个所述运动声音片段中的非运动声音部分后,将多个所述运动声音片段拼合形成为所述运动音频。
12.作为本发明的一种优选方案,步骤s2中,通过改变所述运动声音片段和所述反向声音片段的音量高低,以扩充所述正向样本数据、所述反向样本的数据量。
13.作为本发明的一种优选方案,步骤s4中,所述运动声音判假模型输出所述运动判
假结果的方法步骤具体包括:
14.s41,将所述待识别声音片段由音频转换为时频图;
15.s42,将所述时频图输入到二维平均池化层以缩小时频图尺寸;
16.s43,将尺寸缩小后的所述时频图经过两层卷积层的卷积特征提取,输出所述时频图的特征图;
17.s44,将所特征图输入到最大池化层并展开后得到表征所述时频图的一维向量;
18.s45,将所述一维向量输入到第一全连接层进行降维处理;
19.s46,将降维后的所述一维向量输入到第二全连接层并经softmax激活后输出所述待识别声音片段为运动声音或非运动声音的概率。
20.作为本发明的一种优选方案,步骤s41中,将所述待识别声音片段由音频转换为所述时频图的方法步骤包括:
21.s411,对所述待识别声音片段从起始位置以滑动窗方式截取若干个帧片段直至结尾,相邻的两个所述帧片段具有声音重叠部分;
22.s412,对每个所述帧片段乘相同长度的汉宁升余弦窗;
23.s413,对每个所述帧片段进行傅里叶变换,以将每个所述帧片段从空间域转换到频域,得到每个帧片段对应的时频谱;
24.s414,将每个所述帧片段对应的时频谱按时间顺序排列形成为所述待识别声音片段对应的所述时频图。
25.作为本发明的一种优选方案,步骤s411中,对所述待识别声音片段的每个时刻的音量值进行归一化处理后再截取所述帧片段。
26.作为本发明的一种优选方案,若所述帧片段的长度不足2的n次幂,通过在所述帧片段的后面以数据补0方式使所述帧片段的长度达到2的n次幂。
27.作为本发明的一种优选方案,n=8。
28.本发明还提供了一种基于时频图和卷积神经网络的运动声音判假装置,可实现所述的运动声音判假方法,所述运动声音判假装置包括:
29.运动音频合成模块,用于将具有相同声音类别标签的多个运动声音片段拼合形成为运动音频;
30.反向音频获取模块,用于获取所述运动音频的反向音频;
31.样本均衡模块,分别连接所述运动音频合成模块和所述反向音频获取模块,用于以过采样方式从所述运动音频中随机截取若干运动声音片段作为运动声音判假模型训练的正向样本数据,并用于以欠采样方式从反向音频中随机截取与所述运动声音片段同等数量的反向声音片段作为模型训练的反向样本数据,每个所述反向声音片段对应一时长相同的所述运动声音片段;
32.样本输入模块,连接所述样本均衡模块,用于将所述正向样本数据和所述反向样本数据输入到改进的卷积神经网络,经迭代更新训练形成所述运动声音判假模型;
33.模型训练模块,连接所述样本输入模块,用于根据输入的所述正向样本数据和所述反向样本数据,通过改进的卷积神经网络经迭代更新训练形成所述运动声音判假模型;
34.声音采集模块,用于从真实环境中采集运动声音,并形成为音频文件;
35.声音截取模块,连接所述声音采集模块,用于从所述音频文件中截取一待识别声
音片段;
36.声音输入模块,连接所述声音截取模块,用于将所述待识别声音片段输入到声音识别模块中;
37.所述声音识别模块,分别连接所述模型训练模块和所述声音输入模块,用于通过所述运动声音判假模型识别输出所述待识别声音片段为运动声音的概率。
38.作为本发明的一种优选方案,所述声音识别模块中包括:
39.时频图生成模块,用于将所述待识别声音片段由音频转换为时频图,所述时频图生成模块中具体包括:
40.帧片段截取单元,用于对所述待识别声音片段从起始位置以滑动窗方式截取若干个帧片段直至结尾,相邻的两个所述帧片段具有声音重叠部分;
41.加窗单元,连接所述帧片段截取单元,用于对每个所述帧片段乘相同长度的汉宁升余弦窗;
42.空间域转换单元,连接所述加窗单元,用于对经加窗后的每个所述帧片段进行傅里叶变换,以将每个所述帧片段从空间域转换到频域;
43.排序单元,连接所述空间域转换单元,用于将完成空间域转换的每个所述帧片段对应的时频谱按时间顺序排列形成为所述时频图。
44.本发明具有以下有益效果:
45.1、本发明以过采样方式从运动音频中随机截取若干运动声音片段作为运动声音判假模型训练的正向样本数据,扩充了模型训练的正向样本数据量,以欠采样方式从反向音频中随机截取与运动声音片段同等数量的反向声音片段作为模型训练的反向样本数据,减少了模型训练的反向样本数据量,实现了正负样本数量的平衡;
46.2、通过结构更为简单的神经网络训练运动声音判假模型,模型训练速度更快,且模型识别效率更高;
47.3、通过平衡正负样本数量提高了运动声音判假模型的识别精度。
附图说明
48.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
49.图1是本发明一实施例提供的基于时频图和卷积神经网络的运动声音判假方法的实现步骤图;
50.图2是运动声音判假模型识别输出运动判假结果的方法步骤图;
51.图3是将待识别声音片段由音频转换为时频图的方法步骤图;
52.图4是改进的卷积神经网络的结构示意图;
53.图5是以滑动窗方式从待识别声音片段中截取帧片段的示意图;
54.图6是时频图的示意图;
55.图7是卷积神经网络中的卷积层示意图;
56.图8是卷积神经网络中的平均池化层的示意图;
57.图9是本发明一实施例提供的基于时频图和卷积神经网络的运动声音判假装置的结构示意图;
58.图10是运动声音判假装置中的声音识别模块中的时频图生成模块的内部结构示意图。
具体实施方式
59.下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
60.其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本专利的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
61.本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若出现术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
62.在本发明的描述中,除非另有明确的规定和限定,若出现术语“连接”等指示部件之间的连接关系,该术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个部件内部的连通或两个部件的相互作用关系。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
63.本发明实施例提供的基于时频图和卷积神经网络的运动声音判假方法主要解决两个技术问题:1、运动声音判假模型的正负样本不均衡的问题;2、利用现有的lstm长短期记忆网络训练的运动声音判假模型的识别精度和识别速度无法满足运动声音判假应用场景的技术问题。
64.为解决技术问题1,本实施例提供的技术方案是:对收集到的运动声音数据即每个运动声音片段人工筛选截取掉不符合数据纯度要求的部分,比如一段跳绳声音片段,该片段中的01
′
00
″‑
01
′
05
″
出现了动物叫声且没有跳绳声音,为了确保正向样本数据(运动声音片段)的纯度,我们通过人为方式将01
′
00
″‑
01
′
05
″
出现的动物叫声截取并抛弃。
65.运动声音的反向声音比如环境噪声、说话声、假运动声(比如待识别的运动类型为跳绳,但采集到的运动声为跑步,跑步声即为跳绳声的假运动声)的类型比运动声音多的多,两种类别的声音数据存在数据量严重不均衡的问题。现有技术中,通常采用复制正向数据增加正向数据量或者删除反向数据减少反向数据量以谋求正反数据的均衡,但这种方法难以提升正向样本数据的有效性,对后续提升运动声音判假模型的识别精度帮助不大。为了解决这个问题,我们采用的方法是:
66.将同一类型标签(比如均为跳绳声)的运动声音片段拼合形成为整段的运动音频,然后以过采样方式从运动音频中随机截取若干运动声音片段作为运动声音判假模型训练的正向样本数据,从同个运动音频中截取的所有运动声音片段的时间长度相同。对反向音
频(环境噪声、说话声、假运动声等单个声音类型的音频或由各种非运动声拼合形成的音频)以欠采样方式随机截取与从运动音频中截取的运动声音片段同等数量的反向声音片段作为模型训练的反向样本数据。为了进一步确保正向样本数据和反向样本数据的平衡性,优选地,每个反向声音片段对应一时长相同的作为正向样本数据的运动声音片段。
67.优选地,通过改变每个所述运动声音片段的音量高低,以进一步扩充正向样本数据的数据量;通过改变反向声音片段的音量高低,以进一步扩充反向样本数据的数据量。
68.为解决技术问题2,本实施例提供的技术方案是:以过采样得到的正向样本数据和欠采样得到的反向样本数据为模型训练样本,通过改进的卷积神经网络(改进的卷积神经网络的网络结构图请参照图4)迭代训练得到运动判假模型,通过该运动判假模型对待识别声音片段进行运动声音判假,满足了运动声音判假应用场景对模型判假准确度和速度的要求。
69.综上,如图1所示,本发明实施例提供的一种基于时频图和卷积神经网络的运动声音判假方法,包括:
70.步骤s1,将具有相同声音类别标签(比如标签为“跳绳声”“跑步声”等)的多个运动声音片段拼合形成为运动音频;将声音片段拼合成整体的音频的现有方法有许多,在此不做具体阐述;
71.步骤s2,以过采样方式从运动音频中随机截取若干运动声音片段作为运动声音判假模型训练的正向样本数据,以欠采样方式从反向音频中随机截取与从运动音频中截取的运动声音片段同等数量的反向声音片段作为模型训练的反向样本数据,每个反向声音片段优选对应一时长相同的运动声音片段(比如作为正向样本数据的运动声音片段有3个,时长分别为1分钟、2分钟、3分钟,那么反向声音片段也为3个,时长同样为1分钟、2分钟和3分钟,与运动声音片段数量和时长对应);
72.步骤s3,将正向样本数据和反向样本数据输入到改进的卷积神经网络中,经迭代更新训练形成运动声音判假模型;
73.步骤s4,从真实环境中采集的音频中截取待识别声音片段输入到运动声音判假模型中,模型输出对待识别声音片段的运动判假结果。
74.运动声音判假模型进行运动声音判假包括两个步骤:1、将待识别声音片段由音频转换为时频图;2、根据时频图识别输出运动判假结果。
75.本实施例中,将待识别声音片段由音频转换为时频图的方法如图3所示,包括:
76.步骤s411,对待识别声音片段从起始位置以滑动窗方式截取若干个帧片段直至结尾,相邻的两个帧片段具有声音重叠部分;在以滑动窗方式截取帧片段时,在相邻的两个帧片段中保留重叠部分是为了形成冗余信息,可以减少模型的识别误差。如图5所示,图5中的波形是待识别声音片段的一维音频波形,从该波形数据起始位置开始通过第一滑动窗100截取一个帧片段(滑动窗的长度比如为256个音频数据点),然后具有相同长度的第二滑动窗200部分与第一滑动窗100重叠(比如重叠128个音频数据点)截取另一个帧片段,重复此操作直至待识别声音片段的结尾,完成对待识别声音片段的帧片段截取。
77.为了提高后续傅里叶变换的计算速度,帧片段的长度优选为2的n次幂,若帧片段的长度不足2的n次幂,通过在帧片段的后面以数据补0方式使帧片段的长度达到2的n次幂。优选地,n取值为8,即帧片段的长度优选为256个音频数据点。n取值为8经反复实验总结而
得,我们发现n取值为8时,后续傅里叶变换的计算速度最为理想。
78.步骤s412,对每个帧片段乘相同长度的汉宁升余弦窗,因为每个帧片段后续在做傅里叶变换时都要进行周期延拓,即需要复制多个此片段然后使首尾相接,由于帧片段是以滑动窗部分重叠方式截取出来的,首尾相接后会出现本不该有的间断,导致傅里叶变化后的频谱就不符合实际情况,加窗后能够减小间断使得到的频谱与实际具有的频谱更相符。每个帧片段乘以相同长度的汉宁升余弦窗,即帧片段中的每个音频数据点的值(音量值)乘以对应时刻窗函数的值作为该数据点的新值。窗函数表达式如以下公式(1):
[0079][0080]
公式(1)中,hann(n)表示帧片段中音频数据点加窗时所要乘的窗函数值;
[0081]
pi表示圆周率;
[0082]
n表示帧片段中的第n个音频数据点;
[0083]
d表示汉宁升余弦窗的宽度。
[0084]
步骤s413,对每个帧片段进行傅里叶变换,以将每个帧片段从空间域转换到频域,得到每个帧片段对应的时频谱;为了得到帧片段中心时刻的频谱,就需对加窗后的每个帧片段进行离散傅里叶变换,离散傅里叶变换过程通过以下公式(2)
‑
(3)表达:
[0085][0086][0087]
公式(2)
‑
(3)中,x[n]表示帧片段中的音频数据点经离散傅里叶逆变换后的音量值;
[0088]
n表示帧片段中的第n个音频数据点;
[0089]
k为k倍谐波;
[0090]
a
k
为k倍谐波的振幅;
[0091]
e为自然对数;
[0092]
j为虚数;
[0093]
w0为基波频率;
[0094]
n为帧片段中音频数据点的总数。
[0095]
对于每个帧片段,可通过公式(3)计算出每个频率成分的比例大小。
[0096]
步骤s414,将每个帧片段对应的时频谱按时间顺序排列形成为待识别声音片段对应的时频图(时频图请参照图6)。
[0097]
为了提升运动声音判假模型的识别速度,步骤s411中,优选对待识别声音片段的每个时刻的音量值进行归一化处理后再截取帧片段。对待识别声音片段的每个时刻的音量值进行归一化处理的方法为:
[0098]
待识别声音片段原始的一维音频波形数据的每个时刻有一个音量值,这些按时间顺序排列的音量值就形成了一维音频波形数据。每个时刻的数据值即对音量的度量以16位二进制表示,最大值不超过32727,将每个数据值除32727进行归一化处理后得到
‑
1到1之间的值,数据归一化后有利于大幅提升模型的训练速度。
[0099]
本实施例中,根据时频图识别输出运动判假结果的方法如图2和4所示,包括:
[0100]
步骤s41,将待识别声音片段由音频转换为尺寸为124*129*1(124是二维图行数,129是二维图列数,1是通道数)时频图;
[0101]
步骤s42,尺寸为124*129*1的时频图输入到二维平均池化层1后尺寸缩小为31*32*1,缩小时频图尺寸的目的是为了提高模型的识别速度,并有利于减少对存储空间的占用。平均池化的过程如图8所示,比如输入为a,输出为b,平均池化运算即为求图8中的a11、a12、
……
、a44共16个值的平均值作为输出b的值。
[0102]
步骤s43,将尺寸缩小后的时频图经过第一卷积层2和第二卷积层3的卷积特征提取,输出时频图对应的尺寸为27*28*64的特征图;卷积过程请参照图7,比如卷积输入为a,卷积核为b,卷积输出为c,具体运算为:
[0103]
a11*b11+a12*b12+a21*b21+a22*b22=c11;
[0104]
a12*b11+a13*b12+a22*b21+a23*b22=c12;
[0105]
a21*b11+a22*b12+a31*b21+a32*b22=c21;
[0106]
a22*b11+a23*b12+a32*b21+a33*b22=c22;
[0107]
步骤s44,将特征图输入到最大池化层5并展开(即把二维特征图的每个元素重新排列成一列,比如排队,把第二队的队头让他去接到第一队的队尾,后面几队同样操作,本来几队就排成了一队)后得到表征时频图的长度为11648的一维向量;
[0108]
步骤s45,将一维向量输入到第一全连接层5进行降维处理成长度为128的向量;
[0109]
步骤s46,将降维后的一维向量输入到第二全连接层6并经softmax激活后输出待识别声音片段为运动声音或非运动声音的概率,实现对运动声音的判断。本发明训练运动声音判假模型的方法简述如下:
[0110]
先对模型参数进行初始化,这时每个参数都有了一个值,输入训练集中的时频图后,按照模型规定好的计算步骤进行一层层的计算,最后输出此时频图为正反类别的概率,与它本身的标签比较得到误差的大小,然后通过梯度反向传播回每个参数用于调整每个参数的值,更新的参数能够使误差变小,按照上述步骤,将所有样本都输入模型用于调优参数后即完成了一轮模型训练,此时模型所预测的类别与实际的类别误差减小,如此重复若干轮,直到误差不再变小且不比验证集的误差更小就得到了未过拟合的最佳模型参数,即完成了模型的训练。模型训练完成后,将新的样本输入模型后就能得到与它的实际类别误差最小的预测,即判别的准确率最好,如此便能够准确地识别出一个样本的类别,不管其中还有没有其他各种声音,此模型训练完后只关注运动声音的特征,有此运动的声音的特征就被判别为正类,无此运动的声音特征就被判别为反类。
[0111]
综上,本发明解决了运动声音判假应用场景的模型训练样本数据不平衡的问题以及采用现有lstm长短期记忆神经网络训练效率低下、识别精度和识别速度不高的技术问题。
[0112]
本发明还提供了一种基于时频图和卷积神经网络的运动声音判假装置,可实现所述的运动声音判假方法,如图9所示,运动声音判假装置包括:
[0113]
运动音频合成模块,用于将具有相同声音类别标签的多个运动声音片段拼合形成为运动音频;
[0114]
反向音频获取模块,用于获取运动音频的反向音频;
[0115]
样本均衡模块,分别连接运动音频合成模块和反向音频获取模块,用于以过采样方式从运动音频中随机截取若干运动声音片段作为运动声音判假模型训练的正向样本数据,并用于以欠采样方式从反向音频中随机截取与运动声音片段同等数量的反向声音片段作为模型训练的反向样本数据,每个反向声音片段对应一时长相同的运动声音片段;
[0116]
样本输入模块,连接样本均衡模块,用于将正向样本数据和反向样本数据输入到改进的卷积神经网络,经迭代更新训练形成运动声音判假模型;
[0117]
模型训练模块,连接样本输入模块,用于根据输入的正向样本数据和反向样本数据,通过改进的卷积神经网络经迭代更新训练形成运动声音判假模型;
[0118]
声音采集模块,用于从真实环境中采集运动声音,并形成为音频文件;
[0119]
声音截取模块,连接声音采集模块,用于从音频文件中截取一待识别声音片段;
[0120]
声音输入模块,连接声音截取模块,用于将待识别声音片段输入到声音识别模块中;
[0121]
声音识别模块,分别连接模型训练模块和声音输入模块,用于通过运动声音判假模型识别输出待识别声音片段为运动声音的概率。
[0122]
如图10所示,声音识别模块中包括:
[0123]
时频图生成模块,用于将待识别声音片段由音频转换为时频图,如图10所示,时频图生成模块中具体包括:
[0124]
帧片段截取单元,用于对待识别声音片段从起始位置以滑动窗方式截取若干个帧片段直至结尾,相邻的两个帧片段具有声音重叠部分;
[0125]
加窗单元,连接帧片段截取单元,用于对每个帧片段乘相同长度的汉宁升余弦窗,以减轻帧片段周期延拓后出现本不该有的间断导致傅里叶变换后的频谱不符合实际情况的问题;
[0126]
空间域转换单元,连接加窗单元,用于对加窗后的每个帧片段进行傅里叶变换,以将每个帧片段从空间域转换到频域;
[0127]
排序单元,连接空间域转换单元,用于将完成空间域转换的每个帧片段对应的时频谱按时间顺序排列形成为所述时频图。
[0128]
需要声明的是,上述具体实施方式仅仅为本发明的较佳实施例及所运用技术原理。本领域技术人员应该明白,还可以对本发明做各种修改、等同替换、变化等等。但是,这些变换只要未背离本发明的精神,都应在本发明的保护范围之内。另外,本技术说明书和权利要求书所使用的一些术语并不是限制,仅仅是为了便于描述。