一种基于挤压和激励残差网络的歌声检测方法

文档序号:1310320 发布日期:2020-07-10 浏览:10次 >En<

阅读说明:本技术 一种基于挤压和激励残差网络的歌声检测方法 (Singing voice detection method based on extrusion and excitation residual error network ) 是由 桂文明 于 2020-03-11 设计创作,主要内容包括:本发明提出了一种基于挤压和激励残差网络(Squeeze-And-Excitation Residual Neural Network,简写SE-ResNet)的歌声检测方法。该方法包括以下步骤:构建挤压和激励残差网络;构造音乐数据集;把音乐数据集转换成图像集;用训练图像集分别训练构建的网络;用测试图像集分别测试训练好的各网络;选择测试正确率最高的网络为最终的歌声检测网络;用选定的网络对被检测的音频文件进行歌声检测。本发明通过深度残差网络隐含提取不同层次的歌声特征,并能利用嵌入的挤压和激励模块的自适应注意力特性判断这些特征的重要性,进而鉴别歌声。(The invention provides a singing voice detection method based on an extrusion-Excitation Residual Neural Network (SE-ResNet). The method comprises the following steps: constructing an extrusion and excitation residual error network; constructing a music data set; converting the music data set into an image set; respectively training the constructed networks by using training image sets; respectively testing the trained networks by using the test image set; selecting the network with the highest test accuracy as a final singing voice detection network; singing voice detection is performed on the detected audio file using the selected network. The invention implicitly extracts singing voice features of different levels through a deep residual error network, and can judge the importance of the features by utilizing the self-adaptive attention characteristics of an embedded extrusion and excitation module so as to identify the singing voice.)

一种基于挤压和激励残差网络的歌声检测方法

技术领域

本发明涉及音乐人工智能领域,特别是一种基于挤压和激励残差网络(Squeeze-And-Excitation Residual Neural Network)的歌声检测方法。

背景技术

一、本发明相关概念和应用领域

本发明所指歌声检测(Singing Voice Detection,SVD)是判断以数字音频形式存在于音乐中的每一小段音频是否含有人的歌声。在每一小段音乐中,除了人声,一般还含有演奏乐器的声音。要在混合乐器和人声的音乐片段中,判断是否含有人的声音是具有挑战性的工作。歌声检测的示意图如图1。

歌声检测是音乐人工智能领域的重要的基础性工作,很多其他研究比如歌手识别,歌声分离,歌词对齐等都需要歌声检测作为事前必备技术或者增强技术。例如,在歌手识别过程中,首先对音乐进行歌声检测就是事前必备技术,只有检测到歌声后才能通过歌手鉴别过程进行歌手识别。歌声检测是对每一小段音频的二分类问题。我们可以把这段音频记为X,假定我们的分类函数为f,这小段音频若含有歌声则记为1,若不含歌声则记为0,则我们可以用以下形式来表示歌声检测问题:

二、歌声检测的一般过程和现有技术

歌声检测的过程一般包括预处理、特征提取、分类、后处理等几部分。预处理主要包括音频信号去噪、信号分频等,也有利用歌声分离技术一定程度上先把歌声提取出来,再进行处理的。特征提取和分类是歌声检测的两个重要步骤。

特征提取是从音频信号中提取能表达含有歌声和不含歌声音频之间区别的鉴别信息,鉴别信息称为特征。较简单的特征是短时傅里叶变换后的时频图,如图1下半部分。从该图中可以看到含有人声的音频部分,有明显波动的粗线条,因此从这个特征我们可以判断音频是否含有歌声。特征还包括线性预测系数LPC(Linear Predictive Coefficient),感知线性预测系数PLPC(Perceptual Linear Predictive Coefficient),过零率ZCR(ZeroCross Rate),梅尔频率倒谱系数MFCCs(Mel Frequency Cepstral Coefficients)等等。

