首页 / 一种基于点积自注意力卷积神经网络的歌声检测方法

一种基于点积自注意力卷积神经网络的歌声检测方法有效专利 发明

技术领域

[0001] 本发明涉及音乐人工智能技术领域,特别是涉及到一种基于点积自注意力卷积神经网络的歌声检测方法。

相关背景技术

[0002] 歌声检测(Singing Voice Detection, SVD)是判断数字音乐中的每一小段音频是否含有歌声的过程,其检测精度一般在50‑200毫秒之间。歌声检测是音乐信息检索(Music Information Retrieval, MIR)领域的重要基础性工作,很多其他研究方向比如歌手识别,歌声分离,歌词对齐等都需要歌声检测作为事前必备技术或者增强技术。歌声检测的示意图如图4所示,上半部分是波形图,下半部分是时频图,黄色阴影部分是被检出的歌声。在音乐中,除了歌声,一般还含有乐器的声音,虽然对人来说,要在混合了乐器和歌声的音乐片段中判断是否含歌声,是轻而易举的事情,但对机器来说,目前仍是颇具挑战性的工作。
[0003] 歌声检测的过程一般包括预处理、特征提取、分类和后处理等几部分,其中特征提取和分类是最重要的两大步骤。在特征提取过程中,最简单常用的特征是经过短时傅里叶变换后的时频图,其变形包括梅尔时频图和对数梅尔时频图。其他特征一般是基于时频图加工而提取的,比如梅尔频率倒谱系数MFCCs(Mel Frequency Cepstral Coefficients),动谱特征(Fluctogram),谱平坦因子(Spectral Flatness),谱收缩因子(Spectral Contraction)等等;在分类过程中,主要的分类方法包括基于传统分类器的方法和基于深度神经网络DNN(Deep Neural Network)的方法,前者包括支持向量SVM(Support Vector Machine),隐马尔可夫模型HMM(Hidden Markov Model),随机森林RF(Random Forest)等;后者包括采用卷积神经网络CNN(Convolutional Neural Network)和循环神经网络RNN(Recurrent Neural Network)的方法。
[0004] 在上述歌声检测的一般框架中,特征提取和分类是两个独立的过程,随着DNN在学习特征过程的重要性进一步得到挖掘和体现,这两个独立的过程中可以统一到一个DNN框架,一步完成(以下称统一DNN框架),这使得算法框架中复杂而周期长的特征工程可以忽略,仅仅输入时频图等简单特征。在这方面,Jan有一个基于CNN的方案,其中文献J. Schlüter. Learning to Pinpoint Singing Voice from Weakly Labeled Examples的输入是对数梅尔时频图,而文献J. Schlüter,T. Grill. Exploring Data Augmentation for Improved Singing Voice Detection with Neural Networks的输入是梅尔时频图。需要指出的是,这两个文献的主要目标并不是提升歌声检测的性能,前者主要目标是定位歌声所在的频谱(spectral bin)从而用于歌声分离,后者主要目标是讨论数据增强在歌声检测中的作用。在其他DNN的歌声检测算法中,一般都具有复杂的特征工程,或者进行了复杂的预处理,比如歌声分离。
[0005] 针对以上问题申请人申请了基于挤压和激励残差网络的歌声检测方法申请号:CN202010164594.5,该发明提出了一种基于挤压和激励残差网络的歌声检测方法。该方法包括以下步骤:构建挤压和激励残差网络;构造音乐数据集;把音乐数据集转换成图像集;
用训练图像集分别训练构建的网络;用测试图像集分别测试训练好的各网络;选择测试正确率最高的网络为最终的歌声检测网络;用选定的网络对被检测的音频文件进行歌声检测。该发明通过深度残差网络隐含提取不同层次的歌声特征,并能利用嵌入的挤压和激励模块的自适应注意力特性判断这些特征的重要性,其在JMD数据集下,在深度分别为14,18,
34,50,101,152,200的情况下,其检测准确率平均值为88.19,效果还是有待提高。此外该发明堆叠网络的方式消耗计算资源多,训练时间成长。
[0006] 本发明考虑的是如何在统一CNN框架下提升歌声检测算法性能的问题。在统一CNN算法中,学习到的特征,认为存在于各层次的特征图中,这些特征是通过卷积核“观察”上一层特征图得到的。为此发明人提出基于点积注意力CNN的歌声检测算法,通过在CNN中嵌入点积自注意力模块再次分配注意力到不同的特征,使得各特征在网络中的权重更合理,从而提升整体检测的性能。

具体实施方式

