Я всегда был поклонником HIIT (высокоинтенсивных интервальных тренировок) и предпочитаю не топить свой дом зимой, поэтому я баловался DDR. После воспроизведения большинства песен в StepMania, программном обеспечении DDR с открытым исходным кодом, вы в конечном итоге захотите играть свою собственную музыку, но при этом иметь разумную хореографию для своих песен.



Генерация шаблонов шагов DDR оказывается довольно простой задачей для модели NLP. В прошлом я использовал FastAI и NLP для создания диалогов для Star Trek the Next Generation и нового сценария для The Room. Это был мой следующий набег на НЛП и использование новейшей версии библиотеки FastAI.



НЛП работает, создавая языковую модель из корпуса текстов. В целом, точность НЛП хороша, если она составляет около 30%. То есть, если мы можем предсказать следующее слово в тексте в 30% случаев, мы должны быть удовлетворены. DDR — гораздо более простое предложение, так как существует около 20 различных вариантов шагов, поэтому точность может быть намного выше. Я смог добиться точности 50% из моих пошаговых файлов stepmania.

Прежде чем начать этот проект, я немного почитал, чтобы узнать, работали ли другие над этой конкретной задачей. Я нашел действительно классную статью под названием «Dance Dance Convolution», написанную некоторыми студентами-магистрами Калифорнийского университета в Сан-Франциско. Этот проект фактически смотрел на спектрограф для mp3, чтобы предсказать местоположение каждого удара. Они обсудили некоторые недостатки этого метода, заключающиеся в том, что их модель не генерирует особенно уникальные шаги (замирания, прыжки), но соответствует ударам.



Модель, которую я создал, можно описать следующим образом: можем ли мы генерировать паттерны шагов, которые выглядят как настоящие песни DDR, не зная, что это за музыка? В конце концов я смог сгенерировать шаги и воспроизвести несколько песен, но мне пришлось потратить дополнительные усилия на то, чтобы файл шагов синхронизировался с музыкой. Которую я рассматриваю как совершенно отдельную проблему от НЛП-части этого проекта.

Классификатор является интересным компонентом анализа файлов шагов. Можем ли мы точно предсказать сложность песни по образцу? Для тех, кто играл в DDR, очевидно, что такая песня, как MAX 300, на уровне сложности для начинающих сложнее, чем другие песни на уровне сложности Hard. На самом деле я бы сказал, что модель машинного обучения является более точной и достоверной, и она может сказать нам, какие песни неправильно классифицированы.

Ниже приведен пример матрицы путаницы. Нам удалось добиться точности классификации 80%.

Следующим шагом в этом процессе является создание файлов .dwi, из которых StepMania загружает шаблоны шагов. Эта часть довольно проста, но включает в себя получение информации о BPM для конкретных песен и определение времени начала ноты. Это моя цель для части 2.

Код GitHub ниже: