首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于局部注意力的多任务学习钢琴复音音乐自动记谱方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:北京工业大学

摘要:一种基于局部注意力的多任务学习钢琴复音音乐自动记谱方法属于深度学习领域。音乐自动记谱旨在将音乐音频转换为音乐符号表示。近年来,基于Transformer的深度神经网络展现出了在钢琴复音音乐自动记谱上的优势。然而,现有的基于Transformer的自动记谱方法使用绝对位置编码方式,限制了模型对任意长度音频进行记谱的灵活性,混淆了模型对于局部时变时序信息的注意力。本发明在Transformer网络中使用高效计算的自适应局部注意力机制,针对起奏与停奏子任务目标获得了最佳的注意力范围,并可在任意长度的钢琴音乐上实现自动记谱。本发明具有较高的钢琴复音音乐自动记谱性能。

主权项:1.基于局部注意力的多任务学习钢琴复音音乐自动记谱方法,其特征在于,包括以下步骤:步骤1:数据预处理设定使用librosa音频处理库对MAESTRO数据集中的原始音频进行以下的预处理操作;首先,将原始立体声音频所有通道上取采样点的平均值以转换为单声道音频,并将该单声道音频的采样频率由原始的44.1-48kHz下采样至16kHz;接下来对下采样的单声道音频进行分帧、加窗与短时傅里叶变换STFT处理;将该单声道音频以每帧128ms的长度分帧,帧移为32ms,则每帧包含2048个采样点,帧移包含512个采样点;对于所有分帧使用窗型为哈宁窗的2048点STFT以获取音频的时频谱,分帧后不足2048点的帧在该帧前后分别补0填充;接下来对获得的STFT时频谱使用一组包含229个频带的等高梅尔滤波器组进行滤波,该滤波器组的最小与最大截止频率分别设置为26Hz与8000Hz以保证滤波器组完整覆盖A0即27.5Hz至C8即4186Hz的所有钢琴音高基频频率;然后将滤波后得到的梅尔谱转换为以dB表示的对数梅尔谱,转换过程中使用每首钢琴音频中能量最高的时频点作为0dB参照点,以该参照点为基准保留对数梅尔谱中动态范围为80dB的信息,最后将该动态范围为[-80dB,0dB]的对数梅尔谱平移至[-40dB,+40dB]区间以完成数据预处理步骤;在实际的训练与测试过程中需要对预处理后的对数梅尔谱进行分段划分,在训练过程中,深度神经网络每次对640×229的对数梅尔谱进行记谱预测,表示样本中包含640帧以及229个梅尔频率点;在测试过程中,深度神经网络每次对20480×229的对数梅尔谱进行记谱预测,即表示该样本中包含20480帧以及229个梅尔频率点;对深度神经网络进行监督训练与评估测试,预处理所得钢琴音频数据对应的正确记谱目标由MAESTRO数据集中包含的MIDI文件转换得到;这部分的预处理步骤具体为:首先,将MIDI文件中的每一个音符事件以其对应的按键起奏帧与按键结束帧连续标注在含有88个琴键类别的帧级别钢琴卷帘谱中,得到帧级别目标标注;钢琴卷帘谱为一个二维矩阵,该二维矩阵的一个维度表示时间帧顺序,另一个维度表示音高大小,在标注的钢琴卷帘谱中使用0值表示无音符出现,以1值表示有音符出现;此处,帧级别的目标标注表示了在某时刻出现了某音高;若音符事件中包含延音踏板事件,则将延音踏板值不小于64的音符停奏时刻延长,直到同音高音符再次按下或延音踏板值小于64时结束音符,并将此时的停奏时刻对应的时间帧记为正确的音符结束帧,此后的说明中将音符结束帧与无延音踏板事件时的按键结束帧统称为音符结束帧;接下来,在帧级别目标标注的基础上,提取所有的按键起奏帧为起奏目标标注,提取所有音符结束帧为停奏目标标注;此处,起奏目标标注与停奏目标标注分别表示了某时刻发生了某音高音符开始出现的事件,以及某时刻发生了某音高音符停止出现的事件;最后,将音符力度目标值的动态范围由[0,127]等比例映射至[0,1],在帧级别目标标注的基础上,将每个音符事件对应的音符区间使用对应的音符力度值大小重新标注,得到音符力度目标标注;此处,音符力度目标标注表示在某时刻某音高音符出现时,音符的发声强度;在四个正确记谱目标中,帧级别目标、音符起奏目标与音符停奏目标为二分类目标,包含0、1两种类别;音符力度目标为多分类目标,包含0至127映射在[0,1]范围中对应的数值的共128个类别;步骤2:模型结构参数与模型训练设定步骤2.1:模型结构参数设定提出了一个针对音符多种属性的多任务学习结构,每个子任务各由一个子任务模块提取对应的音符属性目标,分别为四个音符目标,依次为帧级别目标、音符起奏目标、音符停奏目标与音符力度目标;四个子任务模块使用同一个对数梅尔谱样本提取对应的音符属性目标,该对数梅尔谱在经由一个batch-norm层后分别传递给四个子任务模块进行后续处理;每个子任务模块分别包含基于卷积神经网络CNN的特征提取层,与基于门控循环单元网络或基于Transformer网络的时序特征建模层;所有子任务模块中的CNN由四个卷积块组合而成,每个卷积块中包含两层卷积核大小为3×3的卷积层,该卷积核移动步长为1×1,在特征图的四周分别使用单层的补0填充,其中第一层卷积层的输入特征图通道数为1,输出特征图通道数为48,第二层卷积层的输入与输出特征图通道数皆为48;在两层卷积层中,每层卷积操作后依次使用批归一化层与整流线性单元ReLU非线性化层;接着使用一层沿频率轴进行平均值计算的平均池化层,使得特征图的频率轴的维数缩减为原来的一半,时间轴不做池化操作,池化步长在时间轴-频率轴上为1×2;最后在池化层后加入丢弃率为0.2的丢弃dropout层;在每个CNN网络中,输入数据的对数梅尔谱经由四个卷积块后,其对应的特征图由最初的单声道通道,即通道数为1,依次扩展为48,64,96与128,各个卷积块中通道的扩展方式沿用上述卷积块的设定方式,即仅在每个卷积块的第一层卷积层中扩展通道数,在第二层卷积层中保持已扩展的通道数不变;在面向音符起奏目标与音符停奏目标的子任务模块的CNN-Transformer特征提取网络中,首先使用全连接层将CNN输出的频率与通道维数之积由1792维映射至512维;接下来经由batch-norm层,ReLU非线性层与丢弃率为0.5的dropout层后将特征图将送入Transformer网络;Transformer网络中包含两层堆叠的Transformer网络模块;在每个Transformer网络模块中依次包含两个子网络,第一个子网络为自适应相对位置编码多头自注意力层,该层的输出将与该层输入求和并经过层归一化层构成一个残差连接,残差连接后为丢弃率为0.2的dropout层;第二个子层为由两层全连接网络组成的多层感知机MLP,第一层全连接层将特征维数由512扩展为2048,并依次经过ReLU层与丢弃率为0.2的dropout层后送入第二层全连接层,第二层全连接层将特征维数由2048压缩至512,并依次经过ReLU层与丢弃率为0.2的dropout层;该MLP的输出将与该层输入求和并经过layer-norm层构成一个残差连接;在特征图依次经过两个Transformer模块后,需经过丢弃率为0.5的dropout层,接着使用全连接层将Transformer网络输出的特征维数由512压缩至88,并经过sigmoid层后输出;在面向帧级别目标与音符力度目标的子任务模块的CNN-GRU特征提取网络中,首先使用全连接层将CNN输出的频率与通道维数之积由1792维映射至768维;接下来经由batch-norm层,ReLU非线性层与丢弃率为0.5的dropout层后将特征图将送入GRU网络;GRU网络中包含两层堆叠的双向GRU网络模块;每个双向GRU网络模块中包含256个隐藏单元;最后,将GRU网络的输出特征图经过丢弃率为0.5的dropout层,使用全连接层将GRU网络输出的特征维数由512压缩至88,并经过sigmoid层后输出;此外,在面向帧级别目标的子任务模块中还包含一个GRU特征融合网络,该融合网络连接在帧级别CNN-GRU特征提取网络之后,使用两层堆叠的双向GRU网络对沿琴键类别轴进行拼接的起奏分支、停奏分支与帧级别分支输出特征图进行特征融合时序建模,输入特征图的维数为264,每个双向GRU网络包含256个隐藏单元;最后,将GRU网络的输出特征图经过丢弃率为0.5的dropout层,使用全连接层将GRU网络输出的特征维数由512压缩至88,并经过sigmoid层后输出;步骤2.2:Transformer网络模块中相对位置编码的计算方法的设定针对步骤2.1中Transformer网络模块中的自适应相对位置编码多头自注意力层,说明其中的相对位置编码的计算方法如下;相对注意力计算过程如式1; 该公式中Q,K,V,S表示张量矩阵,T表示矩阵的转置,dh为标量,Q与KT矩阵间省略了矩阵乘法使用的乘号,矩阵V前同理省略了乘号,softmax函数表示对其参与计算的张量矩阵的最后一维的每一项xi计算指数缩放的占比;计算矩阵中每一项xi的softmax缩放变换具体为式2;式2中函数分母为参与softmax计算的张量矩阵的最后一维的所有项的指数缩放的和; 式1中,Q,K,V为模型输入X线性变换得到的问询张量矩阵、关键词张量矩阵与值张量矩阵,S为相对位置权重张量矩阵;X为输入Transformer网络模块的形状为L×512的张量矩阵特征图,L为表示音频片段时间帧的数量的标量,512表示X的特征维数;该线性变换具体的步骤为:在X进入自适应相对位置编码多头自注意力层后,经过一个全连接层将特征维数由512映射为1536,接下来将该特征图的特征维数均分为三份,每份包含维数为512的特征图;此后三个特征图的特征维数被均分至8个注意力抽头,则每个抽头包含维数为64的特征图;此时将三组多头特征图张量分别记为问询张量组、关键词张量组与值张量组,其中一个抽头对应的问询张量、关键词张量与值张量即为Q,K,V张量,皆表示抽头特征维数为dh=64的特征图;单个抽头中每个特征图样本X的问询张量Q的维数为1,L,dh,其中第一维即表示单个样本,关键词张量K与值张量V的形状与Q相同;对于不同的相对位置编码注意力范围,将采用以下两种相对位置编码计算方法中的一种以得到相对位置权重矩阵S,单个抽头中每个特征图样本X计算相对注意力使用的相对位置权重矩阵S的形状为1,L,L;以N表示最大的相对位置编码注意力范围,则具体的计算方式选择规则为:当2N≥L时使用全局计算方法,2NL时使用分块计算方法;在上述相对注意力计算中,问询张量矩阵、关键词张量矩阵与值张量矩阵都为模型输入X经过线性变换所得,则QKT表示在维数为1,L,L的矩阵中,每一帧的dh维问询向量关于所有dh维的关键词向量的相关度大小;此后,S向QKT中的每一项引入了有关位置的相关度信息;最后,经过的线性缩放与softmax的缩放变换后,这一总的相关度大小与V作矩阵乘法,表示以不同的相关度大小对每一帧dh维值向量进行加权,加权后的值张量矩阵中每一帧dh维向量相比于原始值张量矩阵的差异反映了模型对于不同时间帧的注意力大小,由此模型实现了关注输入X中某些重点帧的效果;a局部相对位置编码的全局计算方法现构建相对位置编码张量EN,EN维数为N,dh,表示在N长的注意力范围中的所有dh维向量,N最大值即为L;由于需实现双向的非因果自注意力方式,N需为奇数,即除当前帧外前后各有P=N-12帧将参与注意力计算;在EN的第一维的左侧拼接维数为L-N,dh的虚拟张量,获得维数为L,dh的全局相对位置编码张量E;此时所有在S中所需的位置信息已在QET中可见;QET张量的维数为1,L,L,设其中每一项索引为iq,r,r∈{-L+1,-L+2,…,-P,-P+1,…0,…,P-1,P},由于要求S中的每一项需与QKT中每一项iq,jk的相对位置相对应,则有r=jk-iq,也即需要将QET张量的每行中使用相对位置索引的元素依次平移至对应正确的绝对位置索引处;为将相对位置索引iq,r转换为绝对位置索引iq,jk,需要对每iq行上的项进行移位,r=0位置上的项需移位至所有jk=iq的位置;完整的元素平移处理包括以下步骤:1在QET的第一维的右侧拼接维数为1,L,N+1的虚拟张量,得到维数为1,L,L+N+1的张量;2重整该张量为一维向量,丢弃前L-P-1个元素,记当前向量中所有元素数量为W;需要指出,这一步对应于PyTorch或NumPy中行优先的排序方式;3在向量末尾填充L+N-WmodL+N个0值元素,其中mod表示取余数,即计算得到W被L+N整除不尽的余数部分;4将该向量重整成维数为1,L+1,L+N的张量,采用矩阵切片操作取该张量的前L行与L列元素,得到与绝对位置iq,jk索引对应的所需S矩阵,其形状为1,L,L;b局部相对位置编码的分块计算方法现构建相对位置编码张量EN,其维数为N,dh,表示在N长的注意力范围中的所有dh维向量,N为奇数,最大值为L;完整的局部相对位置编码的分块计算包含以下步骤:1Q,K,V分别为维数是1,L,dh的张量,需将长为L的序列的Q,K,V张量延长,在其第二维的右侧拼接虚拟张量至不小于L的N的倍数长度,记新序列长度为L′,维数为1,L′,dh,分别记作Q′,K′,V′;将新序列按每块长度为N划分为M块,有三个张量维数被重整为1,M,N,dh,记作Q″,K″,V″,此时得到的是原序列无重叠的分块划分;2为避免分块对序列信息前后传递的影响,每一个序列块应至少再包含前后各P帧的特征向量;将有重叠的划分中每一个分块的长度设定为3N;除第1块与第M块以外,每个序列块与其前、后序列块拼接为总长为3N的序列块,第1块与第2块拼接为总长为2N的序列块,第M-1块与第M块拼接为总长为2N的序列块;至此得到了原序列有重叠的分块划分,序列中第2块至第M-1块的K″,V″的维数被重整为1,M-2,3N,dh,第1块与第M块维数被重整为1,1,2N,dh,Q″维数仍为1,M,N,dh;3类比局部相对位置编码的全局计算方法,此时Q′ENT中已包含S中所需的位置信息,Q′ENT维数为1,L′,N,类比上述分块计算将维数重整为1,M,N,N;同理,对Q′ENT进行与全局计算方法对应的元素平移操作即可得到S的分块划分S″,所有元素平移操作在各个序列块的内部进行;为使得元素平移后的S″与K″,V″维数一致,元素平移过程中拼接的虚拟张量应为1,M,N,2N+1;最终得到维数为1,M,N,3N的分块划分相对位置信息张量S″;4按照对应块编号分别计算相对注意力权重与注意力输出值,重整张量并合并所有划分块,截断元素平移中补零操作引入的虚拟元素,得到完整的自注意力输出;步骤2.3:Transformer网络模块中自适应注意力范围实现方法的设定针对步骤2.1中Transformer网络模块中的自适应相对位置编码多头自注意力层,说明其中的自适应注意力范围实现方法如下;自适应的注意力范围使用截断边缘递减的注意力权重遮罩函数实现,该遮罩函数基于实数z的表达式为: 式3中mina,b函数表示取a或b中的较小者,maxa,b函数表示取a或b中的较大者,|·|表示对其中包含的项取绝对值;式3中,mz∈[0,1]表示为遮罩函数,P为单侧的自注意力最大范围,G为控制线性递减权重区间大小的可设定的超参数,z为控制自适应注意力范围的可训练网络参数,x表示任意两帧向量间的相对距离大小;其中,与步骤2.2中表述的双向非因果自注意力最大范围N一致,此处有N=2P+1,并设定N=639,P=319;G越大则遮罩函数由1值向0值过渡的递减区间则越大,线性递减的斜率越小,相对注意力在其边缘过渡越平缓,此处设定G=1以限定递减区间为1帧;z越大则遮罩函数为1值的区间越大,模型计算相对注意力时能关注每一帧附近的更多帧,实现对更长的时序特征进行建模,此处z为可训练参数,由模型在训练过程中自主学习设定,在模型初始化时设定z=P-G=318;为使得可训练参数z能够有效收敛,在模型训练中添加了以下正则化损失函数lz,该损失函数与步骤2.4中的联合损失函数相加,一同参与模型的损失计算; 式4中,zi代指了不同的Transformer网络模块中自适应注意力范围使用的遮罩函数中的参数z,Σ表示对所有的参数z进行求和,λ0为正则化超参数,设定λ=0.0001;损失函数lz表示对控制自适应注意力范围的参数z添加了额外的训练限定条件,即随着模型的训练进行,相对注意力的范围将逐渐减小,使得模型更加关注每一帧临近的若干帧;此外,在模型训练时,每一次反向传播后,会将模型中所有z的值剪切到[0,1]区间,以辅助模型收敛;步骤2.4:模型训练设定步骤2.1中设定的完整的深度神经网络共包含26914886个可训练参数;在对模型进行训练时,对于每个子任务模块分支使用二元交叉熵作为模型输出的钢琴卷帘谱与正确的标注目标之间的损失函数,具体如下: 式5中,lframeonsetoffset表示该损失函数分别属于帧级别分支、音符起奏分支以及音符停奏分支,T表示总的时间帧数量,K表示总的音高数量,Iframeonsetoffset表示各个分支的正确标注的钢琴卷帘谱,Pframeonsetoffset表示模型输出的各个分支钢琴卷帘谱,lbce·,·表示计算其中两项的二元交叉熵,Σ表示对钢琴卷帘谱中每一个位置t,k计算二元交叉熵的和,二元交叉熵lbce·,·的计算具体如下:lbcey,p=-ylnp-1-yln1-p6式6中y与p分别表示钢琴卷帘谱矩阵Iframeonsetoffset与Pframeonsetoffset中相同位置t,k中的每一项,ln·表示计算其中包含的项的以自然对数为底的对数;需要指出,音符级别力度目标的二元交叉熵仅在起奏目标非零点计算,如下式所示: 式7中Ivelocity表示音符力度分支的正确标注钢琴卷帘谱,Pvelocity表示模型的音符力度分支的输出,⊙表示计算两个形状相同的矩阵的对应元素的乘积,运算得到的矩阵形状与参与运算的两个矩阵形状一致;最终,结合步骤2.3中的正则化损失函数,总的联合损失函数如下式所示;lnote=lframe+lonset+loffset+lvelocity+lz8在对模型进行测试时,需进行步骤3中设定的后处理方法以获得完整音符事件,并使用基于帧级别与音符级别的准确率、召回率与F1分数的性能评估方法获得模型的性能指标结果;使用Adam优化器算法对模型进行训练,该优化器算法中设定用于计算模型各个参数的反向传播的梯度及其平方的运行平均值的系数β1,β2分别为0.9与0.999,该优化器算法中初始学习率设定为0.0006,且训练每进行5000次反向传播后,将学习率调整为上一次反向传播时学习率的0.98倍,总共使用MAESTROV1.0.0数据集中的训练集对模型迭代训练100轮,取这100轮中在MAESTROV1.0.0数据集的验证集上帧级别与音符级别的F1分数都最高的模型的迭代轮次为最终的训练轮次,该轮次训练得到的模型为最终的训练结果;F1分数的计算方法基于帧级别与音符级别的准确率、召回率计算所得;步骤3:模型输出后处理设定为了获得完整的音符事件,需对模型各个子任务分支模块的输出结果进行后处理,具体包含以下的后处理步骤:1对模型输出的钢琴卷帘谱估计结果进行二值化转换,分别对模型的输出Ponset,Poffset,Pframe使用阈值θonset,θoffset,θframe划分,各分支输出中不小于对应阈值θonset,θoffset,θframe的项记为1,否则为0;二值化后的估计结果记为P′onset,P′offset,P′frame,将P′onset经过单步差分得到Pre-onset,单步差分操作具体为Pre-onset=P′onsett-P′onsett-1,式中t表示时间帧的索引;2对于Pre-onset中的每一个非零值Pre-onsett,k,记t时刻帧的k音高处有音符起奏事件,并将Pvelocityt,k的值还原为动态范围在[0,127]间的值,记为该音符事件的力度大小;3以t时刻帧的k音高处的P′framet,k为起点,遍历后续同音高的若干时间帧,直到音频段的最后一帧,或满足下列条件时: 记t′时刻帧的k音高处有音符停奏事件,其中t′表示不同于t时刻的其他时刻;4记录一个完整的音符事件,分别包括上述的起奏事件、停奏事件与音符力度大小;重复步骤2~4直至记录下所有的完整音符事件;上述后处理过程既可以对模型的输出进行音符事件的提取,也可以提取正确卷帘谱标注中的音符事件;通过比对两者音符事件,使用基于帧级别与音符级别的准确率、召回率与F1分数的性能评价方法即可对模型性能进行评估;后处理中所使用的二值化阈值分别是:起奏阈值θonset为0.3,帧级别阈值θframe为0.4,停奏阈值θoffset为0.8。

全文数据:

权利要求:

百度查询: 北京工业大学 一种基于局部注意力的多任务学习钢琴复音音乐自动记谱方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。

相关技术
相关技术
相关技术
相关技术