[0012] 下面结合附图与具体实施方式对本发明作进一步详细描述:本发明提供一种基于点积自注意力卷积神经网络的歌声的检测方法,通过采用对数梅尔时频图输入,借助Pytorch平台的Homura包进行开发和实现,在卷积神经网络中嵌入点积自注意力模块,嵌入的方法是在两个卷积组模块后分别嵌入点积自注意力模块对其输出的特征进行注意力权重重估,并把重估后的特征图送入到网络的下一层,该模块使得卷积网络学习到的特征在网络中的注意力分布不再是相同的,这种注意力重估机制使得各特征得到网络不同的对待,从而提升整体网络性能。此外,本发明的点积自注意力模块对传统应用于机器翻译的点自注意力模型进行了改进,首先是使得 的长度不等,其次对的表达含义进行重新定义, 再次增加了注意力分布变换机制。
[0013] 作为本发明的一种实施例,本发明提供一种基于点积自注意力卷积神经网络的歌声的检测方法,所示算法目标是通过点积自注意力模型,将CNN中学习到的特征根据注意力分布进行加权重估,对基于CNN的歌声检测框架(如图1)进行改造,嵌入点积自注意力模块;嵌入的方法是在两个卷积组模块后分别嵌入点积自注意力模块对其输出的特征进行注意力权重重估,并把重估后的特征图送入到网络的下一层,如图2所示其模型可通过CNN网络的n‑1层的特征程序将F=(F1, F2, …, Fm)经过Sdp模块进行了注意力重估,转换成F’=(F’1, F’2, …, F’m)再进入到第n层网络;
图3所示算法中 的长度不等; 的长度保持和特征图的高度相同,而高度
是时频图中的频率个数; 的长度是特征图的高度和宽度之积;
如图2所示算法对 的表达含义进行改进;对传统应用于机器翻译的点积自
注意力网络的 在进行点积前进行了线性变换,算法的 保持不变,代表原特征图,发生变化的是 ,它们分别经过线性变换,长度由h*w变为h,代表着特征图的抽象,其中是特征图 的键值,是特征图查询向量, 在线性变换后都经过一个Relu单元,以增强非线性特性。
[0014] 所示算法增加了注意力分布变换机制;所示算法在得到注意力分布后,增加一个变换机制,从分布矩阵形式变换为特征图的权重向量,降低了注意力重估的复杂度;所示变换过程可以用公式表示: ,其中R和E分别是自注意力分布矩阵和单位对角矩阵,R(1‑E)则将注意力分布矩阵的对角线置零,不计算查询向量对自身的注意;在特征图的频率维度(dim=1)上取均值得到各特征图的注意力权重 ,最后得到加权注意力后的特征图
所示算法采用对数梅尔时频图输入,忽略复杂的特征工程,对音频文件计算梅尔时频图,采样率为22050Hz,帧长为1024,帧移为315,梅尔频率数量取80个,频率区间取[27.5, 8000]Hz,所示时频图的时间分辨率是14.3ms;对梅尔时频图的幅值取对数,得到对数梅尔时频图;所示得到的对数梅尔时频图是一个行数为80行的矩阵,音频文件的长度决定矩阵的列数;所示从该矩阵的起始列位置开始逐个提取大小为80*115的图像,送入到构造的神经网络;所示每个图像跨越的时长为1.6s,取中心点的分类为图像的分类值;所示读取图像时,每跳设置为5列,算法的检测精度是71.5ms;所示算法采用Pytorch平台,并借助Homura包进行开发和实现;网络训练时优化器采用Adam,同时设置早停机制和最大轮数用以结束训练,所示实验中早停次数设为10,最大训练轮数为50;所示算法损失函数应用加权二分类交叉熵损失函数,歌声检测的数据集中歌声和非歌声的样本数不平衡,权重设为数据集中的样本数量比例;在应用损失函数前,用sigmoid将网络输出转换成概率值;设N个样本预测为歌声的概率为 ,样本的标签为 ,权重为 , 其中 , 则加权二分类交叉熵损失函数为:
 。
[0015] 本申请实验情况如下:1)数据集;
为了验证算法的有效性,选择了1个公开数据集进行实验,这个数据集是业内经常使用的Jamendo(简称JMD),JMD有歌声和非歌声的标注信息,包含93首歌曲,共371分钟。对于JMD的训练、验证和测试集的划分有一个固定的样板,在本实验中保持不变。JMD的歌声和非歌声的样本数量比分别为1.55,这个比例将在加权交叉损失函数中使用;
2)用于比较的CNN系统;
本实验是为了比较在CNN中嵌入点积自注意力模块前后的网络性能变化,采用基于CNN的歌声检测系统作为用于比较的基线系统。对于该系统的实现,文献K. Lee, K. Choi, J. Nam. Revisiting Singing Voice Detection: a Quantitative Review and the Future Outlook有公开的在keras框架的实现代码,但是为了保持各条件不变的情况下对比实验结果,因此把该文献相应的代码移植到和本文算法实现相同的Pytorch框架, 这样网络的训练、验证和测试方法可以保持一致;
3)实验结果;
实验结果的评估标准包括准确率(Accuracy)和F值(F‑measure),其中F值是精确率(Precision)和召回率(Recall)的综合。因DNN训练收敛有一定的随机性,因此,使两种算法分别分执行3次,并计算两指标百分数的均值,实验结果见表1。
[0016] 表   本文算法和基于CNN的算法实验结果对标从表中可看出,本算法相对基于CNN的算法,准确率和F值均有提升,这说明在CNN中嵌入点积自注意力模块对歌声检测的有效性。由此可见本申请在卷积神经网络中嵌入了点积自注意力模块,该模块使得卷积网络学习到的特征在网络中的注意力分布不再是相同的,这种注意力重估机制使得各特征得到网络不同的对待,从而提升了整体网络性能。
[0017] 此外,和申请号:CN202010164594.5一种基于挤压和激励残差网络的歌声检测方法进行对比,在卷积层数小,训练时间短的情况下,本发明相对发明1的准确率还有少许提升。发明1在JMD数据集下,在深度分别为14,18,34,50,101,152,200的情况下,其检测准确率平均值为88.19,本发明比之高0.17个百分点。
[0018] 以上所述,仅是本发明的较佳实施例而已,并非是对本发明作任何其他形式的限制,而依据本发明的技术实质所作的任何修改或等同变化,仍属于本发明所要求保护的范围。

当前第1页 第1页 第2页 第3页