0
本文作者: 高云河 | 2017-03-28 16:03 |
Dance Dance Revolution(國內譯為勁舞革命)是一個風靡全球的節(jié)奏類音樂游戲。大家應該都曾經玩過,或者在商場的游戲廳中見到過它,現(xiàn)在,人工智能也可以玩這款游戲了!
據(jù)雷鋒網,游戲規(guī)則是玩家在跳舞臺上按照屏幕上的腳步指示圖案調整腳步,根據(jù)音樂的節(jié)奏在特定的時間點上踩在指定的舞臺按鈕上。最終根據(jù)是否在正確的時間踩在了正確的按鈕上來決定得分的多少。不同難度的游戲,腳步指示圖案也不同,難度越高,指示圖案越多,而且有更復雜的順序。跳舞臺有上下左右四個箭頭按鍵,每個按鍵有四種狀態(tài):開,關,保持,釋放。四個箭頭按鍵可以各自獨立的激活或釋放,所以總共有256中可能的腳步組合。
屏幕上的舞步指示是根據(jù)音樂結構制作的,不同的音樂節(jié)奏或旋律對應不同的舞步。雖然DDR相當流行,但是玩家也有一些抱怨:比如曲庫是有限的,玩家有時候并不能跳他們最喜歡的音樂的舞蹈,或者即使有這個音樂,但是玩家并不喜歡設定好的舞步。為了解決這個問題,DDR公司開源了一些工具,使得玩家們可以自己為音樂編舞。但實際上,自己編舞的過程是很痛苦的,并且需要很多專業(yè)的知識。下圖為示例的編排過程。
日前,加州大學圣地亞哥分校的研究者使用了一種方法可以自動生成舞步,可以從原始的音頻中直接生成腳步指示圖案,以此來學習編舞。這種方法通過模仿人制作的腳步指示圖案的語義信息來學習。這個問題可以被分解為兩個子任務:
舞步放置,在歌曲中應該放置舞步的位置放置一系列的時間戳。這個過程根據(jù)玩家選擇的難度的不同而產生不同的結果。
舞步選擇,選擇在時間戳上面放置哪種舞步(上下左右)。
按順序運行這兩個步驟,會產生一個可玩的舞步指示圖案。過程如下圖。
對Knife Party feat這首歌的其中四秒進行舞步編排的流程,從上到下分別是人工編排的舞步,舞步選擇預測,舞步放置預測,音頻特征
學習編舞的過程主要是音樂信息檢索(music information retrieval, MIR)。放置舞步的過程與起始點檢測(onset detection)很相似。Onset detection的目標是確定音樂上突出事件的時間點,例如音符或者鼓點。在編舞的任務中,并不是所有的音樂中的所有onset都對應DDR的舞步,但DDR的舞步一定對應著一個onset。
在數(shù)據(jù)方面,研究者們使用了DDR公司的標注好的數(shù)據(jù):Stepmania Online,它用于超過100k首的歌曲,總共350Gb的數(shù)據(jù)。此外,研究者還收集整理了另外其他作者所創(chuàng)作的兩個高質量的數(shù)據(jù)集。
在舞步放置階段,研究者采用了卷積神經網絡結構。整個模型包含了兩個卷積層和兩個全連接層。為了提高CNN的性能,研究者又加入了C-LSTM模型,將卷積編碼與RNN結合,以達到整合更長時間窗口信息的目的。網絡結構見下圖:
在舞步選擇階段,研究者將舞步選擇視為序列生成問題。他們使用了在處理語言模型中很常用的RNN模型,因為RNN能更好的捕捉長距離的上下文關系。網絡結構見下圖:
本篇論文提供了一個Demo,感興趣的可以自己嘗試一下:http://deepx.ucsd.edu/ddc
也可以在Youtube上觀看官方給出的演示視頻:https://youtu.be/yUc3O237p9M
更多的實現(xiàn)細節(jié)請參考原論文:Dance Dance Convolution
雷鋒網(公眾號:雷鋒網)編譯
雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知。