分类是指采取机器学习等方法对特征信息进行分类,主要的分类方法包括支持向量机SVM(Support Vector Machine),隐马尔可夫模型HMM(Hidden Markov Model),随机森林RF(Random Forest)等等,也包括近年来出现的深度神经网络DNN(Deep NeuralNetwork)方法。一些采用CNN(Convolution Neural Network)和RNN(Recurrent NeuralNetwork)的方法在某种程度上提高了歌声检测的准确率[1],但是检测准确率仍有提升空间。

后处理主要对分类的结果利用光滑等技术进行微调,从而达到最终提高检测准确率。

本发明所使用的文献如下:

1.K.Lee,K.Choi,J.Nam.Revisiting Singing Voice Detection:aQuantitative Review and the Future Outlook[J].arXiv preprint arXiv:1806.01180,2018.

发明内容

本发明的目的是为了提高歌声检测的准确率,从而提出一种基于挤压和激励残差网络(Squeeze-And-Excitation Residual Neural Network,简写SE-ResNet)的歌声检测算法。

为了解决以上问题,本发明采用的技术方案包括以下步骤,如图2:

1.构建用于歌声检测的、深度分别为di,i∈[14,18,34,50,101,152,200...]的挤压和激励残差网络

上述深度di中,18,34,50,101,152为挤压和激励残差网络的典型深度,14和200为本发明构造的深度,本领域技术人员可根据实际情况构造出其他适用于歌声检测数据集的深度,以获得可能的、更好的网络。

1.1挤压和激励残差网络是残差网络、挤压和激励网络两种网络结构的组合。如图3,虚线框中是挤压和激励网络的结构图,虚线框外的残差(Residual)网络包括两种类型结构:基于基本块(Basic block)和基于瓶颈块(Bottleneck block)的结构(如图4),这两种结构按网络层数进行选择和构建。本发明构造的7种深度的挤压与激励残差网络结构如下表:

其中,深度为14,18和34的网络由基于基本块的残差结构组成,而深度为50,101,152和200的网络由基于瓶颈块的残差结构组成。这些网络的初始输入是大小为H×W=80×80的图像。输入图像是由音乐音频信号转换而来,如何转换在后续步骤中阐述。对于输入为80×80图像,表列output size给出了各层的输出图像大小。图像在进入残差网络前,先经过大小为7×7,步数(stride)为2的卷积层,和大小为3×3,步数为2的最大值池化层,得到40×40的特征图。最终网络输出为2个值o0,o1,可判断是否含有歌声。

1.2设输入图像为x,x∈RH×W,输出为o,o∈R2×1,所构造的挤压和残差网络用函数F表示,则整个网络作用于输入,可表示为:

2.构造音乐数据集

2.1收集用于歌声检测的音乐数据集,一个好的数据集一般包括以下条件:(1)总量越多越好,但总时长不少于120分钟;(2)数据集中有歌声和不含歌声的音乐片段时间总和达到平衡;(3)音乐类型分布覆盖需要检测的类型,并且均衡。

2.2对每首音乐的音频文件进行样本标注。对每首音乐的每一段含有歌声部分的开始时间和结束时间进行标注,若含有歌声则标注该时间段的所有时间点为值1,否则为0。把所有标注并写入一个文本文件。

2.3把音乐数据集随机分成训练集、验证集和测试集三部分,其中训练集样本数量不少于50%。

3.把音乐数据集转换成图像集和对应标注集

3.1把音乐数据集转换成对数梅尔时频图文件集合

对音乐数据集(包括训练集、验证集和测试集)中的每首音乐音频文件进行处理,转换成一个包含对数梅尔时频图(log mel-spectrogram)的文件。计算过程是先计算音频信号的时频图(spectrogram),音频采样率为fs=22050Hz,帧长为l=1024,帧移为h=315;然后把时频图转换成梅尔时频图,转换时,梅尔频率数量取80个,频率区间取[27.5,8000]Hz,梅尔频率数量对应着时频谱图的行数H;最后对梅尔时频图中的幅值取对数,即可得到对数梅尔时频图。一个对数梅尔时频图等同于一个数据矩阵A(H,L),L由音频的长度确定。

3.2把对数梅尔时频图文件集合转换成图像集和对应标注集

