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

Авторы Тео Жакенуд, Сэмюэл Мальц и Захари Фридман

Какие музыкальные инструменты машинного обучения существуют в настоящее время?

За последние несколько лет был опубликован ряд инструментов для внедрения машинного обучения (ML) в мир музыки. В частности, Google опубликовал десятки забавных приложений и прототипов с использованием Magenta - «исследовательского проекта с открытым исходным кодом, изучающего роль машинного обучения как инструмента в творческом процессе». Из множества доступных инструментов машинного обучения некоторые работают для улучшения работы художников, но многие вместо этого стремятся полностью заменить художника.

Ай-Дуэт позволяет играть на виртуальном пианино и автоматически исполняет вместе с вами дуэт. Прославление Иоганна Себастьяна Баха - это дудл Google (приложения и анимация, которые заменяют заголовок Google на странице поиска), который позволяет вам составить единую мелодию и создает четырехчастный контрапункт в стиле Баха, при этом, по общему признанию, нарушает некоторые из фундаментальных правил Баха, о которых он много писал. К слову, Blob Opera позволяет вам управлять группой оперных певцов в форме капли, вводя высоту звука и гласную в реальном времени. Хотя такие программы могут быть чрезвычайно сложными и интересными в использовании, их варианты использования более или менее отнесены к новизне; Ни один серьезный артист не стал бы создавать музыку с помощью поющих капель или имитационной фортепианной программы. Однако вместе с этим растет еще одна разновидность музыкального ML, которая расширяет инструменты, доступные исполнителю, а не полностью их заменяет.

Два самых популярных таких инструмента - Tone Transfer и NSynth. Tone Transfer позволяет музыкантам загружать короткие сэмплы, сыгранные на любом инструменте (или не-инструменте), и выводит переинтерпретацию сэмпла, исполненного на одном из четырех инструментов: флейте, саксофоне, трубе или скрипке. Он на удивление хорошо улавливает высоту и интонации оригинальной пьесы, но где он терпит неудачу, так это в интерфейсе. Инструмент доступен только онлайн в виде веб-приложения, и он неуклюже требует от художников загружать и скачивать свои короткие сэмплы по одному, без простого подключения к обычным программам, таким как рабочие станции цифрового звука (DAW). NSynth, с другой стороны, представляет обширную документацию с открытым исходным кодом о том, как построить физический инструмент со стандартными интерфейсами, такими как цифровой интерфейс музыкальных инструментов (MIDI) или USB. Проблема с NSynth в том, что, даже если вы можете собрать его, он работает только как отдельный инструмент и не может быть реализован в качестве программного обеспечения для синтезаторов или контроллеров MIDI, которые у большинства музыкантов уже есть.

Итак, что могло бы стать для музыкантов идеальным инструментом для получения доступа к машинному обучению? Во многих примерах, которые мы показали выше, ИИ заменяет или пытается заменить музыканта. В одних случаях он пытается подражать композитору, в других - исполнителю, но, как правило, терпит неудачу. Мы думаем, что методы машинного обучения могут быть наиболее успешными, когда они используются для расширения творческого опыта художника. Кроме того, инструмент должен быть доступным, интуитивно понятным в использовании и вписываться в рабочий процесс музыканта. Лучший способ гарантировать этот последний пункт - создать инструмент на основе платформ, с которыми музыканты уже знакомы, и в эту цифровую эпоху золотым стандартом является цифровая звуковая рабочая станция. Если методы машинного обучения могут быть реализованы в виде подключаемого модуля в стандартном формате, таком как технология виртуальной студии (VST), музыканты смогут легко интегрировать его в свой обычный рабочий процесс.

Представляем MusicAE

Заявление о миссии

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

Как это работает?

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

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

  • Синтезатор. Это похоже на пример, описанный выше. В автокодировщике нет музыкального входа, пользователь просто определяет скрытый вектор либо в графическом интерфейсе пользователя, либо с помощью MIDI-контроллера, а сеть декодера создает звук. Плавные изменения скрытого пространства соответствуют плавным изменениям на выходе, предоставляя музыкантам совершенно новый способ синтезировать уникальные звуки.
  • Эффекты: в режиме эффектов автоэнкодер использует аудиопоток в качестве входа, и декодер может его восстановить. Внося небольшие изменения в скрытое пространство, звук преобразуется различными тонкими способами, как если бы он проходил через искажения, эквалайзеры или другие эффекты.
  • Микшер: в этом режиме две параллельные сети одновременно кодируют два аудиопотока. Затем, подобно фейдеру, позволяющему плавно переходить между дорожками, два скрытых пространства смешиваются и декодируются как одно целое. Пользователи могут не только выбирать, сколько каждой дорожки включать в микс, но также могут управлять микшированием для каждого измерения в скрытом пространстве, в результате чего создаются творческие миксы.

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

