Инженеры из Google создали контроллер, позволяющий играть на фортепиано, используя всего восемь кнопок. После нажатия кнопки обученный нейросетевой алгоритм самостоятельно подбирает для каждого нажатия одной из восьми кнопок наиболее подходящую комбинацию из клавиш фортепиано, рассказывают разработчики в статье, доступной на arXiv.org.
Автоматизация коснулась уже многих областей, в том числе и музыки. Значительная часть исследователей, работающих в этой сфере, сосредоточены на создании алгоритмов, способных самостоятельно создавать новую музыку, обучаясь на уже существующих композициях, созданных людьми. Некоторым ученым уже удалось достичь результатов в этой сфере, но пока созданные ими алгоритмы все еще сильно отстают от людей. Кроме того, у такого подхода есть часто не принимаемый во внимание психологический аспект — создатель алгоритма не может воспринимать написанную им музыку как результат своего творчества.
Группа разработчиков из компании Google и принадлежащей ей компании DeepMind под руководством Сандера Дилемана (Sander Dieleman) выбрали другой подход и создали нейросетевой алгоритм и устройство для него, которые принимают участие в написании музыки, но все же делают это под руководством человека.
Алгоритм основан на двух рекуррентных нейросетях с долгой краткосрочной памятью (LSTM), которые выполняют противоположные задачи. Одна из нейросетей работает как кодировщик, а другая как декодировщик. Задача кодировщика заключается в преобразовании последовательностей нажатия комбинаций из 88 клавиш реального фортепиано в последовательности нажатий восьми клавиш контроллера. Декодировщик, в свою очередь, наоборот преобразует нажатия клавиш контроллера в комбинации клавиш фортепиано.
Стоит отметить, что во время работы контроллеру нужен лишь декодировщик. Исследователи создали алгоритм преобразования 88-клавишных последовательностей в восьмиклавишные из-за того, что для обучения нейросети нужно много примеров игры на фортепиано, а для восьмиклавишного контроллеров таких данных нет. Таким образом, разработчики сначала создали на основе примерно 1400 записей игры на фортепиано датасет из синтезированных 8-клавишных последовательностей, а затем с его помощью обучили алгоритм, который преобразует нажатия 8 клавиш в комбинации 88 клавиш.
В результате декодировщик научился преобразовывать нажатия клавиш контроллера в полноценную игру на фортепиано. Интересно, что благодаря использованию долгой краткосрочной памяти преобразование зависит от того, какими были предыдущие нажатия. Разработчики реализовали алгоритм как в виде реального контроллера, так и в виртуальном виде, который может использовать любой желающий.
Разработчики из Google не первый раз создают необычные музыкальные инструменты на основе нейросетей. К примеру, в начале года они представили проект открытого музыкального синтезатора, который создает новые звуки, не смешивая несколько существующих, а используя для этого их акустические характеристики.
Григорий Копиев