一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种神经网络训练方法、3D钢琴演奏生成方法及系统与流程

2022-07-13 14:05:43 来源:中国专利 TAG:

一种神经网络训练方法、3d钢琴演奏生成方法及系统
技术领域
1.本发明涉及多媒体处理技术领域,尤其涉及一种神经网络训练方法、3d钢琴演奏生成方法及系统。


背景技术:

2.虚拟现实技术如今正是热门的技术,在音乐、游戏等领域,由于有大量的用户群体,业界已经在这些领域进行了深入的研究,比如钢琴演奏虚拟人。
3.目前的钢琴演奏虚拟人表现还不够逼真,其主要原因是,由于手指的高度自由,使得钢琴动画需要高维的手关节和身体关节的姿势进行展示,使用cg动画不仅成本非常高,而且比较僵硬,难以达到要求,此外动作和音乐之间的对齐也非常难以实现。
4.为此,目前的现有技术中,也有从各个途径去解决,比如使用深度神经网络来将音乐生成舞蹈动作,可以实现良好的节拍与节奏的匹配,但难以实现特定音乐的准确动作。
5.钢琴动画对手部和身体关节都需要具备高维度的姿势动作才能逼真地表现。还要求要求手部动作与音频精确对齐,以便手指能够以正确的时间敲击、按住和释放钢琴键。而手指的高自由度进一步加大了难度和复杂度。


技术实现要素:

6.本发明为解决现有技术中存在的技术问题,提供一种神经网络训练方法,包括步骤:
7.s1:输入编码信息,包括音频信息和midi信息;
8.s2;神经网络对编码信息提取特征并根据特征进行预测,获得钢琴演奏的预测动作序列信息和动作损失值;
9.s3:对预测动作序列信息进行信号还原,得到音频损失值以及按键规划恢复损失值;
10.s4:对动作损失值、音频损失值以及按键规划恢复损失值进行求和作为总损失值,根据总损失值对神经网络进行训练。
11.进一步地,还包括对音频恢复网络以及按键规划恢复网络进行训练,其中:
12.根据音频损失函数的损失值对音频恢复网络进行训练;
13.根据按键规划损失函数的损失值对按键规划恢复网络进行训练。
14.进一步地,步骤s3中,对预测动作序列信息进行信号还原步骤包括:
15.预训练阶段:
16.用真实动作序列信息和音频信息训练音频恢复网络;
17.用真实动作序列信息和按键规划信息训练按键规划恢复网络;
18.动作预测阶段:
19.将真实midi信息和音频信息输入至神经网络,得到预测动作序列信息;
20.还原阶段:
21.以预测动作序列信息通过音频恢复网络和按键规划恢复网络,得到还原的音频信息和按键规划信息。
22.进一步地,动作损失值的动作损失函数为位置损失函数和速度损失函数之和:
[0023][0024][0025]
其中:m
ij
表示时刻i下关节j的动作矢量真实值,为对应的预测值;
[0026]
t为时间,j为关节个数,m'
ij
或者为对应的速度,∣∣

∣∣2表示求l2范数,或者欧式空间中两个矢量的距离。
[0027]
进一步地,音频损失值的音频损失函数为:
[0028][0029]
其中是时刻i下真实的音频信息,是预测的音频信息,t为时间,∣∣

∣∣2表示求l2范数,或者欧式空间中两个矢量的距离。
[0030]
进一步地,按键规划恢复的损失函为:
[0031][0032]
其中p
ij
为时刻i的真实按键规划信息,表示按键规划恢复网络预测的各个按键在时刻i被手指j按下的概率值,表示二元交叉熵。
[0033]
进一步地,音频恢复网络为3层卷积神经网络与1层全连接神经网络的组合,输入为预测的动作序列信息,输出为音频信息。
[0034]
进一步地,按键规划恢复网络为一组共享输入,含有10个分支的神经网络组合,其中:
[0035]
输入预测动作序列信息,10个分支网络分别预测10根手指的按键,每个分支网络的结构都是3层卷积神经网络与1层全连接网络的组合。
[0036]
进一步地,音频信息的生成包括:
[0037]
从音频中抽取音频信息;
[0038]
对音频信息进行离散化,获得与动作数据帧数相同的二维矩阵。动作帧数为120帧每秒,因此音频信息也离散化为此数值;
[0039]
输入到音频信息编码网络,得到编码的音频信息。
[0040]
进一步地,midi信息的生成,包括:
[0041]
从原始midi谱提取按键事件,在时间上离散化,获得与动作数据帧数相同的二维矩阵;
[0042]
将每帧的多个钢琴按键码信息映射成高维空间向量;
[0043]
将该多维空间向量进行带权重的相加,得到midi信息。
[0044]
进一步地,s4步骤之后还包括:
[0045]
s5:运行时,对预测动作序列信息进行信号还原,得到音频损失值以及按键损失
值,进行无监督的自适应优化,用以提高预测动作序列的准确性。
[0046]
进一步地,步骤s5具体包括:
[0047]
神经网络从输入的音频信息和midi信息生成预测动作序列信息;
[0048]
将预测动作序列信息通过音频恢复网络和按键恢复网络得到还原的音频信息和按键信息;
[0049]
以真实midi信息和真实音频信息,以及还原的按键信息和还原的音频信息,计算音频损失值和按键损失值,其中:
[0050]
按键损失函数,其公式为:
[0051][0052]
音频损失函数,其公式为:
[0053][0054]
是时刻i下真实的音频信息,是预测的音频信息,t为时间,∣∣