3.2.1逐一读取训练集数据集中的对数梅尔时频图文件

3.2.2从对数梅尔时频图的起始列位置开始提取大小为80×80的图像数据x,计算该图像的第40列即图像中间位置的时间tW/2。查询对应音频文件file中该时间点的标注,若标注pfile(tW/2)=1,则标注该图像px是含有歌声的,否则不含歌声。把提取的图像放入图像集中,对应的标注放入标注集中,两者序号相同,以便检索。

px=pfile(tW/2) (3)

3.2.3把对数梅尔时频图的提取位置向右移动h1=5列,再次读取80×80图像数据,计算标注,并继续放入图像集和标注集,直到读完该对数梅尔时频图文件为止。

3.2.4待训练数据集中所有时频图文件都处理完毕,所有训练数据集的时频图文件就转换成一个图像集和对应的标注集。

3.2.5对验证集和测试集均执行上述步骤3.2.1至3.2.4中对训练集的操作,生成验证集和测试集的图像集和标注集。设验证集和测试集中的图像总数分别为Nv和Nt

4.将步骤3中所得到的训练集中的图像分别通过前述深度为di,i∈[14,18,34,50,101,152,200]的7个挤压和激励残差网络进行训练,训练过程中通过验证集进行验证

4.1对深度为di的网络开始进行第e轮训练

4.1.1若是第一轮训练,则置e=0,并设定最大训练轮数E,置网络di的验证集当前最大检测正确率aimax=0,置连续次数s=0,并设定连续次数最大值为S;

若不是第一轮训练,执行4.1.2。

4.1.2顺序或随机从训练图像集和对应的标注集中取出图像和对应标注,输入到挤压和激励残差网络di中进行训练

4.1.3当训练集中的所有图像都被取出并进行了训练后,第e轮训练结束。

4.2当第e轮训练结束后,对经过训练的网络di用验证集进行验证,验证算法如下:

4.2.1顺序从验证图像集和对应的标注集中取出图像和对应标注

4.2.2把图像输入到经过e轮训练的挤压和激励残差网络di,每幅图像可得到2个输出值o0,o1,取输出值较大者对应的类别为最终分类结果。(比如:o0>o1则表示不含歌声的值大于含歌声的,那么这幅图像最终的分类结果为不含歌声。)

4.2.3若该图像对应的标注和最终分类结果一样,则认定该测试结果为正确。

4.2.4重复执行步骤4.2.1至4.2.3,直到对验证图像集中的Nv个图像全部执行完毕。

4.2.5统计验证数据集中所有图像样本分类为正确的数量,记为Ti,计算网络di的检测正确率aie=Ti/Nv,若aie>aimax,则aimax=aie并置连续次数s=0,

否则,置s=s+1。

4.2.6如果连续次数s达到S,即连续S轮检测正确率没有增大,则训练全部结束。

4.2.7如果连续次数s小于S,那么置e=e+1,若e>=E,则训练全部结束,

否则跳转到步骤4.1继续执行训练。

4.3经过上述训练算法,最终可得到参数固定的挤压和激励残差网络di

5.用测试集对训练得到的所有挤压和激励残差网络di,i∈[14,18,34,50,101,152,200]进行测试和比较

5.1顺序从测试图像集和对应的标注集中取出图像和对应标注。

5.2把图像输入到经过步骤4训练得到的挤压和激励残差网络di,每幅图像可得到2个输出值,取输出值较大者对应的类别为最终分类结果。

5.3若该图像对应的标注和最终分类结果一样,则认定该测试结果为正确。统计测试数据集中所有图像样本分类为正确的数量,记为Ti,计算网络di的检测正确率ai=Ti/Nt

5.4比较ai,i=14,18,34,50,101,152,200的值,取最大值对应的网络为最终确定采用的网络,设为d。

6.对待检测的音乐音频文件进行歌声检测

6.1参照步骤3把被检测的音频文件转换成对数梅尔时频图文件和图像集,此处无标注集。

6.2逐一把图像输入到经过训练和选择的最佳网络d,每幅图像可得到2个输出值,取输出值较大者对应的类别为最终分类结果。

