虚拟人自动编舞系统研究

2022-05-30 00:18陈节省
电脑知识与技术 2022年16期
关键词:动态规划

陈节省

摘要:在音乐驱动生成舞蹈上,现有方法是根据音乐的数字化特征生成舞蹈动作,但是没有考虑音乐的节拍、风格、结构等,所以生成的舞蹈动作未能和音乐内容很好匹配。文章提出了一种新型的方法,先分析音乐的风格、节拍、结构、艺术性,形成更加细分的舞蹈动作数据库,然后使用动态规划算法填充每段舞蹈,再对舞蹈衔接段做插值过渡。产品发布1年来,全国有100多万人次使用,文章所述方法得到了有效的验证。

关键词:虚拟人;自动编舞;舞蹈动作合成;音乐驱动;动态规划

中图分类号:TP391      文献标识码:A

文章编号:1009-3044(2022)16-0072-02

1 概述

音乐和舞蹈都是人类最古老的艺术,也是密不可分的艺术。音乐是舞蹈的灵魂,舞蹈是音乐的回声。舞蹈动作常常以音乐旋律的节奏为基础,通过有组织、有节奏的人体动作,来表达情感和塑造艺术形象[1]。一般由专业的编舞人员来设计和编排舞蹈动作,比较有专业性,比较难以大规模地生产。随着元宇宙的兴起,虚拟人越来越多地融入娱乐生活中,例如初音未来、洛天依、《堡垒之夜》演唱会,都是虚拟人和歌、乐、舞三者合为一体的艺术作品。同时,也产生了大量的编舞需求,全部手动编舞耗时耗力,因此可以借助计算机的自动化、智能化来降低成本,实现音乐编舞[2]。例如,樊儒昆基于音乐和舞蹈动作的节奏特征建立动作与音乐片段的匹配模型, 并利用动态时间规整(DTW) 算法来度量动作与音乐片段的节奏匹配程度[3]。方丹芳提出了先目标音频分段,然后对音乐片段和动作数据库中已有的动作片段进行特征匹配分析,最后对目标音乐片段特征匹配的动作片段进行过渡帧插值衔接[4]。以上算法主要是基于音乐的节奏特征和强度特征,忽视了音乐的风格和结构特征[5]。

本文提出了一种新型的方法,整体框架图如图1所示。首先分析音乐的风格、节拍、节奏、结构和艺术性,通过动作捕捉,建立风格多样的舞蹈动作数据库。对于一首新的歌曲,先分析歌曲风格、节拍、节奏,然后标记歌曲组织结构和每个段落的首尾时间戳。对于每一个歌曲片段,应用动态规划算法填充舞蹈动作。最后再对舞蹈衔接段做插值过渡,输出完整动作序列。

2 构建舞蹈动作数据库

本文所研究的主要是KTV里的流行歌曲。如表1所示,经统计3万首KTV曲库歌曲,绝大部分是4/4拍、3/4拍、3/8拍的歌曲。按照用户演唱的情绪,分为抒情、劲歌、柔情、摇滚、RAP等五种风格类型。

流行歌曲一般由前奏(Intro)、副歌(Chorus)、主歌(Verse)、间奏(Inter)、尾奏(Outro)等段落组成,如图2所示。每个段落对舞蹈的要求也不同,前奏是舞蹈入场和气氛的铺垫,副歌是整首歌的高潮部分也需要舞蹈的充分表达[6]。以《小苹果》歌曲为例,这首歌是4/4拍,编曲采用了复古“迪斯科”的风格,歌词简单朗朗上口,舞蹈以“伊甸园蛇舞”舞步为主,前奏部分和主歌部分每拍节奏的强度均衡,舞蹈为热身运动和身体小幅摆动,副歌部分的节奏呈现出“强-弱-次强-次弱”的特点并逐渐将全曲推向高潮,舞蹈以多人的大开大合的动作来烘托爱情的幸福美好,间奏部分的舞蹈通过拍手来延续热烈的氛围,尾奏部分以双手上下摆动的整理动作结束歌曲[7]。整首歌的舞蹈动作和音乐节奏、风格十分匹配,动作简单易学,用户听着音乐就会情不自禁地隨之摇摆,使该曲常年在KTV和广场舞中广受欢迎。

在相同的节拍、风格、段落特征的情况下,通过动作捕捉,制作了20秒、15秒、10秒、5秒、2秒、1秒等时长不等的舞蹈动作。为便于匹配时的拼接连贯性判断,也记录了每个动作第一帧和最后一帧与标准动作的欧氏距离。因此,舞蹈动作数据库以“节拍_风格_段落_时长_编号”的动作编码作为主键进行记录和查询,对应的动作记录文件内容包含:时长、艺术性分值、第一帧和标准动作欧氏距离、最后一帧和标准动作欧氏距离、动作数据。

3 生成舞蹈动作

