Инженеры парижской лаборатории Sony Computer Science Laboratories научили нейронную сеть стилизовать музыку под произведения Баха — результаты звучат настолько убедительно, что в половине случаев слушатель не отличает их от оригинальных хоралов. Описание работы опубликовано в журнале arXiv.org.
Сочинение полифонической хоральной музыки в стиле Баха — сложная задача в области автоматической композиции. Искусство хоральных сочинений Баха включает комбинацию четырех гармонических линий с характерным ритмическим и мелодическим рисунком, который начинается, развивается и заканчивается (каденция) в определенном гармоничном ключе. До сих пор машинное обучение не справлялось с обеспечением сразу всех перечисленных условий для написания стилизованной музыки. В новой работе инженеры демонстрируют разработку под названием DeepBach — по сути, это статистическая модель для написания полифонической музыки, а именно, четырехголосных гимноподобных сочинений.
Для обучающей выборки инженеры взяли корпус хоралов Баха, замечательный своим размером: он состоит из 389 произведений. Каждый хорал примерно минутной длительности, написан для четырех голосов (сопрано, альт, тенор и бас) на базе общих композиционных принципов: композитор берет хорошо известную для своего времени мелодию лютеранского гимна и гармонизирует ее, то есть пишет три нижних голоса (альт, тенор и бас), в то время как линия сопрано исполняет основную мелодию гимна.
Попытки алгоритмической стилизации Баха предпринимались и раньше: первая подобная работа 1988 года описывала алгоритм сочинения музыки на базе экспертных правил звучания «в стиле Баха», который включал порядка 300 ограничений, в сумме обеспечивающих «бахоподобное» звучание. Алгоритм требовал исключительного знания особенностей композиции, а результаты в целом не были похожи на музыку Баха, за исключением некоторых каденций и мелодических рисунков. Первые опыты по автоматической композиции на основе нейронных сетей были проведены позже в 1992 году: в работе использовалось несколько нейронных сетей, каждая была нацелена на решение отдельной задачи: составление общего гармонического скелета, детализация и финальная аранжировка. Этот метод тоже использовал экспертные правила для своей работы. Наконец, агностический подход, не требующий экспертных правил, был применен в 2012 году: работа основана на использовании рекурентных нейронных сетей, и самый свежий пример 2016 — Bachbot на базе LSTM — показал хорошие результаты, однако, позволял сочинение в одном музыкальном ключе и не давал возможностей пользователю задать ритм или начальные ноты.
Модель DeepBach основана на методе LSTM рекуррентных нейронных сетей (подробно о рекуррентных нейронных сетях мы писали здесь). Каждый голос моделируется отдельно, что позволяет алгоритму принимать пользовательские ограничения ритма, нот, аккордов и каденций. Модель реализована на базе библиотек Keras и Tensorflow. В качестве обучающей выборки используются отрывки оригинальных хоралов Баха, модель предсказывает высоту звука для каждого голоса в отдельности в зависимости от соседних нот, фиксированного ритма и наличия каденций. Всего в модели используется четыре нейронных сети — две на базе LSTM строят предсказания на базе предыдущих и будущих нот соответственно, одна сеть строит предсказание в зависимости от нот, которые звучат одновременно с предсказываемой, и еще одна сеть суммирует предсказания предыдущих. Модель отличается несколькими преимуществами: например, можно зафиксировать голос сопрано и поиграть с остальными голосами, получая новые «аранжировки» к основному голосу, или указать желаемый ритм и точки, в которых музыкальные фразы должны заканчиваться. Инженеры отмечают быстродействие алгоритма — новые образцы можно получать за считанные секунды.
Для тестирования работы машины DeepBach инженеры провели опрос среди 1600 человек, эта группа включала более 400 профессиональных музыкантов и студентов музыкальных учебных заведений. Для теста взяли MIDI файлы оригинальных и автоматически сочиненных отрывков хоралов, обработанных при помощи средств Leeds Town Hall Organ, а также включили в тест отрывки произведений, выполненных другими алгоритмами. Оказалось, что около половины респондентов приняли автоматически сочиненную музыку за оригинал Баха, что можно считать неплохим результатом — для сравнения, оригинальные отрывки Баха были правильно угаданы 75 процентами респондентов. Более детальные результаты теста показаны на графике ниже, а тест можно пройти самостоятельно на странице проекта:
Далее инженеры планируют разработать графический редактор поверх созданного алгоритма для интерактивного использования машины DeepBach. Они отмечают, что их метод применим не только к хоралам Баха, но и любой другой полифонической хоральной музыке от Палестрины до Take 6.
Надежда Бессонова