6.3对所有图像对应的检测结果汇总,每个图像可对应到该音乐的一个时刻,这样即可得到该音乐的歌声检测结果。

6.4本发明歌声检测结果的时间精度:tp=h1×h/fs=5×315/22050=0.0715秒=71.5毫秒。本发明歌声检测每个图像时长:tx=W×h/fs=80×315/22050=1.143秒。

本发明的有益效果在于:

本发明提出了一种基于挤压和激励残差网络(Squeeze-And-ExcitationResidual Neural Network,简写SE-ResNet)的歌声检测方法。该方法的特点是通过设计深度不同的挤压和激励残差网络,并构造音乐数据集,经过训练、验证、测试和比较,最后选择效果最好的、经过训练的网络作为歌声检测的分类器。在进行歌声检测时,只要计算简单的对数梅尔时频图并转换成图像,输入到该选定的网络,便能完成任务。本发明通过深度残差网络隐含提取不同层次的歌声的特征,并利用嵌入在残差网络中的挤压和激励模块的自适应注意力特性,判断这些特征的重要性,从而利用重要性程度高的特征鉴别歌声,达到高准确性地检测歌声的目的。文献[1]作为一个第三方的评估论文,实现了有代表性的随机森林、CNN和RNN的三种方法,在音乐数据集Jamendo下,其歌声检测的准确率分别为0.879、0.868、0.875,而本发明实施例中,所选择的经过训练的挤压和激励残差网络d34,在Jamendo下的准确率为0.897,比该文献报告的最高准确率高1.8%。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述的附图仅仅是本发明的实施例的部分附图,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是歌声检测示意图(附有彩色图片)。

图2是本发明的流程示意图。

图3是挤压和激励残差网络的示意图。

图4是残差网络结构的两种模块类型。

其中:图1上半部分为音频的波形图,下半部分是对应的时频图;黄颜色的音频部分经歌声检测含有歌声,而其余部分则不含歌声。

图3中H,W,C分别是图像的高,宽和通道数量,Global是一个全局平均池化层,代表挤压(Squeeze)操作,激励(Excitation)操作包含4个步骤,形成基于sigmoid的门机制。第一个全连接层FC和Relu把通道数量降低r比例因子,并具有降维和泛化的效果,第二个全连接层FC和Sigmoid把通道数还原,最后,通过Scale步骤调整初始输入通道的权重。

图4中左图为一个输入为64通道的基本块(Basic block)例子,包含2个卷积层;右图为一个输入为256通道的瓶颈块(Bottleneck block)的例子,包含3个卷积层。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供一种基于挤压和激励残差网络的歌声检测方法,该方法步骤包括:

1.构建用于歌声检测的、深度分别为di,i∈[14,18,34,50,101,152,200]的挤压和激励残差网络

本发明实施例中,优选地,以深度di,i∈[14,18,34,50,101,152,200]为例构造用于歌声检测的挤压和激励残差网络。本实施例中的深度为18,34,50,101,152的5种网络是挤压和激励残差网络的典型深度,14和200为本实施例构造的深度,本领域技术人员可根据实际情况构造出其他适用于歌声检测数据集的深度,以获得可能的、更好的网络。

1.1挤压和激励残差网络是残差网络、挤压和激励网络两种网络结构的组合。如图3,虚线框中是挤压和激励网络的结构图,虚线框外的残差(Residual)网络包括两种类型结构:基于基本块(Basic block)和基于瓶颈块(Bottleneck block)的结构(如图4),这两种结构按网络层数进行选择和构建。本发明构造的7种深度的挤压与激励残差网络结构如下表:

