公开/公告号CN112562741A
专利类型发明专利
公开/公告日2021-03-26
原文格式PDF
申请/专利权人 金陵科技学院;
申请/专利号CN202110192300.4
申请日2021-02-20
分类号G10L25/78(20130101);G10L25/30(20130101);G10L25/24(20130101);G10L25/03(20130101);G06N3/08(20060101);G06N3/04(20060101);
代理机构32206 南京众联专利代理有限公司;
代理人蒋昱
地址 210000 江苏省南京市江宁区弘景大道99号
入库时间 2023-06-19 10:24:22
技术领域
本发明涉及音乐人工智能技术领域,特别是涉及到一种基于点积自注意力卷积神经网络的歌声检测方法。
背景技术
歌声检测(Singing Voice Detection, SVD)是判断数字音乐中的每一小段音频是否含有歌声的过程,其检测精度一般在50-200毫秒之间。歌声检测是音乐信息检索(Music Information Retrieval, MIR)领域的重要基础性工作,很多其他研究方向比如歌手识别,歌声分离,歌词对齐等都需要歌声检测作为事前必备技术或者增强技术。歌声检测的示意图如图4所示,上半部分是波形图,下半部分是时频图,黄色阴影部分是被检出的歌声。在音乐中,除了歌声,一般还含有乐器的声音,虽然对人来说,要在混合了乐器和歌声的音乐片段中判断是否含歌声,是轻而易举的事情,但对机器来说,目前仍是颇具挑战性的工作。
歌声检测的过程一般包括预处理、特征提取、分类和后处理等几部分,其中特征提取和分类是最重要的两大步骤。在特征提取过程中,最简单常用的特征是经过短时傅里叶变换后的时频图,其变形包括梅尔时频图和对数梅尔时频图。其他特征一般是基于时频图加工而提取的,比如梅尔频率倒谱系数MFCCs(Mel Frequency Cepstral Coefficients),动谱特征(Fluctogram),谱平坦因子(Spectral Flatness),谱收缩因子(SpectralContraction)等等;在分类过程中,主要的分类方法包括基于传统分类器的方法和基于深度神经网络DNN(Deep Neural Network)的方法,前者包括支持向量SVM(Support VectorMachine),隐马尔可夫模型HMM(Hidden Markov Model),随机森林RF(Random Forest)等;后者包括采用卷积神经网络CNN(Convolutional Neural Network)和循环神经网络RNN(Recurrent Neural Network)的方法。
在上述歌声检测的一般框架中,特征提取和分类是两个独立的过程,随着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 forImproved Singing Voice Detection with Neural Networks的输入是梅尔时频图。需要指出的是,这两个文献的主要目标并不是提升歌声检测的性能,前者主要目标是定位歌声所在的频谱(spectral bin)从而用于歌声分离,后者主要目标是讨论数据增强在歌声检测中的作用。在其他DNN的歌声检测算法中,一般都具有复杂的特征工程,或者进行了复杂的预处理,比如歌声分离。
针对以上问题申请人申请了基于挤压和激励残差网络的歌声检测方法申请号:CN202010164594.5,该发明提出了一种基于挤压和激励残差网络的歌声检测方法。该方法包括以下步骤:构建挤压和激励残差网络;构造音乐数据集;把音乐数据集转换成图像集;用训练图像集分别训练构建的网络;用测试图像集分别测试训练好的各网络;选择测试正确率最高的网络为最终的歌声检测网络;用选定的网络对被检测的音频文件进行歌声检测。该发明通过深度残差网络隐含提取不同层次的歌声特征,并能利用嵌入的挤压和激励模块的自适应注意力特性判断这些特征的重要性,其在JMD数据集下,在深度分别为14,18,34,50,101,152,200的情况下,其检测准确率平均值为88.19,效果还是有待提高。此外该发明堆叠网络的方式消耗计算资源多,训练时间成长。
本发明考虑的是如何在统一CNN框架下提升歌声检测算法性能的问题。在统一CNN算法中,学习到的特征,认为存在于各层次的特征图中,这些特征是通过卷积核“观察”上一层特征图得到的。为此发明人提出基于点积注意力CNN的歌声检测算法,通过在CNN中嵌入点积自注意力模块再次分配注意力到不同的特征,使得各特征在网络中的权重更合理,从而提升整体检测的性能。
发明内容
为了解决上述存在问题,本发明提供一种基于点积自注意力卷积神经网络的歌声检测方法,通过在卷积神经网络中嵌入了点积自注意力模块,使得卷积网络学习到的特征在网络中的注意力分布不再是相同的,注意力重估机制使得各特征得到网络不同的对待,从而提升整体网络性能,提高算法的准确率。
本发明提供一种基于点积自注意力卷积神经网络的歌声检测方法,具体步骤如下:
步骤1:将点积自注意力机制模块嵌入CNN模型中,提高模型的特征提取效果和网络分类准确率;
所述CNN模型包含4个卷积层和3个全连接层,每个卷积层后面有一个LeakyRelu增强非线性,每两个卷积层分别紧跟一个最大值池化层缩小特征图组成一个卷积组模块,卷积层的输出通道数按顺序分别是64, 32, 128 , 64,卷积层的输出特征图进入全连接层前平铺成向量,然后进入三个线性变换层逐层降低向量的维度,每个线性变换紧跟一个Dropout层防止过拟合,线性变换的输出长度分别是128, 64, 1,最后输出的一维向量用于二分类,将注意力机制模块嵌入CNN的方法是在两个卷积组模块后分别嵌入点积自注意力模块对其输出的特征进行注意力权重重估,并把重估后的特征图送入到网络的下一层;
对于CNN中输出1维改成输出2维,用以应用交叉熵损失函数,对传统应用于机器翻译的点积自注意力模块做了如下改进:
1)使向量键值对
本算法中
2)
本算法中
3)增加了注意力分布变换机制;
本算法在得到注意力分布后,还增加了一个变换机制,从分布矩阵形式变换为特征图的权重向量,降低了注意力重估的复杂度,变换过程用以下公式表示:
其中R和E分别是自注意力分布矩阵和单位对角矩阵,R(1-E)则将注意力分布矩阵的对角线置零,不计算查询向量对自身的注意,在特征图的频率维度dim=1上取均值得到各特征图的注意力权重
步骤2:对数梅尔时频图输入;
本算法重点关注对特征的注意力重估,因此忽略复杂的特征工程,本算法的输入是歌声检测中的常用基本特征,即对数梅尔时频图,首先对音频文件计算梅尔时频图,然后对梅尔时频图的幅值取对数,最后得到对数梅尔时频图矩阵,随后从该矩阵的起始列位置开始逐个提取图像,送入到构造的CNN神经网络中;
步骤3:网络设置:
本算法采用Pytorch平台,并借助Homura包进行开发和实现,网络训练时优化器采用Adam,同时设置了早停机制和最大轮数用以结束训练,实验中早停次数设为10,最大训练轮数为50;
在损失函数方面,应用加权二分类交叉熵损失函数,在应用损失函数前,用sigmoid将网络输出转换成概率值,设N个样本预测为歌声的概率为
作为本发明进一步改进,步骤2:具体步骤如下:
首先对音频文件计算梅尔时频图,采样率为22050Hz,帧长为1024,帧移为315,梅尔频率数量取80个,频率区间取[27.5, 8000]Hz,因此时频图的时间分辨率是14.3ms,其次对梅尔时频图的幅值取对数,便可得到对数梅尔时频图,最后得到的对数梅尔时频图是一个行数为80行的矩阵,音频文件的长度决定矩阵的列数,随后从该矩阵的起始列位置开始逐个提取大小为80*115的图像,送入到构造的神经网络,每个图像跨越的时长为1.6s,取中心点的分类为图像的分类值,读取图像时,每跳设置为5列,因此本算法的检测精度是71.5ms,对于提取图像的列数这个参数,首先通过程序,使得网络能适应输入图像列数的变化,然后把图像列数分别设置为50, 80, 100, 115, 150, 200列,最后,在JMD数据集下通过实验发现图像列数为115检测效果最佳,在描述过程中始终使用80*115的图像进行描述。
本发明提供一种基于点积自注意力卷积神经网络的歌声检测方法,其有益效果和设计特点如下:
1)本申请基于点积自注意力卷积神经网络的歌声检测,相对于传统基于CNN的方法,由于把点积自注意力机制嵌入到CNN模型中,提高了模型的特征提取效果和网络分类准确。通过在JMD数据集下进行歌声检测实验,并分别取3次实验结果平均值,发现本发明的准确率(Accuracy)比传统CNN模型提升了1.82;
2)本申请基于点积自注意力卷积神经网络的歌声检测,相对发明(申请号:CN202010164594.5, 一种基于挤压和激励残差网络的歌声检测方法,以下称发明1)具有卷积层数小,训练时间短的优势,不仅如此。对比实验结果发现,本发明相对发明1的准确率还有少许提升。发明1通过深度残差网络隐含提取不同层次的歌声的特征,并利用嵌入在残差网络中的挤压和激励模块的自适应注意力特性,判断这些特征的重要性,从而利用重要性程度高的特征鉴别歌声,在一定程度上提高了歌声检测的准确率,但是,这种方法通过堆叠卷积网络实现,网络深度大,训练时间长,需要消耗更多的计算资源。发明1的卷积层数从14到200层不等,而本发明只有4个卷积层,毋庸置疑本发明消耗资源少,训练时间短。发明1在JMD数据集下,在深度分别为14,18,34,50,101,152,200的情况下,其检测准确率平均值为0.8819,而本发明在JMD下取3次的检测平均准确率为0.8836。此外,在对数梅尔时频图提取图像时,本发明提取图像不再是像发明1一样是不变的正方形,而是可变的矩形,本发明经过实验发现图像列数为115时效果最好;
3)本申请基于点积自注意力卷积神经网络的歌声检测,设计中将CNN中学习到的特征根据注意力分布进行加权重估,对基于CNN的歌声检测框架进行改造如图1所示,嵌入点积自注意力模块;嵌入的方法是在两个卷积组模块后分别嵌入点积自注意力模块对其输出的特征进行注意力权重重估,并把重估后的特征图送入到网络的下一层,其模型可通过图3描述,CNN网络的n-1层的特征F=(F
4)目前,大多数点积自注意力网络应用于机器翻译,构建于RNN中,为了适用于CNN模型的歌声检测,本申请基于点积自注意力卷积神经网络的歌声检测,对原有的点积自注意网络进行了改进:原自注意力网络处理对象是词向量,输入与输出向量长度相等,三者保持长度不变。而本算法的处理对象是对数梅尔时频图,且CNN网络的特征图大小在网络中发生变化,因此,这三者的向量长度应自适应变化。本发明对
5)本申请基于点积自注意力卷积神经网络的歌声检测,设计中原自注意力网络的
6)本申请基于点积自注意力卷积神经网络的歌声检测设计算法在得到注意力分布后,增加一个变换机制,从分布矩阵形式变换为特征图的权重向量,降低了注意力重估的复杂度;所述变换过程可以用公式表示:
7)本申请基于点积自注意力卷积神经网络的歌声检测设计采用对数梅尔时频图输入,忽略复杂的特征工程,对音频文件计算梅尔时频图,采样率为22050Hz,帧长为1024,帧移为315,梅尔频率数量取80个,频率区间取[27.5, 8000]Hz,时频图的时间分辨率是14.3ms;对梅尔时频图的幅值取对数,得到对数梅尔时频图;得到的对数梅尔时频图是一个行数为80行的矩阵,音频文件的长度决定矩阵的列数;从该矩阵的起始列位置开始逐个提取大小为80*115的图像,送入到构造的神经网络;每个图像跨越的时长为1.6s,取中心点的分类为图像的分类值;读取图像时,每跳设置为5列,算法的检测精度是71.5ms;算法采用Pytorch平台,并借助Homura包进行开发和实现;网络训练时优化器采用Adam,同时设置早停机制和最大轮数用以结束训练,实验中早停次数设为10,最大训练轮数为50;算法损失函数应用加权二分类交叉熵损失函数;
8)本申请基于点积自注意力卷积神经网络的歌声检测,对于提取图像的列数这个参数,本发明是首先通过程序,使得网络能适应输入图像列数的变化,然后把图像列数分别设置为50,80,100,115,150,200列,最后,在JMD数据集下通过实验发现图像列数为115检测效果最佳。
附图说明
图1为本发明基于CNN的歌声检测网络结构图;
图2为本发明特征图注意力重估示意图;
图3为本发明点积注意力模块结构示意图;
图4为歌声检测示意图。
具体实施方式
下面结合附图与具体实施方式对本发明作进一步详细描述:
本发明提供一种基于点积自注意力卷积神经网络的歌声的检测方法,通过采用对数梅尔时频图输入,借助Pytorch平台的Homura包进行开发和实现,在卷积神经网络中嵌入点积自注意力模块,嵌入的方法是在两个卷积组模块后分别嵌入点积自注意力模块对其输出的特征进行注意力权重重估,并把重估后的特征图送入到网络的下一层,该模块使得卷积网络学习到的特征在网络中的注意力分布不再是相同的,这种注意力重估机制使得各特征得到网络不同的对待,从而提升整体网络性能。此外,本发明的点积自注意力模块对传统应用于机器翻译的点自注意力模型进行了改进,首先是使得
作为本发明的一种实施例,本发明提供一种基于点积自注意力卷积神经网络的歌声的检测方法,所示算法目标是通过点积自注意力模型,将CNN中学习到的特征根据注意力分布进行加权重估,对基于CNN的歌声检测框架(如图1)进行改造,嵌入点积自注意力模块;嵌入的方法是在两个卷积组模块后分别嵌入点积自注意力模块对其输出的特征进行注意力权重重估,并把重估后的特征图送入到网络的下一层,如图2所示其模型可通过CNN网络的n-1层的特征程序将F=(F
图3所示算法中
如图2所示算法对
所示算法增加了注意力分布变换机制;所示算法在得到注意力分布后,增加一个变换机制,从分布矩阵形式变换为特征图的权重向量,降低了注意力重估的复杂度;所示变换过程可以用公式表示:
所示算法采用对数梅尔时频图输入,忽略复杂的特征工程,对音频文件计算梅尔时频图,采样率为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个样本预测为歌声的概率为
本申请实验情况如下:
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 andthe Future Outlook有公开的在keras框架的实现代码,但是为了保持各条件不变的情况下对比实验结果,因此把该文献相应的代码移植到和本文算法实现相同的Pytorch框架,这样网络的训练、验证和测试方法可以保持一致;
3)实验结果;
实验结果的评估标准包括准确率(Accuracy)和F值(F-measure),其中F值是精确率(Precision)和召回率(Recall)的综合。因DNN训练收敛有一定的随机性,因此,使两种算法分别分执行3次,并计算两指标百分数的均值,实验结果见表1。
表
从表中可看出,本算法相对基于CNN的算法,准确率和F值均有提升,这说明在CNN中嵌入点积自注意力模块对歌声检测的有效性。由此可见本申请在卷积神经网络中嵌入了点积自注意力模块,该模块使得卷积网络学习到的特征在网络中的注意力分布不再是相同的,这种注意力重估机制使得各特征得到网络不同的对待,从而提升了整体网络性能。
此外,和申请号:CN202010164594.5一种基于挤压和激励残差网络的歌声检测方法进行对比,在卷积层数小,训练时间短的情况下,本发明相对发明1的准确率还有少许提升。发明1在JMD数据集下,在深度分别为14,18,34,50,101,152,200的情况下,其检测准确率平均值为88.19,本发明比之高0.17个百分点。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作任何其他形式的限制,而依据本发明的技术实质所作的任何修改或等同变化,仍属于本发明所要求保护的范围。
机译: 基于卷积神经网络的注意力计算方法和装置,以及装置
机译: 用于视觉问题回答的基于注意力的可配置卷积神经网络(ABC-CNN)的系统和方法
机译: 基于注意力的可配置卷积神经网络(ABC-CNN)用于视觉问题回答的系统和方法