Нейронная мимикрия: насколько хорошо ИИ предсказывает музыку

Завершить «Реквием» за Моцарта или продлить саундтрек к Gravity Falls в 5 раз нейросетью... Да, возможно, но сможет ли ИИ справиться с этим хорошо или даже лучше живого музыканта? Мы провели конкурс среди дата-сайентистов и получили несколько инсайтов. Внутри можно не только почитать, но и послушать.

Нейронная мимикрия: насколько хорошо ИИ предсказывает музыку

Задача

Пару месяцев назад команда AI Community при поддержке Yandex.Cloud провела конкурс по созданию генеративной музыки Yet Another Data Challenge. Каждому участнику нужно было обучить ML-модель так, чтобы она продолжила мелодию по первым 8 заданным тактам.

Генерация мелодий с помощью алгоритмов на основе большого объема данных — интересная инженерная задача. Под генеративной музыкой в чистом виде обычно понимают создание мелодий алгоритмом условно с нуля. Условно, потому что на самом деле нейросеть автономно генерирует музыку с помощью выявленных в массивах данных закономерностей музыкальных произведений. Так, в 2017 году разработчики Яндекса Иван Ямщиков и Алексей Тихонов обучили сеть писать стилизации под Скрябина. Операторы использовали в качестве примеров для нейросети 4 гигабайта MIDI-файлов (формат звукозаписи) с мелодиями. При этом каждая натренированная нейросеть имитировала различные звуки: одна писала основную мелодию, другая — бас, и третья — барабаны. В итоге получилась целая симфония.

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

Как генерировали музыкальные продолжения

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

Например, песню «Во поле береза стояла» в ABC-нотации можно записать так:

X:1

T: Bereza

M:6/4

R:

K:Am

L:1/8

eeee d2 cc B2 A2|eege ddcc B2 A2| B3cd2 cc B2A2|BBBc ddcc B2A2:|

В X находится номер мелодии, в T – название, в M – размер, в R – стиль, в K – тональность, в L – базовая продолжительность ноты. Тактовая черта обозначается |, трезвучие или аккорд заключается в [ ]. Различные октавы записываются или прописными, или строчными буквами с применением апострофов и запятых.

Именно такой формат мелодий использовали участники конкурса Yet Another Data Challenge. В сервисе машинного обучения – Yandex DataSphere им нужно было разработать алгоритм, который из предоставленных ABC-файлов формирует ABC-файлы с продолженными мелодиями. После – конвертировать в звуковой формат с помощью метода abc2midi. В итоге у каждого получились MIDI-файлы, которые проигрываются любым плеером.

В сервисе участники получали уже готовый ноутбук с привычным интерфейсом Jupyter Notebook, в котором было сформулировано задание, предоставлен доступ к данным и показан простой пример генерации продолжения мелодии. После загрузки данных участник создавал в Yandex DataSphere свой ML-алгоритм, при этом ему не пришлось тратить время на подготовку среды разработки. К тому же, можно было вернуться к любому этапу разработки, так как сервис сохраняет код, данные и состояния в процессе работы. В DataSphere легко обмениваться ноутбуками — экспортировать свой или импортировать чужой. Получившиеся мелодии можно было отправить на проверку в Яндекс.Толоку с помощью одной команды напрямую из сервиса.

Консоль Yandex DataSphere
Консоль Yandex DataSphere

В джазе не только ИИ?

Напомним, что главная задача конкурса – дописать каждую из 10 000 мелодий, сочиненных композитором. Для разработки ML-алгоритма некоторые участники использовали в своих решениях нейросети, например, нейросеть-трансформер. Пример можно найти здесь. При этом не все участники для продолжения использовали именно нейросеть – некоторые дописывали музыку естественным подбором. Заметим, что правила это позволяли: никаких специальных требований к составу, жанру мелодий или инструментам реализации не было. Участники могли использовать сторонние библиотеки, нейросети или даже не использовать никакие алгоритмические методы, самостоятельно записав продолжение для каждой из заданных мелодий.

Каждую созданную участником композицию оценивали живые люди. Асессоры провели тысячи сравнений пар мелодий. Пара состояла из композиции, созданной участником из исходных 8 тактов и 8 сгенерированных на их основе, и 16 тактов соответствующей ей оригинальной мелодии.

Эксперты Яндекс.Толоки выбирали ту мелодию из двух, которая нравится больше. В итоге оказалось, что нравилась им больше та, которую участники продолжали методом естественного перебора, а не нейросетью.

Десятки участников обучали нейросети, но в верхнюю часть лидерборда попали единицы из них. Например, Дмитрий Виноградов. Первые три места заняли участники, которые внесли изменения в базовую модель, проанализировав данные и полагаясь на свой музыкальный вкус.

Давайте попробуем сравнить мелодию Дмитрия с мелодиями победителей – Михаила и Марии:

Мелодия Дмитрия, сгенерирована нейросетью

Мелодия Марии, подобрана на слух

Мелодия Михаила, подобрана на слух

Сложно заметить разницу, что написано нейросетью, что сделано методом подбора тактов, прослушав всего по одной мелодии участников, правда? Но асессоры оценивали тысячи записей и в итоге реже «нажимали» на те мелодии, которые были сгенерированы нейросетью.