通过手动和自动化结合的方式分析每首歌的歌曲特征,标记好歌曲的段落的时间段、风格、节奏和节拍[8]。生成舞蹈动作分为2个步骤,第一个步骤是从舞蹈动作库中选择匹配的舞蹈动作,第二个步骤是将不同的动作间做动作衔接。

一首歌的完整动作可以分解为生成各个歌曲段落的动作来完成,即从“节拍_风格_段落_时长_编号”的舞蹈数据库中挑选合适的舞蹈动作来填充到歌曲段落。假设某个段落的歌曲时长为[T](秒),[X]为此段落对应的[n]个候选舞蹈动作的集合,第[i]个动作[xi]对应的时长为[wi],即求解需要最少几个[xi]可以接近填充满时长[T]。

形式化描述如下:

解向量            [S]:[xi∈{0,1},1≤i≤n]

目标函数 [mini=1nxi]

约束条件 [T-1≤i=1nwixi≤T]

此问题是一个典型的动态规划问题,通过贪心算法或者动态规划算法均可求解[9]。本文选用贪心算法求解,用算法1表述如下:即优先选择当前可选择的时长最大的动作,在同样时长的动作中优先选择和上个动作的欧氏距离最小的动作,最终求解得到每个段落的匹配的舞蹈动作集合[S][10]。

算法1. 贪心算法求解匹配的动作集合

[S={}],初始解集合为空

Sort([X]),将候选动作集按照时长从大到小排序

while([S]总时长未接近段落时长[T])

从[X]取出一个时长最长且和上个动作欧氏距离最小的候选动作[xi],其时长为[wi]

if  ([S]总时长+[wi]) ≤ T

[S=S+xi],[xi]加入解集合S

[X=X-xi],将动作[xi]从X中移除

end

end

return S

假设解集合[S]包含[m]个动作,总时长为[L],按每秒含30帧的动作,则将有[(T-L)×30]帧的数据需要通过插值算法来合成衔接动作。[S]中相邻2个动作[xj]和[xj+1]需要合成的动作帧数为:[vj=xj+1第一帧和xj最后一帧的欧氏距离i=0mxi+1第一帧和xi最后一帧的欧氏距离×T-L×30]

相邻2个动作的欧氏距离越大,分配得到的插值帧数权重就越大。如图3所示,本文采用双圆弧插值算法来合成[xj]和[xj+1]中间的插值衔接动作。

4 结论与展望

本文通过分析音乐的风格、节拍、结构、艺术性,形成更加细分的舞蹈动作数据库,然后使用动态规划算法填充每段舞蹈,再對舞蹈衔接段做插值过渡,实现了流行音乐自动编舞系统。如图4所示,在产品中共生成了8653段,合110869秒的舞蹈动作库,在3万首流行歌曲上完成了虚拟人自动编舞,成功推广应用到全国7000多家KTV中,总计约100万用户点唱过,经实际验证具有较低的实现成本和较好的舞蹈效果。

但是,自动编舞系统仍旧是一个复杂和需要持续深入研究的课题。后续可以增加更多的舞蹈风格,引入深度学习算法来生成更多的舞蹈动作,以期进一步完善系统。

参考文献:

[1] 张雅琳,赵丽璐.浅谈音乐与舞蹈的关系[J].音乐时空,2016(1):122-123.

[2] 彭文耀,吴瑞琪,晁飞,等.一种基于姿态关系特征的机器人舞蹈生成方法[J].厦门大学学报(自然科学版),2019,58(5):774-780.

[3] 樊儒昆,傅晶,程司雷,等.动作与音乐的节奏特征匹配模型[J].计算机辅助设计与图形学学报,2010,22(6):990-996.

[4] 方丹芳,李学明,柳杨,等.基于过渡帧插值的音乐驱动舞蹈动作合成[J].复旦学报(自然科学版),2018,57(3):358-365.

[5] 王丹.论音乐编舞法中主题动作的选择[J].新乡学院学报(社会科学版),2009,23(3):179-181.

[6] 王奇.舞蹈音乐结构与舞蹈表演关系探究[J].北方音乐,2014(12):50-51.

[7] 邹宇,颖徐湘.浅谈歌曲《小苹果》艺术创演特征[J].黄河之声,2015(24):77-78.

[8] 刘旺.卡拉OK评分系统的应用研究[J].电脑知识与技术,2017,13(11):181-182,192.

[9] 董军军.动态规划算法和贪心算法的比较与分析[J].教育技术导刊,2008,7(2):129-130.

[10] 吴平,方欢.带偏好的贪心算法应用[J].电脑知识与技术(学术版),2020(3):96-97.

【通联编辑:唐一东】

猜你喜欢
动态规划
动态规划在投资理财问题中的应用
电梯运行模式的设计和优化
多阶段投资组合的动态规划模型
动态规划最优控制在非线性系统中的应用
产品最优求解问题中运筹学方法的应用
改进后的DE求解方法的MATLAB仿真实现及应用