本发明涉及语音或声音处理,尤其涉及一种基于数据混合和标签平滑训练模型及环境声音分类的方法。
背景技术:
1、声音是人们接受和传递信息的途径之一,同时声音数据有着非接触测量的优点,因此声音分类的应用十分广泛。声音分类可以分为环境声音分类和人的声音分类,环境声音分类可以应用于物种检测,工业声音异常检测,噪声地图,智慧城市,医疗保健。
2、由于环境声音是高维数据,因此能够处理复杂的高维数据的深度学习模型是最常用的环境声音分类方法。然后,由于深度学习模型是数据驱动的模型,因此需要采集大量的声音数据去训练,从而耗时耗力。
技术实现思路
1、本发明提供一种基于数据混合和标签平滑训练模型及环境声音分类的方法,解决训练深度学习模型效率较低的技术问题。
2、为解决上述技术问题,本发明所采取的技术方案在于如下方面:
3、一种基于数据混合和标签平滑训练模型的方法,包括如下步骤,
4、步骤s1:获得批数据;
5、步骤s2:对批数据进行常规的时域数据增强和时域预处理,获得时域数据增强和时域预处理后的批数据;
6、步骤s3:随机初始化0到1之间的一个批数据的浮点数,当浮点数小于混合概率,则执行步骤s31混合音频和标签平滑进行数据增强,否则执行步骤s32不进行混合音频和标签平滑,获得频域处理前的批数据;
7、步骤s31:将步骤s2时域数据增强和时域预处理后的批数据进行混合音频和标签平滑,获得平滑后的批数据和标签即频域处理前的批数据,执行步骤s4;
8、步骤s32:不进行混合音频和标签平滑,步骤s2的时域数据增强和时域预处理后的批数据即频域处理前的批数据,执行步骤s4;
9、步骤s4:将步骤s3获得的频域处理前的批数据进行频域预处理和频域增强,获得频域预处理和频域增强后的批数据;
10、步骤s5:当步骤s4的频域处理前的批数据为步骤s31获得的平滑后的批数据和标签时,则基于混合音频和标签平滑的损失函数,深度学习模型反向传播,更新深度学习模型的训练参数;当步骤s4的频域处理前的批数据为步骤s2的时域数据增强和时域预处理后的批数据时,则基于交叉熵的损失函数更新深度学习模型的训练参数。
11、进一步的技术方案在于:所述步骤s1中,从总训练样本中反复不停的选取获得批数据batch data并用于训练。
12、进一步的技术方案在于:所述骤s2中,常规的时域数据增强和时域预处理包括重采样、语速增强、分贝归一化和随机裁剪。
13、进一步的技术方案在于:所述步骤s31划分包括如下步骤,
14、步骤s311:从时域数据增强和时域预处理后的批数据中随机选出两个数据,分别计算每一个数据的声压级,获得两个数据的声压级;
15、步骤s312:按照随机的混合分贝差,将步骤s311所述两个数据相加得到混合数据xmixup;
16、步骤s313:将步骤s311时域数据增强和时域预处理后的批数据中所述两个数据外的所有数据按照平滑分贝差相加,获得新的时域声音信号数据xmixuplabelsmoothing;
17、步骤s314:将步骤s313获得的时域声音信号数据xmixuplabelsmoothing进行分贝归一化,获得归一化后的混合数据xdbnormmixuplabelsmoothing;
18、步骤s315:修改深度学习模型的损失函数为基于mixup和label smoothing的损失函数。
19、进一步的技术方案在于:所述步骤s311的具体计算步骤为:从s个数据(x1,y1),(x2,y2),...,(xs,ys)组成的批数据中随机选取两个样本,(xa,ya)和(xb,yb),s为批大小batch_size,x为声信号样本,y为样本的标签;计算xa和xb的声压级分贝值spl,spl公式如下:
20、 (1)
21、式(1)中,spl(x)为x的声压级;x为声信号样本;n为声信号样本x的点数; xi为x中第i个采样点,i∈[1, n ];
22、所述步骤s312的具体计算步骤为:按照随机的混合分贝差db_mixup,将xa和xb相加得到混合数据xmixup,公式如下所示:
23、 (2)
24、式(2)中,xmixup为混合数据;xa为声信号样本;xb为声信号样本;db_mixup为混合分贝差;
25、所述步骤s313的具体计算步骤为:将批数据剩余的其他数据按照平滑分贝差db_labelsmoothing相加,从而得出新的时域声音信号数据xmixuplabelsmoothing,公式如下所示:
26、 (3)
27、式(3)中,xmixuplabelsmoothing为新的时域声音信号数据,xj为批数据中除了xa和xb的样本;
28、所述步骤s314的具体计算步骤为:将新的时域声音信号数据xmixuplabelsmoothing分贝归一化到一个相同的分贝db_target,得到归一化后的混合数据xdbnormmixuplabelsmoothing,公式如下所示:
29、 (4)
30、式(4)中,xdbnormmixuplabelsmoothing为归一化后的混合数据;db_target为分贝归一化阈值;
31、同时ya和yb的依据标签平滑修改标签向量,公式如下所示:
32、 (5)
33、式(5)中,yk为ya和yb向量的一个元素;c为ya和yb向量所属类别;n_c为类别的数量,ε平滑系数一般取0.01;
34、所述步骤s315的具体计算步骤为:基于混合音频mixup和标签平滑labelsmoothing的损失函数的公式如下所示:
35、 (6)
36、式(6)中,ypred为深度学习模型对归一化后的混合数据xdbnormmixuplabelsmoothing的输出;ya_smooth为ya经过标签平滑后的标签向量;yb_smooth为yb经过标签平滑后的标签向量;crossentropy为交叉熵损失函数;l为基于混合音频mixup和标签平滑label smoothing的损失函数模型公式。
37、进一步的技术方案在于:所述步骤s4中,频域预处理和频域增强后的批数据为步骤s31获得的平滑后的批数据和标签或者步骤s2的时域数据增强和时域预处理后的批数据。
38、一种环境声音分类的方法,包括用训练好的深度学习模型对环境声音分类,获得分类结果,根据上述的基于数据混合和标签平滑训练模型的方法,获得训练好的深度学习模型。
39、采用上述技术方案所产生的有益效果在于:
40、一种基于数据混合和标签平滑训练模型的方法,包括如下步骤,步骤s1:获得批数据;步骤s2:对批数据进行常规的时域数据增强和时域预处理,获得时域数据增强和时域预处理后的批数据;步骤s3:随机初始化0到1之间的一个批数据的浮点数,当浮点数小于混合概率,则执行步骤s31混合音频和标签平滑进行数据增强,否则执行步骤s32不进行混合音频和标签平滑,获得频域处理前的批数据;步骤s31:将步骤s2时域数据增强和时域预处理后的批数据进行混合音频和标签平滑,获得平滑后的批数据和标签即频域处理前的批数据,执行步骤s4;步骤s32:不进行混合音频和标签平滑,步骤s2的时域数据增强和时域预处理后的批数据即频域处理前的批数据,执行步骤s4;步骤s4:将步骤s3获得的频域处理前的批数据进行频域预处理和频域增强,获得频域预处理和频域增强后的批数据;步骤s5:当步骤s4的频域处理前的批数据为步骤s31获得的平滑后的批数据和标签时,则基于混合音频和标签平滑的损失函数,深度学习模型反向传播,更新深度学习模型的训练参数;当步骤s4的频域处理前的批数据为步骤s2的时域数据增强和时域预处理后的批数据时,则基于交叉熵的损失函数更新深度学习模型的训练参数。其通过混合音频和标签平滑等,训练深度学习模型效率更高。
41、一种环境声音分类的方法,包括用训练好的深度学习模型对环境声音分类,获得分类结果,根据上述的基于数据混合和标签平滑训练模型的方法,获得训练好的深度学习模型。其通过混合音频和标签平滑等训练好的深度学习模型获得环境声音分类结果,精度更高。
42、详见具体实施方式部分描述。