其中,深度为14,18和34的网络由基于基本块的残差结构组成,而深度为50,101,152和200的网络由基于瓶颈块的残差结构组成。这些深度神经网络的初始输入是大小为H×W=80×80的图像。输入图像是由音乐音频信号转换而来,如何转换在后续步骤中阐述。对于输入为80×80图像,表列output size给出了各层的输出图像大小。图像在进入残差网络前,先经过大小为7×7,步数(stride)为2的卷积层,和大小为3×3,步数为2的最大值池化层,得到40×40的特征图。随后,进入挤压和激励残差网络层,以layername为conv5_x,以深度101-layer为例,中括号内表示一个挤压和激励残差网络栈,由残差网络结构、挤压和激励结构组成,其中1×1,3×3表示残差网络的卷积核大小;紧跟着的512,2048表示该卷积层的输出通道数;fc,[128,2048]表示挤压和激励网络结构中第一个和第二个全连接卷积(图3)的输出维数。中括号外的×3表示,中括号内挤压和激励残差网络栈的深度为3,即网络串联堆叠的深度。最后一行1×1表示输出的是一维向量,averagepool 2-d fc,表示先经过一个2维的自适应平均池化层且输出通道数为1,再进入一个全连接卷积层。最终网络输出为一维向量o,含2个值o0,o1,用来判断是否含有歌声。本实施例中,训练、验证和测试过程均使o0,o1分别对应着不含歌声和含有歌声。

1.2设输入图像为x,x∈RH×W,输出为o,o∈R2×1,所构造的挤压和残差网络用函数F表示,则整个网络作用于输入,可表示为:

2.构造音乐数据集

2.1收集用于歌声检测的音乐数据集,一个好的数据集包括以下条件:(1)总量越多越好,但不少于120分钟;(2)数据集中有歌声和不含歌声的音乐片段时间总和达到平衡;(3)音乐类型分布覆盖需要检测的类型,并且均衡。

2.2对每首音乐的音频文件进行样本标注。对每首音乐的每一段含有歌声部分的开始时间和结束时间进行标注,若含有歌声则标注该时间段的所有时间点为值1,否则为0。把所有标注并写入一个文本文件。

2.3把音乐数据集随机分成训练集、验证集和测试集三部分,其中训练集样本数量不少于50%。

2.4在本实施例中,选用Jamendo为实验数据集。音乐数据集Jamendo是一个国际公开的、可用于歌声检测的数据集,所含音乐的总时长为371分钟,包含93首歌曲。每首音乐的音频文件已经有了标注信息,并且分成了训练集、验证集和测试集三部分,分别包含61,16,16首歌曲。

3.把音乐数据集Jamendo转换成图像集和对应标注集

3.1音乐数据集转换成对数梅尔时频图文件集合

对音乐数据集(包括训练集、验证集和测试集)中的每首音乐音频文件进行处理,转换成一个包含对数梅尔时频图(log mel-spectrogram)的文件。计算过程是先计算音频信号的时频图(spectrogram),音频采样率为fs=22050Hz,帧长为l=1024,帧移为h=315;然后把时频图转换成梅尔时频图,转换时,梅尔频率数量取80个,频率区间取[27.5,8000]Hz,梅尔频率数量对应着时频谱图的行数H;最后对梅尔时频图中的幅值取对数,即可得到对数梅尔时频图。一个对数梅尔时频图等同于一个数据矩阵A(H,L),L由音频的长度确定。

3.2把对数梅尔时频图文件集合转换成图像集和对应标注集

3.2.1逐一读取训练集数据集中的对数梅尔时频图文件file,

3.2.2从对数梅尔时频图的起始列位置开始提取大小为80×80的图像数据x,计算该图像的第40列即图像中间位置的时间tW/2。查询对应音频文件file中该时间点的标注,若标注pfile(tW/2)=1,则标注该图像px是含有歌声的,否则不含歌声。把提取的图像放入图像集中,对应的标注放入标注集中,两者序号相同,以便检索。

px=pfile(tW/2) (5)

3.2.3把对数梅尔时频图的提取位置向右移动h1=5列,再次读取80×80图像数据,计算标注,并继续放入图像集和标注集,直到读完该对数梅尔时频图文件为止。

3.2.4待训练数据集中所有时频图文件都处理完毕,所有训练数据集的时频图文件就转换成一个图像集和对应的标注集。

