Как научить ИИ писать поп-музыку

Потому что у кого уже есть время самому писать?

Я никогда не умел писать тексты. В своей школьной ска-группе я писал партии валторны и некоторые другие инструментальные партии, а в своей группе a capella в колледже я всегда просто аранжировал каверы на уже написанные песни. Мне редко приходилось сталкиваться с трудностями, когда я мог оправдать написание песни, но они всегда были дрянными и убогими, когда я это делал. После нескольких лет отказа я наконец обнаружил инструменты, необходимые для решения этой проблемы написания текстов, в то же время отстраняясь от ощущения хромоты или глупости, которое я испытывал в прошлом. Используя повторяющиеся нейронные сети и набор данных, близких и дорогих моему сердцу, я наконец решу проблему, с которой сталкивался десятилетиями, - написание текстов песен.

Когда мне было 7 лет, я получил компакт-диск от Burger King как часть детского обеда: компакт-диск Backstreet Boys из семи песен под названием «Для фанатов». Этот альбом пробудил во мне любовь к группе, которая вскоре выпустит свой хит «I Want It That Way». В этой песне почти нет смысла. «I Want It That Way» была написана шведской музыкальной суперзвездой Максом Мартином до того, как он начал бегло говорить по-английски, поэтому песня так непоследовательна в том, что она означает в любой момент. Из-за своего коммерческого успеха и того, насколько мало смысла в этом, «I Want It That Way» является отличным эталоном согласованности в песне, созданной искусственным интеллектом.

Используя модели генеративной нейронной сети, я могу брать работы других в качестве вдохновения и преодолевать писательский блок, связанный с написанием песни, и сразу переходить к фазе редактирования. Из-за моей глубокой (и искренней) любви к бойз-бендам я буду документировать свой набег на искусство, созданное искусственным интеллектом, используя рекуррентную нейронную сеть (RNN) для написания текстов бойз-бэндов. Весь код, использованный для этого проекта, находится на моем GitHub, особая благодарность Дэнни Мендозе за помощь в реализации. Для обучения моей модели были использованы полные версии перечисленных ниже полос:

  • хулиганы
  • N’sync
  • Boyz II Мужчины
  • Одно направление
  • Почему бы нам не
  • Новые дети в районе
  • братья Джонас
  • Разыскиваемый полицией

Генеративные модели ни в коем случае не новы, но, как правило, люди не слишком уважают их по сравнению с искусством - очевидным исключением является произведение искусства, созданное искусственным интеллектом, которое было продано более чем за 400 000 долларов. Существуют разные методы, используемые для создания разных видов искусства: генерирующие состязательные сети (GAN) для генерации изображений и RNN, генерирующие как музыку, так и слова из-за их способности распознавать и создавать последовательные последовательности. Для этого проекта я использовал слои Gated Recurrent Unit (GRU) в своей нейронной сети, но коллеги в этой области также добились успеха с использованием сетей с долгой краткосрочной памятью (LSTM).

Для сбора данных я использовал комбинацию парсинга веб-страниц и вызовов пакетов Python. Изначально я планировал скопировать все тексты песен, которые я хотел, но хитрые веб-разработчики помешали мне взять 700 песен с их сайтов. Имея только список исполнителей и названий песен, которые мне удалось получить, я использовал пакет PyLyrics, чтобы составить список текстов песен без какого-либо форматирования или знаков препинания. Я буду брать серию слов из своего вывода, чтобы создать песню, без использования какого-либо форматирования самой песни. Когда у меня были все слова из песен, я добавил все слова по порядку в список в качестве токенов для создания последовательностей слов длиной в 7 слов. После удаления повторяющихся последовательностей я обучил свою модель RNN предсказывать последнее слово каждой последовательности с учетом первых 6. Функция ниже показывает, как модель берет начальное слово и генерирует текст песни произвольной длины.

Используя свой RNN и эту функцию gen_sequence, я скомпилировал выходные данные модели, чтобы написать песню бойз-бэнда ниже. Необработанные выходные данные модели показаны слева, а время обучения модели - справа. Наслаждаться!