∣∣2表示求l2范数,或者欧式空间中两个矢量的距离。
[0055]bi
表示时刻i的按键信息,表示时刻i时按下的预测的各键位被按下的概率值;
[0056]
基于音频损失值和按键损失值,计算优化神经网络的损失值,其损失函数为:
[0057]
loss6=loss2 loss5。
[0058]
本发明还提供一种3d钢琴演奏生成方法,包括步骤:
[0059]
将输入曲谱的音频信息和midi谱进行编码,生成神经网络能识别的音频编码信息和midi信息,所述神经网络为权利要求1-13之任一所述训练方法得到的神经网络;
[0060]
神经网络对音频编码信息和midi信息进行特征融合与二次编码,再对编码结果进行解码,得到预测动作序列信息;
[0061]
根据预测动作序列信息套用到人体模型上,得到3d钢琴演奏动画。
[0062]
本发明还提供一种3d钢琴演奏生成系统,包括编码模块以及动作生成模块,其中:
[0063]
编码模块用以将输入曲谱的音频信息和midi谱进行编码,生成神经网络能够识别的音频编码信息和midi信息;
[0064]
动作生成模块用以对编码信息进行特征融合,再次编码和解码,得到预测动作序列信息,并生成3d钢琴演奏动画。
[0065]
本发明还提供一种计算机可读存储介质,所述存储介质中存储有指令或者程序,所述指令或者程序由处理器加载并执行所述的3d钢琴演奏生成方法。
[0066]
本发明还提供一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行所述的3d钢琴演奏生成方法。
[0067]
本发明公开的方法和系统中所述模块,在实际应用中,即可以在一台目标服务器上部署多个模块,也可以每一模块独立部署在不同的目标服务器上,特别的,根据需要,为了提供更强大的计算处理能力,也可以根据需要将模块部署到集群目标服务器上。
[0068]
由此可见,本发明采取的技术方案取得的技术效果如下:
[0069]
本技术基于midi信息和音频信息输入,通过创新的神经网络训练方法,可以得到
精准的运动序列,进而可以实现演奏动作的动画。
[0070]
为了对本发明有更清楚全面的了解,下面结合附图,对本发明的具体实施方式进行详细描述。
附图说明
[0071]
为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0072]
图1为本技术实施例的神经网络训练示意图;
[0073]
图2为本技术实施例的神经网络运行时的自适应无监督优化示意图。
具体实施方式
[0074]
以cg动画形式进行钢琴表演的创作,受到了从事各个领域的研究者和工程师的热切期待,如用于vr游戏和电影的内容制作、音乐教育等,然而,由于多种原因,自动生成3d钢琴表演动画是一项极具挑战性的任务。基于现有技术的缺陷,本技术基于动作捕捉和深度神经网络,提出新的技术方案,取得了理想的技术效果。
[0075]
为此,本技术提供一种神经网络训练方法,包括步骤:
[0076]
s1:输入编码信息,包括音频信息和midi信息;
[0077]
s2:神经网络对编码信息提取特征并根据特征进行预测,获得钢琴演奏的预测动作序列信息和动作损失值。其中,具体包括融合编码信息和进一步编码,再通过神经网络的解码步骤,获得钢琴演奏的预测动作序列信息和动作损失值。
[0078]
s3:对预测动作序列信息进行信号还原,得到音频损失值以及按键规划恢复损失值;
[0079]
s4:对动作损失值、音频损失值以及按键规划恢复损失值进行求和作为总损失值,根据总损失值对神经网络进行训练。
[0080]
下面结合各种优选的实施方式进一步说明本技术的技术方案。
[0081]
s1:输入编码信息,包括音频信息和midi信息。
[0082]
此步骤的目的是把输入数据变成神经网络可以处理的数据格式。本实施例中,原始输入数据有2部分,一是音频信息,二是midi谱。
[0083]
原始格式为无损音频格式wav,当然作为变化的实施例,也可以以其他格式的音频信息。
[0084]
作为一种优选的实施方式,本技术生成音频信息的实现方案如下:
[0085]
通过音频编码模块,从音频中抽取各种音频信息,获得音频信息,例如beat,downbeat,chroma等,同时离散化,变成与动作数据相同的帧数,最终形成一个与动作数据帧数相同的二维矩阵,行数是总帧数,列数是音频信息的维数。动作帧数为120帧每秒,因此音频信息也离散化为此数值。
[0086]
再通过一个基于神经网络的音频信息编码网络,形成可以被下一步的神经网络利用的特征(即s2步骤中的神经网络)。
[0087]
midi谱原始格式为mid。作为一种优选的实施方式,本技术生成midi信息的生成,包括:
[0088]
1.从midi谱提取按键信息,并在时间维度上离散化,获得与动作数据帧数相同的二维矩阵,即钢琴按键码信息(pianoroll)。此矩阵行数与动作序列帧数一致,列数为与钢琴按键数目一致的88维。假设在某一帧i,按键j被按下,其它键均未被按下,则矩阵中第i行的第j列的单元格值为1,其它各单元格值为0。
[0089]
2.将每帧的多个钢琴按键码信息映射成高维空间向量,这里使用神经网络的嵌入层:
[0090]
从音乐到舞蹈的生成,或者文本到语音的生成过程中,同一时刻的输入只有一个音符或者汉字。但钢琴动作生成则不同,输入在同一时刻一般都有多个键被按下。考虑到实际钢琴演奏中的情况和动作生成系统的复杂度,我们假设一根手指最多按一个键。假设某一个时刻,双手全部按键,即同时按下10个键,则其特征就有十个维度。
[0091]
因此,本技术提出了一个表示同一时刻多个输入的嵌入表示的有效方法。这里的2,3两步骤描述了这种方法:
[0092]
首先,每一帧的每一个按键都被一个神经网络的嵌入层映射到高维空间在此实例中我们选择512维,按键被嵌入层处理后称之为按键的嵌入表示。然后,每一帧所有按键的嵌入表示被带权相加,形成一个512维向量。此权重也是神经网络的参数,在神经网络的训练中得到。经过这两个步骤我们把每一帧的多个按键转化为每一帧有一个对应所有按键的高维向量。
[0093]
3.将该多维空间向量进行带权重的相加,得到midi信息。这些权重为可训练参数,在网络训练中自动计算。
[0094]
s2:神经网络对编码信息融合,再次编码,再解码,获得钢琴演奏的预测动作序列信息和动作损失值。
[0095]
本实施例中,神经网络可以采用transformer模型为例来说明本技术的技术方案。
[0096]
通过神经网络,得到的编码完的音频和midi信息预测对应的人体动作序列,即为动作生成。人体动作序列以动画里通用的骨骼动画表示,包括坐标和旋转,本技术的动作生成模型同时预测一定时间长度内所有人体关节的位置与旋转,维数上达到400多维。本技术以transformer模型,由于其包含有注意力机制,适合于处理序列到序列的生成问题。当然,作为变化的实施方式,也可以使用其他的神经网络来实现,这个网络最终给出每一帧所有人体关节的位置与旋转。
[0097]
作为一种优选的实施方式,本技术的动作损失函数其公式为位置损失函数和速度损失函数之和:
[0098][0099][0100]
其中m
ij
表示时刻i下关节j的动作矢量真实值,为对应的预测值。时刻i的范围从1到t,对应动作帧数从第一帧到第t帧。j表示关节个数。每个动作矢量m
ij
或者为9维,则表示每个关节的自由度用9个维数表示,分别是:1-3维为该关节的在世界坐标系下x,y,z
方向的坐标值,4-9维是该关节在世界坐标系下旋转矩阵的x,y分量。m'
ij
或者为对应的速度,使用对时间求数值上的一阶微分得到。∣∣

