Dance Dance Revolution(国内译为劲舞革命)是一个风靡全球的节奏类音乐游戏。大家应该都曾经玩过,或者在商场的游戏厅中见到过它,现在,人工智能也可以玩这款游戏了!
据雷锋网,游戏规则是玩家在跳舞台上按照屏幕上的脚步指示图案调整脚步,根据音乐的节奏在特定的时间点上踩在指定的舞台按钮上。最终根据是否在正确的时间踩在了正确的按钮上来决定得分的多少。不同难度的游戏,脚步指示图案也不同,难度越高,指示图案越多,而且有更复杂的顺序。跳舞台有上下左右四个箭头按键,每个按键有四种状态:开,关,保持,释放。四个箭头按键可以各自独立的激活或释放,所以总共有256中可能的脚步组合。
屏幕上的舞步指示是根据音乐结构制作的,不同的音乐节奏或旋律对应不同的舞步。虽然DDR相当流行,但是玩家也有一些抱怨:比如曲库是有限的,玩家有时候并不能跳他们最喜欢的音乐的舞蹈,或者即使有这个音乐,但是玩家并不喜欢设定好的舞步。为了解决这个问题,DDR公司开源了一些工具,使得玩家们可以自己为音乐编舞。但实际上,自己编舞的过程是很痛苦的,并且需要很多专业的知识。下图为示例的编排过程。
日前,加州大学圣地亚哥分校的研究者使用了一种方法可以自动生成舞步,可以从原始的音频中直接生成脚步指示图案,以此来学习编舞。这种方法通过模仿人制作的脚步指示图案的语义信息来学习。这个问题可以被分解为两个子任务:
舞步放置,在歌曲中应该放置舞步的位置放置一系列的时间戳。这个过程根据玩家选择的难度的不同而产生不同的结果。
舞步选择,选择在时间戳上面放置哪种舞步(上下左右)。
按顺序运行这两个步骤,会产生一个可玩的舞步指示图案。过程如下图。
对Knife Party feat这首歌的其中四秒进行舞步编排的流程,从上到下分别是人工编排的舞步,舞步选择预测,舞步放置预测,音频特征
学习编舞的过程主要是音乐信息检索(music information retrieval, MIR)。放置舞步的过程与起始点检测(onset detection)很相似。Onset detection的目标是确定音乐上突出事件的时间点,例如音符或者鼓点。在编舞的任务中,并不是所有的音乐中的所有onset都对应DDR的舞步,但DDR的舞步一定对应着一个onset。
在数据方面,研究者们使用了DDR公司的标注好的数据:Stepmania Online,它用于超过100k首的歌曲,总共350Gb的数据。此外,研究者还收集整理了另外其他作者所创作的两个高质量的数据集。
在舞步放置阶段,研究者采用了卷积神经网络结构。整个模型包含了两个卷积层和两个全连接层。为了提高CNN的性能,研究者又加入了C-LSTM模型,将卷积编码与RNN结合,以达到整合更长时间窗口信息的目的。网络结构见下图:
在舞步选择阶段,研究者将舞步选择视为序列生成问题。他们使用了在处理语言模型中很常用的RNN模型,因为RNN能更好的捕捉长距离的上下文关系。网络结构见下图:
本篇论文提供了一个Demo,感兴趣的可以自己尝试一下:http://deepx.ucsd.edu/ddc
也可以在Youtube上观看官方给出的演示视频:https://youtu.be/yUc3O237p9M
更多的实现细节请参考原论文:Dance Dance Convolution
雷锋网(公众号:雷锋网(公众号:雷锋网))编译
本文作者:高云河 本文转自雷锋网禁止二次转载,原文链接
相关资源:音乐编曲 各类文档技巧