3.2.5对验证集和测试集均执行上述步骤3.2.1至步骤3.2.4中对训练集的操作,生成验证集和测试集的图像集和标注集。设验证集和测试集中的图像总数分别为Nv和Nt

4.用构造的Jamendo训练集中的样本分别对前述深度为di,i∈[14,18,34,50,101,152,200]的7个挤压和激励残差网络进行训练,训练过程中通过验证集进行验证

4.1对深度为di网络开始进行第e轮训练

4.1.1若是第一轮训练,则置e=0,并设定最大训练轮数E,置网络di的验证集当前最大检测正确率aimax=0,置连续次数s=0,并设定连续次数最大值为为S;本实施例中S=7,E=20;

若不是第一轮训练,执行4.1.2。

4.1.2本发明优选随机地从训练图像集和对应的标注集中取出图像和对应标注,输入到挤压和激励残差网络di中进行训练

4.1.3当训练集中的所有图像都被取出并进行了训练后,第e轮训练结束

4.2当第e轮训练结束后,对经过训练的网络di用验证集进行验证,验证算法如下:

4.2.1顺序从验证图像集和对应的标注集中取出图像和对应标注

4.2.2把图像输入到经过e轮训练的挤压和激励残差网络di,每幅图像可得到2个输出值o0,o1,取输出值较大者对应的类别为最终分类结果。(比如:o0>o1则表示不含歌声的值大于含歌声的,那么为这幅图像最终的分类结果为不含歌声。)

4.2.3若该图像对应的标注和最终分类结果一样,则认定该测试结果为正确。

4.2.4重复执行步骤4.2.1至4.2.3,直到对验证图像集中的Nv个图像全部执行完毕。

4.2.5统计验证数据集中所有图像样本分类为正确的数量,记为Ti,计算网络di的检测正确率aie=Ti/Nv,若aie>aimax,则aimax=aie并置连续次数s=0,

否则,置s=s+1。

4.2.6如果连续次数s达到S,即连续S轮检测正确率没有增大,则训练全部结束。

4.2.7如果连续次数s小于S,那么置e=e+1,若e>=E,则训练全部结束,

否则跳转到步骤4.1继续执行训练。

4.3经过上述训练算法,最终可得到参数固定的挤压和激励残差网络di

5.分别用Jamendo测试集对训练得到的挤压和激励残差网络di,i∈[14,18,34,50,101,152,200]进行测试和比较

5.1顺序从Jamendo测试图像集和对应的标注集中取出图像和对应标注。

5.2把图像输入到经过步骤4训练的挤压和激励残差网络di,每幅图像可得到2个输出值,取输出值较大者对应的类别为最终分类结果

5.3若该图像对应的标注和最终分类结果一样,则认定该测试结果为正确。统计测试数据集中所有图像样本分类为正确的数量,记为Ti,计算网络di的检测正确率ai=Ti/Nt

5.4比较ai,i=14,18,34,50,101,152,200的值,取最大值对应的网络为最终确定采用的网络。经过上述试验,得到网络di,i∈[14,18,34,50,101,152,200]的检测准确率分别是0.8904,0.8772,0.8970,0.8779,0.864,0.8850,0.8818,因此,可取最终确定采用的网络是d34。值得注意的是,最终确定采用的网络对于不同的数据集可能不同,因此,本领域技术人员应根据构建的数据集进行实验,并选择合适的网络。

6.对待检测的音乐音频文件进行歌声检测

6.1参照步骤3把待检测的音频文件转换成对数梅尔时频图文件和图像集,此处无标注集。

6.2逐一把图像输入到经过训练和选择的最佳网络d34,每幅图像可得到2个输出值,取输出值较大者对应的类别为最终分类结果。

6.3对所有图像对应的检测结果汇总,每个图像可对应到该音乐的一个时刻,这样即可得到该音乐的歌声检测结果。

6.4本实施例歌声检测结果的时间精度:tp=h1×h/fs=5×315/22050=0.0715秒=71.5毫秒。本实施例歌声检测每个图像时长:tx=W×h/fs=80×315/22050=1.143秒。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于AhoCorasick模式匹配机的语文课文音频节目发现方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!