∣∣2表示求l2范数,或者欧式空间中两个矢量的距离。关节的自由度也可以由其它方式表示,我们这里的表示是一种优选方案。
[0101]
s3:对预测动作序列信息进行信号还原,得到音频损失值以及按键规划恢复损失值:
[0102]
现有技术中,通常由其它信号(比如音乐,曲谱等)生成动作的工作,仅将原始动作与预测动作进行比较,进而构建各种数学形式作为损失函数。
[0103]
但本技术要解决的技术问题比较复杂,本技术要解决的技术问题,其生成的身体动作序列,特别是手部动作,跟声音和真实的按键位置是有极强关联性的。其主要特点为手指的空间位置决定了哪个钢琴键被按下,同时决定了哪些频率的声音会被发出。
[0104]
因此,针对这种关联性,在比较原始与预测动作作为损失函数优化动作生成网络的基础上,本技术提出了一种优选的实施方式,即增加了自监督训练步骤,用预测的人体动作序列再推理出音频信息和手指按键规划,以进一步提高预测精度。具体包括以下几个阶段:
[0105]
预训练阶段
[0106]
我们在训练神经网络动作生成模型之前,先训练两个独立的小网络,即音频恢复网络和按键规划恢复网络。以真实动作序列信息和音频信息训练音频恢复网络,以真实动作序列信息和按键规划信息训练按键规划恢复网络。接入图1所示的整体训练框架。
[0107]
本技术实施例中,音频恢复网络为3层卷积神经网络与1层全连接神经网络的组合,输入为预测的动作序列信息,输出为音频信息。预训练阶段,以收集的真实动作序列数据和音频信息数据对音频恢复网络进行训练。在训练以及之后的阶段音频恢复网络的权重参数不变。
[0108]
本技术实施例中,按键规划恢复网络为一组共享输入,含有10个分支的神经网络组合。每个神经网络的输入都是预测的动作序列,10个分支网络分别预测10根手指的按键,各分支网络的结构都是3层卷积神经网络与1层全连接网络的组合。预训练阶段,使用收集的真实动作序列数据和按键规划对按键规划恢复网络进行训练,使用损失函数loss3。在训练以及之后的阶段此网络的权重参数不变。
[0109]
动作预测阶段:
[0110]
以真实midi信息和音频信息输入至神经网络,得到预测动作序列信息。
[0111]
还原阶段
[0112]
通过神经网络得到预测的人体动作序列后,使用音频恢复网络和按键规划恢复网络分别计算预测的音频和预测的按键动作规划。这两个预测结果与预测的人体动作序列一起进入下一个步骤。
[0113]
借助音频恢复网络和按键规划恢复网络,可以从预测的人体动作序列信息中重构音频和按键规划,并将它们与真实值进行比较。
[0114]
训练音频恢复网络的损失函数为:
[0115]
[0116]
其中是时刻i下真实的音频信息,是预测的音频信息。其余符号的含义同loss1。
[0117]
训练按键规划恢复网络的损失函数为:
[0118][0119]
其中pij表示时刻i下手指j按下的真实键位,以独热(one-hot)编码,维数为88维,与钢琴键位总数目一致。表示按键规划恢复网络预测的各个按键在时刻i被手指j按下的概率值。bce(

)表示二元交叉熵。
[0120]
理想目标是希望推理出的音频信息与作为输入的原始音频信息一致。手指按键规划描述了人的10根手指里哪根手指按了哪个键。
[0121]
如果仅仅预测哪些键被按下,那么等同于预测midi信息,可以看作是手指按键规划的简化版。我们在自监督阶段选择预测手指按键规划,是因为手指按键规划可以用在后期手指按键动作优化里:如果预测的动作没有按到或者过早,过晚地按到midi信息里记录的按键,我们可以查看预测的手指按键规划,如果它的预测正确,可以按照手指按键规划把手指引至midi里记录被按下的键,再用反向动力学逐级决定父级关节的位置和旋转。
[0122]
s4:对动作损失值、音频损失值以及按键规划恢复损失值进行求和作为总损失值,根据总损失值对神经网络进行训练,总损失函数的公式为:
[0123]
loss4=loss1 loss2 loss3
[0124]
此外,动作相关的损失函数,可以包含动作本身的损失,也可以包含更多,
[0125]
比如位置损失,速度和加速度的损失,其中,位置损失的损失函数为:
[0126][0127]
速度损失函数为:
[0128][0129]
基于上述神经网络的训练方法,得到的神经网络能够进一步准确地得到预测动作序列信息,继而可以基于该神经网络来实现自动钢琴演奏了。
[0130]
此外,基于上述s1至s4步骤训练,本技术还提供一种优选的实施方式,在运行时动作生成模型的自适应无监督的优化步骤s5:
[0131]
s5:运行时还对预测动作序列信息进行信号还原,得到音频损失值以及按键损失值,进而在推理过程中自适应地优化动作神经网络。
[0132]
请参阅图2,增加运行时动作生成模型的自适应无监督的优化方式,其原因为在s1至s4所训练的网络是针对所有训练数据而训练出来的神经网络,训练目标为在所有数据上达到最优精度。但是这并不一定意味着在单首钢琴曲上达到最优精度。考虑到实际运行时所使用的midi信息和音频输入与训练数据可能有差异,特别是风格上的差异。因此在模型运行时根据输入信息进行网络进一步的调优是合理的。
[0133]
自适应无监督步骤如下:
[0134]
1.在自适应无监督训练开始之前,以真实的动作序列作为输入,midi信息作为输出,训练按键恢复网络:
[0135]
使用步骤s3中预训练阶段得到的音频恢复网络,在下述各步骤中网络参数保持不变;
[0136]
训练按键恢复网络,此网络结构为3层卷积神经网络与1层全连接网络的组合,以真实动作序列信息作为输入,还原的按键信息作为输出,使用按键损失函数loss5比较真实按键信息和预测的按键信息进行训练得到。在下述步骤运行时按键恢复网络的参数均保持不变;
[0137]
按键损失值的损失函数为:
[0138][0139]
其中bi表示时刻i的按键信息,即时刻i时按下的真实键位,使用独热(one-hot)编码,维数为88维,与钢琴键位总数目一致。表示时刻i时按下的预测的各键位被按下的概率值。注意bi与上述的按键规划p
ij
的不同之处在于,bi只记录被按下的键的信息,不包含手指信息。
[0140]
2在运行时,输入音频信息和midi信息,神经网络生成预测动作序列信息。
[0141]
3.预测动作序列信息通过音频恢复网络和按键恢复网络,得到还原的音频信息和还原的按键信息;
[0142]
4.以真实midi信息和真实音频信息,以及还原的按键信息和还原的音频信息,计算音频损失值和按键损失值;
[0143]
5基于音频损失值和按键损失值,计算优化神经网络的损失值,其损失函数为:
[0144]
loss6=loss2 loss5
[0145]
神经网络优化到一定的阶段,优选方式是10个迭代步骤之内,音频损失值和按键损失值之和与上一步相比,差值的绝对值不超过0.001,则退出优化阶段。
[0146]
6.最后输出当前预测动作序列信息作为最终结果。
[0147]
本技术基于上述神经网络训练方法,构建的一种3d钢琴演奏生成方法,包括步骤:
[0148]
将输入曲谱的音频信息和midi谱进行编码,生成神经网络识别的音频编码信息和midi信息,所述神经网络以上述实施例方法训练获得;
[0149]
神经网络对编码信息进行特征提取,得到人体骨骼动作的预测动作序列信息,该预测动作序列信息的每一帧,就是生成3d钢琴演奏动画的每一帧了。该预测动作序列信息即为人体骨骼动作的序列信息,在动画软件中把人体骨骼动作套用到人体模型上,就得到3d钢琴演奏动画了。
[0150]
本技术还提供一种3d钢琴演奏生成系统,包括编码模块以及动作生成模块,其中:
[0151]
编码模块用以将输入曲谱的音频信息和midi谱进行编码,生成神经网络能够识别的音频编码信息和midi信息;
[0152]
动作生成模块用以对编码信息进行特征融合,再次编码和解码,得到预测动作序列信息,并生成3d钢琴演奏动画。
[0153]
本技术实施例还提供一种计算机可读存储介质,所述存储介质中存储有指令或者程序,所述指令或者程序由处理器加载并执行如上述任一所述的3d钢琴演奏生成方法。
[0154]
本技术实施例还提供一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储
介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如上述任一所述的3d钢琴演奏生成方法。
[0155]
需要说明的是,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过计算机程序来指令相关的硬件来完成,所述计算机程序可以存储于计算机可读存储介质中,所述存储介质可以包括但不限于:只读存储器(rom,read only memory)、随机存取存储器(ram,random access memory)、磁盘或光盘等。
[0156]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献