Исследователи из Google создали сервис DrumBot, который в реальном времени дополняет мелодию на синтезаторе партией на ударных. Сервис работает в виде браузерного приложения, к которому можно подключить синтезатор, рассказывают разработчики в своем блоге. Код и инструкции для использования сервиса на стороннем сервере опубликованы на GitHub.
Алгоритмы машинного обучения для работы со звуком обычно можно разбить на две основные группы. Одни алгоритмы создают новую музыку — ее однако, сложно назвать качественной с эстетической точки зрения. Алгоритмы второй группы же помогают музыкантам и композиторам при создании и исполнении музыки — и сейчас они достаточно развиты.
Во многом такие алгоритмы развиваются усилиями исследователей из проекта Magenta, входящего в состав Google. Например, они разработали вариационный автокодировщик, позволяющий преобразовывать музыку на разных инструментах или в разных стилях в другие, сохраняя при этом общую мелодию, ритм и другие ключевые свойства. На его основе они создали программу, позволяющую добавлять партию на ударных к мелодии, исполненной на другом инструменте.
Пока подобные алгоритмы и сервисы работают с записанными мелодиями и не могут быть использованы в качестве замены реальному музыканту, способному подыграть на барабанах или другом инструменте. В новом проекте разработчики из Magenta использовали ту же нейросетевую модель для более удобного сервиса, работающего в реальном времени. Сервис работает в виде браузерного приложения, а пользователь может задать мелодию на своем синтезаторе, подключив его к компьютеру, или использовать виртуальный синтезатор на экране.
После того, как пользователь сыграл два такта, алгоритм генерирует и воспроизводит соответствующую ударную партию. При этом он может продолжить играть, и на следующих двух тактах алгоритм будет проигрывать новую партию. Разработчики реализовали сервис в виде легковесного браузерного алгоритма и Node.js-программы, работающей на более мощном облачном сервере.
Одна из авторов отметила, что сервис принимает мелодию и выдает результат в виде MIDI-последовательности, поэтому музыканты могут использовать удобные им инструменты, а также записывать полученные композиции, чтобы работать с ними дальше. Сервис можно развернуть на своем компьютере, код и инструкции для этого опубликованы на GitHub.
За несколько часов до этого Amazon представила отчасти похожий, но более функциональный коммерческий сервис AWS DeepComposer и MIDI-синтезатор для него. Он работает с несколькими инструментами и музыкальными стилями, а также позволяет обучать собственную нейросетевую модель.