[Перевод] Музыкальная машинная ярость: настоящий металл, созданный компьютером

Мы уже рассказывали про «Евровидение» для нейросетей. Сегодня поделимся историей о проекте ещё одного экспериментатора. Бернхард Мюллер создал автоматический генератор музыки в стиле «металл» и скрестил его с GPT-3. Что получилось в результате, расскажем далее.

db3ab49676eabb53ca6992fa5faadeea.jpeg

В подростковые годы я играл в городской металл-группе. Это были девяностые, поэтому на нашу музыку сильно повлиял ню-метал. Наши песни звучали как дикая смесь Korn, System of a Down, Incubus и других популярных групп той эпохи.

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

Создание DeepSlayerXL

Автоматическая генерация музыки имеет богатую историю, и большая часть работ посвящена авторегрессивным моделям с использованием нейросетей-трансформеров. Существуют сотни исследований и даже целая платформа для создания музыки с открытым исходным кодом. Однако мне не удалось найти ничего, что подходило бы под поставленную задачу. Большинство исследований были посвящены фортепианной музыке. А это не совсем то, что мы привыкли слушать в металл-треках.

Хотя музыкальный робот Эндрю Шоу казался более-менее подходящим вариантом, я решил написать код самостоятельно. Тем более что большинство «строительных блоков» для моего продукта уже существовали.

Итак, я засучил рукава и взял 3604 MIDI-песни с русского MIDI-сайта. Не буду упоминать его название, но если вы вобьёте в Google «Русский MIDI-сайт», то наверняка найдёте то, что искали. Metallica, Nine Inch Nails, Korn, Radiohead… там было где разугляться. После транспонирования каждой песни на пару полушагов в любом направлении я получил 18 тысяч полных MIDI-песен для тренировки моей модели. Я также написал MIDI-токенизатор с поддержкой нескольких инструментов и перкуссии, позаимствовав нотацию из musicautobot и BAR из Pop Music Transformer.

Маркировка: Каждая нота представлена 2 символами — длительностью звучания инструмента и высотой тона. Удары барабана представлены токенами БАРАБАН [НОМЕР]. 16-й шаг выделен знаком «|»Маркировка: Каждая нота представлена 2 символами — длительностью звучания инструмента и высотой тона. Удары барабана представлены токенами БАРАБАН [НОМЕР]. 16-й шаг выделен знаком »|»

Используя дополненные и маркированные данные, я 200 часов обучал модель TransformerXL на четырёх графических процессорах Nvidia T4. Затем я запустил вывод, нагенерировав большое количество MIDI-данных в течение 24 часов.

Дебютный альбом

Полученные результаты меня порадовали. Конечно, DeepSlayer иногда «плагиатил». То есть воспроизводил данные из обучения (особенно в первых двух тестах), и это создавало множество общих последовательностей аккордов, но то же самое можно сказать и о музыке вышеупомянутых групп. DeepSlayerXL также не заботился о структуре песни или поддержании постоянного размера. Но в его работах можно было найти музыкальные жемчужины, которые охватывали несколько жанров, включая гранж, индастриал, панк, дэт-метал. DeepSlayerXL, безусловно, смог придумать что-то своё.

Я скомпоновал в песни некоторые фрагменты, взятые из необработанного MIDI-вывода DeepSlayerXL и преобразовал их в аудио с помощью Garageband. Результаты представлены ниже. Если вы хотите попробовать сами, вы можете скачать модель PyTorch или использовать Colab.

Итак, вот подборка треков DeepSlayerXL:

  1. Песня Death Angel получила 2,5 звезды из 5. Трек слишком медленный, вокал плохо слышен. Бас-гитара практически не слышна.

    Эта песня о смерти и убийстве, с несколькими упоминаниями «ангела смерти». Ангел смерти это термин, используемый для описания злого духа, который взял под контроль тело другого человека и сделает все возможное, чтобы завладеть его жизнью. Этот дух обычно проявляется как тёмное крылатое существо с красными глазами или крыльями. Известно, что он вызывает дурные сны и питается страхом и плохими мыслями.

  2. Песня Perl Rain получила 5 звёзд. Здесь чувствуется олд-скул, но с использованием современных технологий производства и инструментов. Это определённо не поп-панк.

    Эта песня о парне, который думает, что он такой крутой, потому что не пьёт и не употребляет наркотики. На самом деле он не такой уж и умный, просто неудачник. Песня — прекрасное отображение того, как музыка развивалась за последние 20 лет. Это не просто подростковое нытьё о том, как тяжела жизнь. Это произведение искусства.

  3. Песня A Pumpkin«s Life получила оценку 6 из 10.

    В ней есть что-то от гранжа 80-х, и я уверен, что вы легко сможете услышать его следы. Но здесь есть и другие элементы, которые делают песню интересной. Во-первых, текст довольно умный. Он говорит о том, что мир становится опаснее с каждым днём, и мы должны быть готовы к тому, что может произойти дальше. Это очень глубокая концепция, и если не знать, что трек создан компьютером, то можно подумать, что автор — гений.

  4. Песня Dark Meter заслуживает 10 баллов из 10 возможных.

    Трек мрачный, но не гнетущий. Звучание красивое и временами жутковатое. Сложно сказать, похожа ли эта песня на другие из моего альбома. Она навевает воспоминания о музыке Pink Floyd или даже ранних Talking Heads. Мне кажется, получился интересный взгляд на знакомый жанр.

  5. Песня Arab Spring получила 3 из 5 баллов.

    Странная, но определённо запоминающаяся песня. В ней есть несколько хороших гитарных партий, которые могут вызвать у вас интерес. Лирика повествует о группе повстанцев, свергающих деспотическое правительство. Это не совсем то, что можно было бы ожидать от DeepSlayer, но так получилось.

  6. Песня This is the End набрала 3,5 из 5 баллов.

    Этот трек предлагает необычное сочетание индустриального шума и эмбиент звукового ландшафта. Иногда это напоминает микстейп, который сводил человек, совершенно не понимающий, что он делает, но каким-то образом сделавший всё правильно. Встречаются отрезки жёсткого нойза, которые затем плавно переходят в более расслабленное и мелодичное звучание. Это интересная смена темпа.

Заключение

Я обучал программу на 3600 песнях в стиле металл/гранж/панк в формате MIDI. Возможно, у вас может получиться что-то другое, даже более интересное. Попробуйте!

Что ещё интересного есть в блоге Cloud4Y

→ Изучаем своё железо: сброс паролей BIOS на ноутбуках

→ Частые ошибки в настройках Nginx, из-за которых веб-сервер становится уязвимым

→ Хомяк торгует криптовалютой не хуже, чем трейдер

→ Облачная кухня: готовим данные для мониторинга с помощью vCloud API и скороварки

→ Из кузова грузовика в сумочку: самые известные портативные компьютеры

Подписывайтесь на наш Telegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.

© Habrahabr.ru