方丹芳,李学明,柳 杨,李荣锋
(1.北京邮电大学 信息与通信工程学院,北京 100876; 2.北京邮电大学 数字媒体与设计艺术学院,北京 100876)
伴随音乐的舞蹈是一种听觉和视觉享受相结合的高级艺术.专业舞者会根据音乐的旋律、节奏和强度等,严格控制自己的舞姿,因此更真实地用舞蹈传递音乐的情感.而舞蹈和音乐的匹配有比较严格的要求,一般是由专业的编舞人员来设计,是一项极需天赋的挑战性工作.但为新的音乐编舞时,并不是创作出整段新的舞蹈序列,而是大量重复类似音乐对应的舞蹈序列.通过重复优秀的舞蹈序列,使编舞更加灵活和高效.尽管如此,编舞者手工地对舞蹈和音乐进行匹配是相当耗时的.因此,让计算机实现音乐驱动的舞蹈自动合成,计算机的智能化、自动化对舞蹈编排以及娱乐有一定的实用价值.
音乐和舞蹈是两种不同模态的数据,如何跨越音乐和舞蹈之间的语义鸿沟是个很困难的问题.而事实上,当听到一首歌时,人们总会跟着音乐的节拍,有节奏地摇动自己的身体,并且音乐情感越强烈,身体摇摆幅度也越大.因此,本文充分利用音乐和动作在时间序列上的共同特征: 节奏和强度.另外,一段音乐往往有不同的旋律,譬如前奏舒缓,高潮激昂.简单地对整首歌和整支舞蹈进行匹配,不能充分体现出细节的匹配.只有针对每个时长较短的音乐片段,舞者的表演都是节奏和情感强度同步,才能给人最直观的音乐伴舞.基于这个场景需求,本文对输入的音乐和已有的动作先进行分段,再对每个音乐片段和动作片段进行特征匹配.需要解决的主要问题是如何将匹配的多个动作片段拼接成一个完整的动作序列,保证整支舞蹈是由舞者从某一个动作自然地过渡到另外一个动作,但不能有新的衔接动作生成,不然无法保证舞蹈动作和音乐同步.
通过以上分析,本文提出的基于过渡帧插值的音乐驱动舞蹈合成算法,主要解决和目标音频匹配的动作片段的衔接问题.本文将介绍一种基于过渡帧插值的音乐驱动舞蹈合成的框架和插值算法的具体实现,并对实验结果进行讨论,同时对下一步的研究问题提出一些看法.
目前,音乐驱动编舞方面已经有很多有价值的研究.近年来的核心思想是连接动作数据库中和目标音频特征一致的动作片段,需提取音乐和动作的共同特征以及特征匹配.Alankus等[1]提出根据音乐的节奏和密度特征自动生成舞蹈的方法,通过预先构建动作图搜索候选动作,提高了编舞系统的搜索效率.但不足是要求动作片段必须符合各种风格类型音乐的节奏间隔,这是个很困难的问题.Shiratori等[2]提出根据音乐和动作的节奏和强度特征来同步合成舞蹈的方法,本文的方式类似这种方法.但该文提出的节奏匹配算法仅考虑节奏点匹配的数量,容易出现节奏点密度大的舞蹈动作片段总是被不断重用.Xia等[3]提出根据音乐和动作的节奏和情感特征来合成机器人舞蹈的方法,匹配算法使用马尔可夫模型,主要考虑当前动作与前一帧的连贯性以及动作情感和音乐情感的匹配性,再根据音乐节奏调整机器人动作的节奏.这种算法适用于合成机器人舞蹈,不适用于计算机人物动画.目前也有相关研究是通过训练音乐和动作高维特征的相关性模型来进行特征匹配分析.Fukayama等[4]提出利用高斯模型提取音乐节拍和动作各关节坐标的非线性映射关系,主要利用了网上大量根据音乐进行人为创造的动作序列(MikuMikuDance).樊儒昆[5]对音乐-动作匹配数据集进行训练,基于音乐和动作高维特征的相关系数构造特征向量,训练得到音乐-动作匹配程度的评价函数,反映的是音乐片段和动作片段短时间内统计特征的匹配.但模型在训练期间为构造反例,简单地通过动作间的距离反映动作和舞蹈的匹配程度,这存在很大的问题.
在计算图形领域,有些研究合成真实的人体运动,其中大部分动作合成技术是基于动作捕捉数据进行编辑、衔接等.Kovar等[6]基于动作捕捉数据自动构建一个动作图,包含原始动作和衔接动作.衔接动作是指在动作片段M和动作片段N之间生成一个过渡的动作片段P,通过对动作片段M末尾k帧和动作片段N起始k帧插值来合成.Zhao等[7]提出一种新的动作衔接算法,先在两个动作片段之间生成多个插值动作节点,然后利用动作相关性程度选择衔接最自然的节点组合生成动作片段.以上两种衔接算法均对原始动作片段进行插值修改,破坏了原始动作的约束,可能会带来脚滑、抖动等不自然现象.很多学者对消除脚滑的方法进行了研究[8-9],这里不再详细叙述.本文应用的场景与之前的研究都不同,目标是连接各个已有的动作片段,但不能有新的衔接动作生成.
本文所提出的基于过渡帧插值的音乐驱动舞蹈合成的框架如图1所示.首先,基于动作捕捉数据,建立动作数据库,存储各个动作片段的节奏、强度特征.当输入一首音乐时,先对音乐进行特征分析,得到音乐片段和对应的节奏、强度特征.然后进行音乐和动作的特征匹配分析,先进行节奏匹配,根据节奏匹配程度为每个音乐片段筛选出最匹配的多个动作片段,再对这些前一片段的末尾动作和后一个片段的过渡动作进行连接性分析,根据可连接得到多个结果动作序列,然后根据强度匹配得到最匹配的动作序列.最后,对动作序列进行过渡帧插值衔接,合成过渡自然的舞蹈动作.
图1 基于过渡帧插值的音乐驱动舞蹈生成框图Fig.1 Framework of music-driven dance motion synthesis based on transition frame interpolation
本文主要讨论基于插值的舞蹈动作合成,在音乐特征提取上,主要参考文献[2]的研究结果,音乐分段基于音符的重复模式提取,音乐节奏特征基于典型的onset-component节奏评估法提取,音乐强度特征基于声压和人耳听觉属性提取.为了方便描述,本章统一将音乐序列记为M,分段得到m个音乐片段,记为M1,M2,…,Mm.音乐片段Mi提取的音乐特征记为:
(1)
动作特征提取动作和音乐的共同特征: 节奏和强度.本文使用的Greek舞蹈,动作节奏主要通过脚的抬动体现,因此基于脚垂直方向位移的极值来提取,参考文献[10]的动作节奏提取方法.动作强度特征的提取基于Laban作用力理念.针对Greek舞蹈,动量取决于脚垂直移动和人物质心的水平移动,参考文献[2]的动作强度提取方法.动作分段取16个节奏长度进行分段.同音乐,本文将所有特征均定义在片段这一尺度.对动作序列N分段,得到动作片段N1,N2,….动作片段Ni提取的动作特征记为:
(2)
音乐和动作的共同特征匹配主要分为节奏匹配和强度匹配,充分挖掘音乐和舞蹈动作在时间上的一一对应关系.首先,基于音乐和舞蹈动作在时间上的节奏点同步数量进行节奏匹配.同时,为了保证相邻动作片段的衔接性,对相邻动作片段做可连接性分析.然后,基于相邻动作的可连接性,采用树的深度搜索算法提取所有可能的结果动作.最后,基于强度直方图相似性,对输入音频和所有可能的结果动作进行强度匹配,筛选出最匹配的舞蹈动作[2].
音乐和动作的节奏匹配主要考虑节奏的同步程度.对音乐片段和动作数据库的动作片段进行节奏匹配,筛选出节奏最匹配的t个动作片段.音乐片段Mi和动作片段Ni的节奏匹配程度衡量公式:
(3)
强度匹配主要考虑音乐片段和动作片段的强度直方图分布相似性,使用Bhattacharyya系数衡量.音乐片段Mi和动作片段Ni的强度匹配公式:
(4)
本章介绍过渡帧插值算法,解决与目标音频匹配的动作片段相邻过渡时出现动作突变的问题.动作突变具体指从动作片段M过渡到动作片段N时,由于动作片段M的末尾动作与动作片段N的起始动作不相似,导致过渡时动作不连贯.如图2所示,动作片段M、N均是连贯的动作,动作片段M的末尾动作朝向从左侧转到后侧,动作片段N的起始动作朝向是前侧,因此动作过渡时,动作直接从后侧朝向转为前侧朝向,出现动作突变,影响舞蹈合成的视觉效果.过渡帧算法的目标是解决动作过渡时出现的动作突变,通过对动作片段M的末尾动作进行插值,从而实现动作的平滑衔接.如图3所示,插值后的动作与N起始动作的姿势和朝向都比较一致,同时保留了M末尾动作的特征.
图2 从动作片段M过渡到动作片段N发生动作突变Fig.2 Motion mutation happened when moving from motion segment M to N
图3 基于插值的动作平滑衔接Fig.3 Smooth transition between motion segments based on interpolation
图4 过渡帧插值算法的框架Fig.4 Framework of transition frame interpolation algorithm
过渡帧插值算法对动作片段M的末尾动作和动作片段N的过渡动作进行插值,使插值后的动作既能保留M末尾动作的特征,又能平滑过渡到N.动作片段N的过渡动作是N所在原始动作序列中在N之前的相邻动作片段.为了获取过渡动作,对部分重叠的音乐片段进行动作片段匹配.过渡帧插值算法的框架如图4所示,特征匹配前,对每个原始音乐片段加上前一个音乐片段的末尾片段即重叠的音乐片段,该音乐片段匹配的动作片段即为过渡动作.由于末尾动作和过渡动作均和相同的音乐片段匹配,因此两者具有一定相关性,有利于插值实现.特征匹配后,对当前动作片段的末尾动作和下一个相邻动作片段的过渡动作进行插值生成插值动作,再与匹配的动作片段组成连贯的舞蹈动作.
对k帧的末尾动作和过渡动作进行插值.插值前,需保证待插值动作的距离小于一定的阈值,特征匹配时的可连接分析对此提供了保障.当末尾动作和过渡动作的距离小于给定阈值时,认为末尾动作和过渡动作是可连接的.动作距离的计算参考文献[6].另外,考虑到动作插值会破坏原有动作的约束,出现脚滑等不自然的现象,本文的插值算法只取少量帧动作进行插值,实验时k取14.动作插值的核心思想是对k帧末尾动作和过渡动作的根节点坐标进行线性插值,对所有关节的旋转角进行四元数球面线性插值,合成k帧的插值动作.假设动作片段M的长度为m,则M的末尾动作记为Mm-k+1,…,m.动作片段N的过渡动作记为N1,2,…,k.算法具体步骤如下:
1) 对k帧的过渡动作N1,2,…,k进行平移,使待插值的两个动作片段起始位置相同;
2) 合成插值动作片段P1,2,…,k;
对Mm-k+1,…,m和N1,2,…,k的根节点位移进行线性插值:
RPi=α(i)RMm-k+i+(1-α(i))RNi1≤i≤k;
(5)
对每个关节的旋转角进行四元数球面线性插值:
(6)
(7)
(8)
式中:q0,q1为旋转角的四元数表示;w为q0,q1的夹角.
实验所用的部分音乐和动作数据从https:∥dancedb.cs.ucy.ac.cy/main/performance下载.该网站提供了8段希腊和塞浦路斯舞蹈的视频文件(包含音频和穿戴动作捕捉设备的舞者表演)以及对应的bvh动作文件,平均时长为1min,动作采样率为30Hz,共16972帧动作数据,音乐采样率为44100Hz.另一部分动作数据从CMU动作捕捉数据库下载,包含传统舞蹈数据、印度舞等.这些动作数据均由Vicon提供的动作捕捉设备捕捉,采样率为120Hz.
首先,基于舞蹈动作数据建立动作数据库,使用本文提出的算法合成舞蹈,通过合成舞蹈的视觉效果来评估本文算法的效果.为Haniotikos和Tonite音频合成匹配的舞蹈,已在项目网站上呈现(https:∥karon1988.github.io/dance_haniotikos.mp4、https:∥karon1988.github.io/dance_tonite.mp4).视频表明舞蹈动作的节奏和强度与输入的音乐是匹配的,且动作衔接是自然的.图5展示了Haniotikos合成舞蹈姿势快照.
同时,为了进一步验证所提出的匹配算法是否合理,本文比较已有匹配的舞蹈动作-音乐关系和本文合成的舞蹈-音乐的关系.对原始希腊舞Haniotikos的音频和bvh动作数据,按本文提出的特征提取算法分别提取节奏和强度特征,结果如图6所示,其中: 1帧时长为1/30s;Haniotikos音频的平均节奏周期为0.21s.由图6可知,舞蹈动作的平均节奏周期比音乐大,但动作的节拍点基本和音乐重合,动作的强度分布和音乐不是完全匹配,但相当相似.Haniotikos合成舞蹈和音乐的特征如图7所示,可知动作的节拍点基本和音乐重合,动作的强度分布和音乐相似.比较图6和图7可知,基于过渡帧插值算法合成的舞蹈和原始舞蹈,与音频的特征匹配程度相当.同时,本文利用节奏匹配(公式(3))和强度匹配(公式(4))分别对原始舞蹈-音乐和合成舞蹈-音乐关系进行定量化说明.原始舞蹈-音乐和合成舞蹈-音乐的节奏匹配数量结果见表1,强度匹配系数结果见表2.由表1可知,合成舞蹈的节奏匹配数量和原始舞蹈的节奏匹配数量相差不大.由表2可知,合成舞蹈的强度匹配系数和原始舞蹈基本一致.从匹配程度出发,本文提出的算法是可行的.
图5 Haniotikos合成舞蹈姿势快照Fig.5 The synthesized dance for music “Haniotikos”
图6 Haniotikos对应的音乐和动作特征Fig.6 Music and motion features of Haniotikos
图7 为Haniotikos合成的舞蹈与音乐的特征Fig.7 Dance and music features synthesized for Haniotikos
舞蹈类型节奏匹配数Ant1Ant2Ant3HanHasMalZei1Zei2原始舞蹈675436140126135153106合成舞蹈756151161153118164102
表2 原始舞蹈-音乐和合成舞蹈-音乐的强度匹配系数结果
为了客观地分析舞蹈动作合成的衔接性,引入过渡动作的平均动作距离作为衡量指标.同时,为了评测本文方法的性能,比较了基于过渡帧插值的合成舞蹈与原始舞蹈、无动作衔接的合成舞蹈的衔接性.其中,分别对音频Haniotikos和Zeimpekiko进行舞蹈合成.原始舞蹈、基于过渡帧插值的合成舞蹈和无动作衔接的合成舞蹈的动作距离比较结果见表3.由表3可知,基于过渡帧的合成舞蹈和原始舞蹈的平均动作距离比较接近,且都远远小于无动作衔接合成舞蹈的平均动作距离.同时,从对应的姿势快照也可得出类似的结论,基于过渡帧的合成舞蹈和原始舞蹈的衔接比较自然,而无动作衔接合成舞蹈会出现动作突变.因此,从舞蹈衔接的自然性出发,本文提出的算法是可行的.
表3 原始舞蹈、基于过渡帧插值的合成舞蹈和无动作衔接的合成舞蹈的动作距离结果
本文研究基于过渡帧插值的音乐驱动舞蹈合成,基于共同特征节奏和强度分析音乐片段与动作片段的相关性,并对动作片段进行了插值衔接,最终合成和目标音频匹配的舞蹈动作.实验结果表明合成舞蹈的节奏和强度与音乐基本是一致的,且动作间的衔接是自然的,验证了本文算法的有效性.
未来可以继续展开的工作有以下几点:
1) 本文生成的舞蹈是由各个动作片段插值衔接,其路径是没有规则的,但舞蹈是具有空间性的,因此,在未来的研究中,可以对合成后的舞蹈进行路径编辑,使舞蹈的路径具有一定的空间艺术性;
2) 本文在音乐和动作的特征匹配方法上,主要是基于共同特征的匹配,在未来的研究中,希望可以实现跨模态的特征匹配,输入音乐的高维特征和动作的高维特征,能自动挖掘出其相关的特征;
3) 本文在音乐和动作的共同特征提取上,提取的是节奏和强度特征,在以后的实验中可以尝试挖掘更多能表征音乐和动作共同的特征,如情感.