OpenAI научила нейросеть создавать новую музыку

Разработчики из OpenAI создали алгоритм, способный создавать новые музыкальные произведения с различными инструментами и в различных стилях. К примеру, она может взять за основу небольшой фрагмент симфонии Моцарта и самостоятельно развить ее дальше в стиле джаза. Описание разработки опубликовано в блоге OpenAI.

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

Разработчики из OpenAI представили алгоритм MuseNet, способный создавать новые композиции в определенных стилях и с определенными инструментами с нуля или развивать фрагмент уже существующей композиции. MuseNet похож на алгоритм GPT-2, представленный OpenAI в феврале, и способный создавать осмысленные тексты на основе небольших фрагментов, к примеру, новостных заголовков. В основе обоих алгоритмов лежит метод обучения без учителя, при котором нейросеть получает множество последовательностей данных и учится предсказывать следующий элемент в последовательности. Продемонстрировав успешность такого подхода на текстах, исследователи из OpenAI применили этот подход для музыки.

В качестве данных для обучения они отобрали множество композиций в разных музыкальных стилях, представленных в виде MIDI-файлов. Их разработчики представили в виде токенов, каждый из которых содержит в себе информацию о высоте, громкости и инструменте, для минимального отрезка времени. Во время обучения нейросеть предсказывала следующий токен на основании набора предыдущих, имея в памяти данные о 4096 токенах. Исследователи визуализировали выученное представление нейросети о семантической близости музыкальных стилей с помощью алгоритма t-SNE:

Во время создания музыки алгоритм использует заданный стиль и инструменты для создания новой мелодии длиной до четырех минут на основе небольшого отрезка или «с нуля». Помимо достаточно качественных результатов, MuseNet отличается от предыдущих подходов к созданию музыки нейросетями тем, что одна модель способна работать в разных музыкальных стилях, не требуя создания отдельных моделей. Разработчики создали браузерную версию генератора, в котором пользователь может управлять создаваемой нейросетью музыкой и слушать ее. Генератор будет доступен до 12 мая, после чего разработчики используют данные, полученные от пользователей, для доработки алгоритма и позднее опубликуют код алгоритма и обученную модель.

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

Григорий Копиев