Валентина Бирюкова 
Дата-сайентист, любовь к данным началась с прикладной статистики и эконометрики. Заняла 1 место в конкурсе

«В техническом плане самым современным подходом для генерации мелодии было бы использование нейросетей, построенных по методологии трансформер. Но я опиралась прежде всего на социальную инженерию – понимание человеческого поведения, прогнозируя результат исходя из метрики оценки. Она основывалась на выборе людьми между мелодией из реального теста и композицией с продолжением, сгенерированным алгоритмом. Вывод напрашивался сам: приятные на слух мелодии можно сгенерировать, сделав лучшую нарезку из исходных мелодий. Прослушав оригинальные 8 тактов, я решила, что самые интересные из них начинаются примерно в середине, и именно их нужно использовать, чтобы балл был выше. Выиграло решение, где я отправляю в качестве ответа 4 последних такта мелодии из 8, повторяющиеся два раза».

Михаил Сидоренко
DL and CV Engineer в Prisma Labs, изучал Data Science в магистратуре Сколтеха. Занял 2 место в конкурсе

«У меня было всего 2-3 дня на соревнование, поэтому я выбрал реализацию не с помощью нейросети, а эвристическим методом, полагаясь на собственный музыкальный вкус. Моё решение довольно простое и основывается на понимании системы оценки. Я попробовал повторить все 8 тактов, 4 такта, 2 такта, проиграть их в обратном порядке. Послушав и протестировав на друзьях получившиеся мелодии, я выбрал наиболее понравившийся вариант. Я поставил себя на место асессора и этого было достаточно для того, чтобы занять второе место. Я предположил, что у большинства оценивающих, как и у меня, нет музыкального образования, поэтому они будут полагаться на собственные ощущения, а не на какие-то специфические критерии.

В ходе реализации я разобрался в новом для себя инструменте – DataSphere. Хотя я работаю в области Data Science и, конечно, хорошо знаком с интерфейсом Jupyter Notebook. Мне нравится, что сервис активно развивается, например, недавно появился вебинар о новых функциях, таких как TensorBoard и мониторинг ресурсов».

Мария Ярославцева
Лингвист-теоретик, узнала о конкурсе от подруги и никогда не занималась ML-разработкой. Заняла 3 место в конкурсе

«На вводной лекции к конкурсу сказали, что генерация музыки еще сложнее, чем генерация языка, потому, что в музыке очень сложно выделить какие-либо закономерности. Эта мысль особенно мотивировала на изучение генеративных моделей, чтение литературы и погружение в теорию. Для реализации я выбрала эвристический алгоритм, отчасти потому, что у меня не было никакого опыта в работе с нейросетями. У меня есть музыкальное образование, и я подумала «как можно гармонично продолжить какую-то мелодию? Можно проиграть её назад или в другом ритме, а можно несколько раз повторить какие-то из тактов». Последнюю идею я и решила осуществить. Также я консультировалась с музыкантами, спросила, как бы они описали гармонию, будь в их распоряжении всего 8 тактов».

Итоги

Результаты конкурса неожиданные и в достаточной степени философские. Любое искусство в некотором смысле и есть подражание, но в нашем эксперименте мы убедились, что нейросеть пока не научилась подражать таким образом, чтобы быть приятнее на слух хотя бы обычных повторов тактов. А музыкальное искусство, как известно, невозможно без слушателя.

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

Елена Грунтова
Заместитель руководителя подразделения «Сервисы машинного обучения» Yandex.Cloud

«Мы провели эксперимент и подтвердили старую максиму: лучшее предсказание на завтра — это то, что было вчера, поэтому варианты решений с повторами выиграли. Чтобы преодолеть этот бейзлайн, нужен бережный, внимательный и творческий подход к исходным данным. Конечно, мы будем устраивать такие конкурсы и в дальнейшем, возможно придумав другие метрики для задачи из этой области, чтобы в результате больше оценивать именно работу ML-алгоритмов и нейросетей, или выбрав какую-то другую интересную проблему».

Как будет развиваться музыкальный ИИ?

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

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

Подписывайтесь на блог Yandex.Cloud, чтобы узнавать еще больше новостей и историй об IT и бизнесе.

Другие истории, которые активно читают наши подписчики:

1212
9 комментариев

- Абрам Моисеевич, а как вы относитесь к Моцарту?
- Ви знаете, он мне не понравился.
- А ви его таки слушали в филармонии?
- Нет, мне Рабинович напел.

Как-то всё это предельно унизительно для ИИ, которому когда-то пророчили инициацию третьей мировой и порабощение человечества.

1
Ответить

Гайз, ведь никто не считает, что Яндекс Музыка и Mubert - это что-то близкое к среде для ML-разработки, в которой делался этот конкурс и генерились мелодии? ;)

1
Ответить

Комментарий недоступен

Ответить

Найди принципиальную разницу между рамштайном и моргенштерном.

Ответить

Я все понимаю, новые технологии, алгоритмы всякие.

Но почему так остойно звучит? Тот же муберт выдает музыку которую можно слушать, а тут бренькание какое-то. 

Ответить

She won!!! Say her name!!!

Ответить