Об эксперте: Ольга Перепелкина, эксперт в области машинного обучения и нейросетей, преподаватель и автор курса Affective Computing в ВШЭ.
Творчество всегда считалось прерогативой человечества. И если в когнитивных задачах, таких как вычисления и обработка информации, мы уже признали превосходство искусственного интеллекта и активно пользуемся плодами автоматизации, то в таких «человеческих» видах деятельности как живопись, поэзия или композиторство алгоритмы нам уступают. И вообще, разве можно поставить на поток производство шедевров? Однако задачей автоматического создания картин, стихов и музыки ученые занимаются уже несколько десятилетий, и некоторые успехи определенно достигнуты.
Первая музыка, созданная с использованием компьютера, появилась в 1957 году в Bell Laboratories. Это была композиция длиной 17 секунд, которую ее автор Ньюман Гутман назвал The Silver Scale («Серебряная чешуя»):
В том же году The Illiac Suite стала первой партитурой, написанной компьютером. Она был названа в честь компьютера ILLIAC I университета штата Иллинойс в США. Это ранний пример алгоритмической композиции, основанной на вероятностном моделировании (цепях Маркова). В области синтеза звука знаменательным событием стал выпуск синтезатора DX 7 компанией Yamaha в 1983 году, использующего модель синтеза на основе частотной модуляции (FM).
Генерация музыки
Когда мы говорим о создании музыки при помощи компьютера, речь может идти как об ассистивной системе или компьютерной среде, помогающей музыкантам (композиторам, аранжировщикам, продюсерам), так и об автономной системе, нацеленной на создание оригинальной музыки. В обоих типах систем могут участвовать нейросетевые алгоритмы и глубокое обучение.
Мы также можем говорить о разных этапах создания музыки, где искусственный интеллект встраивается в процесс и помогает нам: сочинение, аранжировка, оркестровка и т.д. Когда человек сочиняет музыку, он редко создает новое произведение с нуля. Он повторно использует или адаптирует (сознательно или бессознательно) музыкальные элементы, которые слышал ранее, а также руководствуется принципами и рекомендациями из теории музыки. Так и компьютерный помощник может включаться на различных этапах создания произведения, чтобы инициировать, предлагать или дополнять композитора-человека.
Генерация нот
Традиционным подходом является создание музыки в символической форме. Результатом процесса генерации может быть музыкальная партитура, последовательность событий MIDI (распространенный стандарт цифровой звукозаписи), простая мелодия, последовательность аккордов, текстовое представление или какое-либо другое представление более высокого уровня. То есть искусственный интеллект создает символическую форму, по которой затем можно сыграть произведение.
Иными словами, физический процесс, посредством которого создается звук, упраздняется — вместо создания всего многообразия аудиосигнала, алгоритм выдает «инструкцию». Это резко сокращает объем информации, которую алгоритмы должны производить, что сводит проблему синтезирования к более решаемой и позволяет эффективно использовать простые модели машинного обучения.
Такой подход, например, позволил создать музыку в стиле Баха. Другой пример — нейросеть от OpenAI Musenet, которая появилась в апреле 2019 года. MuseNet может сочинять четырехминутные композиции на десяти инструментах и комбинировать стили «от Моцарта до Beatles». Эта нейросеть была обучена на огромном массиве MIDI-записей.
Генерация аудио
Но символический подход не позволяет создать нюансы человеческого голоса и различные характеристики тембра, динамики и выразительности музыкального произведения. Другой способ — это создавать музыку напрямую в виде аудиосигнала. Сложность этого подхода в том, что последовательность, которую мы в таком случае пытаемся создать — очень длинная. Например, для песни в несколько минут в хорошем студийном качестве это будет десятки миллионов значений.
В апреле 2020 года, компания OpenAI выпустила Jukebox, — нейросеть, которая генерирует музыку в различных жанрах. Она может сгенерировать даже элементарный голос, а также различные музыкальные инструменты. Jukebox создает аудиосигнал напрямую, минуя символьное представление. Такие музыкальные модели имеют гораздо большую емкость и сложность, чем их символьные аналоги, что подразумевает более высокие вычислительные требования для обучения модели.
Как творят нейросети?
Как же именно нейросети создают музыку? Общий принцип заключается в том, что нейросеть «смотрит» на огромное количество примеров и учится генерировать что-то похожее. В основе таких алгоритмов обычно лежат автокодировщики и генеративно-состязательные нейросети (Generative Adversarial Network, GAN).
Автокодировщик — это нейросеть, которая учится представлять сложный и многомерный набор данных в «упрощенном» виде, а затем из этого упрощенного представления снова воссоздать исходные данные. То есть модель генерации музыки на основе автокодировщика сначала сжимает необработанный звук в пространство меньшей размерности, отбрасывая некоторые из несущественных для восприятия битов информации. Затем мы обучаем модель генерировать звук из этого сжатого пространства и повышать качество до исходного звукового пространства.
Генеративно-состязательную нейросеть метафорично можно представить как работу «фальшивомонетчика» и «следователя». Задача «фальшивомонетчика», или генеративой модели нейронной сети (generator, G), — создать из шума реалистичный экземпляр данных, например, изображение лица или, в нашем случае, музыкальную последовательность. «Следователь», или дискриминативная модель (discriminator, D) пытается отличить реальный экземпляр данных (настоящую фотографию лица или настоящую музыкальную мелодию) от «фальшивой», созданной генератором. И так, соревнуясь друг с другом, обе модели совершенствуют свои «навыки», в результате чего генеративная модель обучается создавать очень правдоподобные примеры данных.
Для обучения модели Jukebox использовал базу данных из 1,2 млн песен (600 тыс. из которых на английском языке), которая включала как сами композиции, так и тексты песен и метаданные — исполнителя, жанр и ключевые слова.
Музыкальный тест Тьюринга
Как понять, что музыкальное произведение, созданное машиной, действительно достойно нашего внимания? Для проверки работы систем искусственного интеллекта был придуман тест Тьюринга. Его идея заключается в том, что человек взаимодействует с компьютерной программой и с другим человеком. Мы задаем вопросы программе и человеку и пытаемся определить, с кем же мы разговариваем. Тест считается пройден программой, если мы не можем отличить программу от человека.
В области генерации музыки иногда используют «музыкальный тест Тьюринга». Так, например, был протестирован алгоритм DeepBach, который генерирует ноты в стиле Баха. Были опрошены более 1,2 тыс. людей (как эксперты, так и обычные люди), которые должны были отличить реального Баха от искусственного. И оказалось, что сделать это очень сложно — люди с трудом могут различать хоралы, сочиненные Бахом, и созданные DeepBach.
В области создания аудио успехи пока не столь впечатляющие. Несмотря на то, что Jukebox представляет собой смелый шаг вперед в плане качества музыки, длины аудио и способности настроиться на исполнителя или определенный жанр, различия между искусственной музыкой и произведениями, созданными людьми, все еще заметны. Так, в мелодиях от Jukebox хоть и есть традиционные аккорды и даже впечатляющие соло, мы не слышим крупные музыкальные структуры, такие как повторяющиеся припевы. Также в искусственных произведениях слышны шумы, связанные со способом работы моделей. Скорость генерации музыки также пока еще невысока — для полного рендеринга одной минуты звука с помощью Jukebox требуется около девяти часов, поэтому их пока нельзя использовать в интерактивных приложениях.
А как же лирика?
Хорошо, с музыкальными композициями разобрались, а как же тексты для песен? Может ли искусственный интеллект сочинять стихи? Да, и эта задача даже проще, чем написание мелодий, хотя и сложностей здесь тоже хватает — алгоритму нужно не только «придумать» осмысленный текст, но и учесть его ритмическую структуру.
В 2016 году разработчики "Яндекса" выпустили альбом «Нейронной обороны». В него вошли 13 песен в стиле «Гражданской обороны», тексты для которых сочинил искусственный интеллект. А годом позже вышел альбом «Neurona» с четырьмя песнями в стиле Nirvana, стихи для которых также были сгенерированы нейросетями.
Сейчас спою
Музыку мы создавать научились, стихи для нее писать — тоже, а как же быть с человеческим голосом? Могут ли нейросети петь вместо нас?
Генерация реалистичного человеческого голоса нужна не только для пения, но и во многих системах — от call-центров до личных голосовых помощников. Еще в 2016 году компания DeepMind выпустила алгоритм WaveNet, который создает очень реалистичный голос по заданному тексту (Text-To-Speech). Технология доступна для двух языков — английского и китайского.
В апреле 2020 года в ByteDance AI Lab (лаборатории компании, создавшей знаменитый TikTok) создали алгоритм ByteSing. Эта система на основе нейросетевых автокодировщиков позволяет генерировать очень реалистичное пение на китайском языке.
Большинство разработчиков современных алгоритмов генерации музыки, стихов и пения отмечают, что их системы являются ассистивными. Они не претендуют на полноценную замену человеческого творчества, а, напротив, призваны помочь человеческой музе. Человек не перестанет творить по мере развития алгоритмов и программ, но будет использовать их в своей деятельности. Очень вероятно, что в будущем великие шедевры будут созданы людьми и искусственным интеллектом совместно.