Исследователи из Facebook Research разработали метод превращения музыкальных записей в записи с другими инструментами, стилем и жанром. Метод основан на машинном обучении без учителя и позволяет тренировать нейросеть без сопоставления записей с разными стилями, инструментами или жанрами. Разработчики продемонстрировали возможности метода на разных музыкальных стилях и исполнителях, например, превратив симфонию Моцарта в запись пианиста, играющего музыку Бетховена. Работа с описанием метода опубликована на arXiv.org.
Машинное обучение применяется во многих областях и одно из самых впечатляющих применений, понятных даже неспециалисту — перенос стиля между изображениями. В основном этот метод применяется для создания картин, похожих на работы известных художников, а в последнее время появились аналогичные разработки, позволяющие создавать высококачественные фотографии, похожие по стилю на другие снимки.
В области аудиозаписей такая техника развита намного слабее. Несмотря на то, что существуют способы синтеза высококачественны записей речи и превращения речи одного человека в речь другого, технологии превращения музыки в записи других стилей пока слабо развиты. Представленная осенью 2016 года нейросеть WaveNet, предназначенная для синтеза реалистичных аудиозаписей, дала большой толчок этой области и именно ее использовали в своей работе авторы новой работы из исследовательского подразделения Facebook под руководством Янива Тейгмана (Yaniv Taigman).
Основу алгоритма составляет модифицированный исследователями алгоритм NSynth, основанный на WaveNet и представленный в 2017 году. Он состоит из единого кодировщика, который переводит исходную аудиозапись в ее высокоуровневое представление, и множества декодировщиков для перевода этого представления в аудиозапись определенного стиля. Кодировщик устроен таким образом, что он не учитывает специфические для конкретного стиля или автора свойства и извлекает из записи лишь основные элементы. Одно из преимуществ такого подхода заключается в том, что нейросеть может корректно обрабатывать музыкальные стили, которые она не слышала во время тренировки. Для того, чтобы кодировщик не запоминал музыку, а именно кодировал ее семантические свойства, во время тренировки исследователи немного искажали входные данные, изменяя тон музыки случайным образом.
Авторы работы натренировали нейросеть на музыке Моцарта, Гайдна, Баха и Бетховена. После тренировки исследователи провели несколько экспериментов для проверки работы нейросети. В одном из них они пригласили троих неназванных опытных пианистов, которые должны были превратить 60 пятисекундных отрезков музыкальных записей в фортепианную музыку. Треть из них были записями произведений Баха для клавишных инструментов, треть симфониями Моцарта, а еще одна треть представляла собой отрезки свинговых джазовых песен, гитарных риффов и китайской инструментальной музыки. То же самое делала и нейросеть. В результате нейросеть получила более низкие оценки за качество перевода, но все равно довольно неплохо справилась, особенно при превращении в фортепианную музыку записей из последней группы.
Авторы показали множество примеров работы нейросети. В том числе в ролике можно услышать превращение песен Metallica, Элвиса Пресли и Рианны в классическую музыку:
Кроме того, исследователи попросили добровольцев, а также троих музыкантов отличить работу нейросети от оригинальных записей. Для этого им в случайном порядке давали послушать шесть записей, из которых лишь одна была настоящей. Тесты показали, что в большинстве случаев люди не могут отличить созданные нейросетью записи от настоящих.
Недавно Google представила открытый проект музыкального синтезатора на основе алгоритма NSynth, использованного исследователями из Facebook Research. Он позволяет музыкантам в реальном времени смешивать звуки нескольких инструментов и создавать на их основе звук с новым звучанием, но характерными для исходных инструментов свойствами. Устройство построено на одноплатном компьютере Raspberry Pi 3, а все необходимое программное обеспечение и документация выложены в открытый доступ.
Григорий Копиев