Демонстрация

Примеры режимов микширования и синтезатора показаны ниже с использованием прототипа графического пользовательского интерфейса (GUI). Для микширования горизонтальный ползунок определяет, какая часть каждой дорожки объединяется в скрытое пространство для декодирования, тогда как десять вертикальных ползунков объединяют отдельные скрытые размеры дорожки. В этом прототипе графического интерфейса пользователя модели автоэнкодера предварительно обучены и могут быть загружены через имя файла, как и входные аудиофайлы в случае микширования и эффектов. В демонстрационном видео один входной звук - это пульсирующий синтезаторный бас, а другой - орган. Обратите внимание, как различные качества каждого звука, такие как пульсации баса, сочетаются по мере изменения различных скрытых размеров. В случае синтезатора каждый ползунок определяет значение одного из измерений в скрытом пространстве, и мы слышим декодированный вывод.

Работа над плагином

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

Наиболее распространенный способ создания программ, которые могут работать в DAW, - это использование подключаемых модулей и широко поддерживаемых платформ, таких как VST. Они позволяют музыкантам и программистам создавать свои собственные графические интерфейсы, которые могут напрямую взаимодействовать с музыкой, загруженной в DAW, и могут создавать эффекты, элементы управления MIDI или даже целые виртуальные инструменты. Такие платформы, как VST, широко поддерживаются и совместимы с большинством DAW. Для MusicAE мы хотели бы, чтобы плагин мог читать и записывать аудио напрямую в DAW и из нее. В идеале эти операции должны быть такими же простыми, как выделение дорожек для выбора входов и определение пустой дорожки в качестве выхода или загрузка в наш синтезатор в качестве программного инструмента. Ползунками, управляющими скрытым пространством, можно управлять прямо на экране или назначать аналоговые регуляторы и ползунки на MIDI-контроллере, подключенном через DAW.

Хотя наш исходный код был разработан с использованием Python, который дал нам легкий доступ к наиболее широко используемым библиотекам машинного обучения и нейронных сетей, в частности, TensorFlow, VST и программные инструменты почти повсеместно написаны с использованием языка программирования C ++. Возможность перенести обученную модель автоэнкодера на другой язык и научиться работать в рамках ограничений VST оказалось сложной задачей, но мы смогли воспроизвести функциональность нашего прототипа графического интерфейса пользователя и теперь стремимся к более интуитивно понятному интерфейсу. интерфейс для бесперебойной работы с любой DAW. Макет, основанный на нашем существующем графическом интерфейсе пользователя, показан ниже вместе с популярным приложением для Mac OS GarageBand.

Вывод

Несмотря на то, что на стыке машинного обучения и музыки происходит много увлекательной работы, немногие разработчики всерьез приняли во внимание потребности цифровых музыкантов. Наша цель с MusicAE - не просто создать инструмент, который предоставляет музыкантам совершенно новый способ взаимодействия с музыкой, но и помочь им интегрировать его в свой рабочий процесс, используя знакомые им методы. До сих пор мы экспериментировали с различными архитектурами нейронных сетей и нашли подходящие модели, которые мы протестировали в автономных графических интерфейсах. Теперь мы нацелены на полное включение этой функциональности в подключаемый модуль VST, чтобы сделать наш инструмент совместимым с большинством DAW, тем самым сделав его доступным для музыкантов.

Этот проект был завершен Тео Жакенудом, Сэмюэлем Мальцем и Закари Фридманом в рамках старшего проекта по проектированию электротехники в The Cooper Union. Мы хотели бы поблагодарить нашего консультанта профессора Сэмюэля Кина за то, что он познакомил нас с этим проектом, а также Джозефа полковника, выпускника Cooper Union и нынешнего кандидата наук в Центре цифровой музыки Лондонского университета королевы Марии. Он первым придумал эту идею и заложил большую часть основы, на которой мы построили наше программное обеспечение.