Генеративная музыка — светлое будущее или закат музыкальной индустрии?

Небольшая обзорная статья на тему, моего авторства.

Хайп по поводу AI (Искусственного интеллекта) широк и могуч, и тему создания музыки он, естественно, тоже затронул. Чуть ли не каждый день нам рассказывают, что компьютеры научились сочинять музыку и скоро заменят композиторов. Так ли это на самом деле, что ждёт в обозримом будущем нас, как слушателей, и какая судьба ожидает, собственно, саму музыку? Я немного разбираюсь в AI тематике, поэтому в состоянии отделить хайп от реальности и хочу поделиться этим знанием с завсегдатаями Бара.

Хайперы рассказывают нам, что генеративная музыка появилась только недавно, когда компьютеры резко поумнели в результате AI революции и исследователи создали специальные нейросети, способные обучаться музыке. На самом деле это не так. Генерация музыки известна ещё со времён Гайдна и Моцарта, только тогда она называлась по другому.

Musikalische Würfelspiel

Единственный инструмент, который требовался для генерации музыки по методу Würfelspiel (известному с середины 18 века), это пара игральных костей. Процесс генерации выглядел, как настольная игра: поставлялся комплект карт, пронумерованных по раундам, на каждой из которых содержался фрагмент музыки (обычно один такт). Игра состояла из нескольких раундов, в каждом из которых пользователь случайным образом (бросая кости) выбирал пару из 6 карт, предназначенных для этого раунда, и дописывал содержащуюся на картах музыку в конец музыки от предыдущего раунда. В конце концов получалось музыкальное произведение для дуэта (если использовалось 2 кости) или трио (если использовалось 3 кости). Из набора 16 раундов по 6 карт в каждом раунде можно было сгенерировать 940 369 969 152 (почти триллион) различных произведений!


Вся магия заключалась в том, что карты составлял композитор таким образом, чтобы они хорошо сочетались друг с другом. Салонная музыка 17 века (менуэты, вальсы, полонезы) была относительно просто устроенной, поэтому задача составления такого набора была вполне посильной для хорошего композитора. До нас дошли наборы Würfelspiel с неподтверждённым авторством Гайдна (The game of harmony, or an easy method for composing an infinite number of minuet-trios, without any knowledge of counterpoint), Моцарта, Карла Филиппа Эммануила Баха (сына того самого Баха), и других известных композиторов той эпохи.

Как видно, проблема генерации музыки занимала умы европейцев ещё три века назад. В 19 веке музыка усложнилась, и разложить её на набор взаимозаменяемых карт стало уже тяжело. Вновь вернулись к идее генерации музыки уже в 20 веке.

Первые шаги алгоритмизации

В 30-х годах 20 века русский эмигрант Иосиф Шиллингер создал свою систему музыкальной композиции, которая допускала создание музыки по математическому алгоритму. Это было уже близко к генерации музыки в современном понимании. Шиллингер преподавал композицию известным джазовым музыкантам того времени, таким как Джордж Гершвин и Глен Миллер. Исследователи Гершвина находят в его работах множественные следы использования системы Шиллингера: вполне возможно что Гершвин сгенерировал некоторые фрагменты свох произведенй.


Но Шиллингер не был принят в академической среде - академики считали его нахальным самозванцем, обещающим “улучшить” Баха и Бетховена посредством своих странных теорий. К тому же Шиллингер при жизни (он умер в 1943 году) не оставил законченного и стройного описания своей системы, поэтому через некоторое время она практически перестала употребляться, так и не войдя в учебники и курсы по композиции.

Следующие большие шаги в генеративной музыке уже были связаны с появлением компьютеров: идея создавать музыку с помощью вычислительной машины выглядела очень заманчиво. Надо отметить, что единой и общепризнанной “теории музыки” никогда не существовало. Музыка слишком разная, можно вывести законы композиции для определённого стиля определённой эпохи, но охватить всю музыку пока никому не удалось.
Поэтому пропоненты идеи “научим компьютер писать музыку” ударились кто во что горазд, точнее, кому на что хватило фантазии. Одни генерировали музыку на основе законов термодинамики, другие на основе фракталов и систем Лиденмайера, третьи составляли формальную “музыкальную грамматику” с набором порождающих правил, и т.п. Останавливаться на всех идеях не буду, расскажу только про самого интересного представителя этого направления.

Дэвид Коуп и его эксперименты c “музыкальным интеллектом”

Дэвид Коуп был профессиональным музыкантом и композитором, но вместе с тем его всегда привлекали компьютеры и программирование. Он начал экспериментировать с генерацией музыки ещё в 70-х годах, когда компьюьтеры работали на перфокартах. В начале 80-х он подписал контракт на создание оперы, но столкнулся с творческим кризисом и… решил выйти из него помощью компьютера: пусть компьютер сам придумывает музыку в стиле Коупа! Конечно, оперу компьютер сразу не написал, но выйти из кризиса помог. Дальнейшие эксперименты Коупа постепенно привели к созданию программы EMI (“Experiments in Musical Intelligence”), сам Коуп называет её Эмма.

EMI анализирует существующие произведения композитора, деконстриуирует их, находит гармонические и ритмические закономерности (“паттерны”), и на основе найденных паттернов генерирует похожую музыку, при этом не копируя 1:1 фрагменты исходных произведений. Такой подход оказался вполне работоспособным, особенно для композиторов, у которых существует много произведений в схожей стилистике (т.е. можно найти достаточное количество паттернов). EMI вполне успешно генерировала произведения Баха, Моцарта, Шопена, и т.п.

Вдохновлённый успехом, Коуп решил издать сгенерированную музыку (BandCamp и SoundCloud тогда ещё не существовали), чтобы она была доступна широким массам, и… столкнулся с трудностями. Издатели, работающие с классической музыкой, отказались издавать “фейкового Баха”, а издателям современной музыки Бах был неинтересен. Вторая проблема - программа генерировала ноты, и эти ноты должен был кто то исполнить, чтобы они превратились в музыку. Исполнители классической музыки не горели желанием исполнять эти “подделки”, в результате часть композиций исполнила жена Коупа (я считаю себя посредственным пианистом, но если честно, даже я сыграл бы лучше), а часть - какие то трешовые ансамбли. Тем не менее, эта музыка вполне слушабельна и стиль композитора узнаваем с первых нот.

Работы Коупа подняли много вопросов по восприятию генеративной музыки слушателями. Проводились эксперименты: если слушателям говорили, какое произведение написал настоящий Бах, а какое - программа (Эмма), слушатели оценивали настоящего Баха выше. Но при слепом прослушивании наоборот: музыка, написанная программой, оценивалась слушателями по всем параметрам выше настоящего Баха! Хорошо знакомая аудиофилам ситуация, не правда ли? Кроме этого, непонятно, кого считать автором такой музыки. Баха? Коупа? Или виртуальную Эмму?


Несмотря на очевидное качество генерируемой музыки, работы Коупа не были замечены мейнстримом и были восприняты всего лишь как забавный курьёз. Очевидно, исследователь-одиночка не имет таких медийных и хайпогенерящих возможностей, как крупные корпорации, продвигающие на рынок свои решения. Настоящий хайп в этой области начался, когда исследовательские центры, к которым приковано внимание тысяч журналистов, мониторящих “прорывы в AI”, сгенерировали музыку с помощью нейросетей.

Нейросети и AI

Генерация музыки нейросетью - на самом деле простой, даже примитивный процесс, не имеющий принципиальных отличий от методик того же Коупа. Как это происходит, в первом приближении:

В процессе обучения нейросети ей на вход подаются фрагменты музыкальных произведений. Нейросеть анализирует музыку (высоту и длительность нот), и находит закономерности, например что после нот до и ми скорее всего будет нота соль. Эти закономерности кодируются внутри нейросети в виде весов нейронов. Чем больше обучающих данных было на входе, тем больше закономерностей найдёт нейросеть, и тем более тонкие музыкальные нюансы она сможет учесть. Само обучение заключается в том, что нейросеть просят предсказать высоту и длительность следующей ноты, которая будет после обучающего фрагмента. В зависимости от того, какую ошибку сделала нейросеть, подстраиваются веса нейронов, отвечающих за прогноз, и такой процесс повторяется много миллионов раз (нейросеть - очень плохой и ленивый ученик по сравнению с человеком, приходится много раз повторять, чтобы знания хорошо усвоились).

Обученная нейросеть готова генерировать музыку. На вход нейросети подаётся “затравка” из первых нот произведения, которое хочется продолжить (эта затравка задаёт стиль последующей сгенерированной музыки). Если хочется сгенерировать что нибудь совсем уникальное, а не продолжать существующее произведение, на вход подаётся любая случайная нота. Нейросеть делает прогноз, какие ноты и с какой длительностью могут идти после “затравки”. Прогноз это список пар “нота” - “вероятность”. Из этого списка формируется топ наиболее вероятных нот, и из топа случайным образом выбирается следующая нота. Это нота присоединяется к “затравке”, и на вход нейросети подаётся новый стартовый фрагмент, “затравка + нота”. Нейросеть опять предсказывает следующую ноту, она опять присоединяется к стартовому фрагменту, и такой цикл повторяется много раз, пока не сгенерируется музыка достаточной длительности. Собственно, это всё. Никакой магией и искуственным интеллектом здесь даже и не пахнет.

Музыка и инвесторы

Небольшое отступление - попробуем выяснить мотивы людей, генерирующих музыку нейросетью. Мотивы Коупа более-менее понятны: сначала им двигала лень (пусть компьютер пишет оперу вместо меня), затем - любопытство (насколько качественную музыку способна написать Эмма? Смогут ли слушатели отличить её от оригинала?). Мотивы нейросетевиков другие: мы живём в мире победившего капитализма, в котором основная цель любой деятельности это извлечение прибыли. Объём музыкального рынка громаден, и ему ещё есть куда расти, если потребителям предложат что то принципиально новое. Но чтобы завоевать рынок, надо сначала выпустить продукт, вложившись в его разработку, а это означает, что сначала надо продать свои идеи инвесторам. И здесь нейросети позволили обернуть генерацию музыки в намного более красивую упраковку, привлекательную и для инвесторов и для масс-медиа.

Основной принцип - компьютер должен сразу генерировать звук, а не какие то абстрактные ноты, которые мало кто понимает, и к которым нужен ещё исполнитель. Представьте себя на месте инвестора: одно дело, когда ребята показывают тебе кнопку “Make Music”, ты нажимаешь её и слышишь музыку. Сразу хочется дать этим умным ребятам много денег. И другое дело, когда кнопка “Make Music” сгенерирует тебе кучу нот… что с ними делать? Хорошие ли это ноты, может ребята тебя обманывают и подсовывают фальшивку? Непонятно.

Но если просто сгенерировать ноты, а потом их механически “озвучить”, ничего хорошего не получится. Нотная запись это всего лишь абстрактная основа, на которую исполнитель должен наложить собственную интерпретацию, чтобы получилась настоящая музыка. Поэтому, в отличие от предыдущих попыток генерации музыки, нейросети обычно используют в качестве исходного материала для обучения (и выходного формата) MIDI файлы. MIDI это тоже далеко не идеал, но этот формат находится гораздо ближе к физической реализации музыки в виде звука, чем нотная запись.

Трудности перевода

Основная проблема MIDI думаю хорошо всем знакома - действительно качественной музыки в этом формате существует не так много, особенно классики. У нейросетей и у машинного обучения в целом есть эмпирическое правило “Garbadge in - Garbadge out”. Говоря простым языком, из г…на невозможно сделать конфетку, даже с помощью искуственного интеллекта. С другой стороны, классическая музыка очент важна, инвесторы и журналисты больше всего впечатлятся, если нейросеть будет генерировать музыку в стиле Баха или Моцарта, ведь это супербренды, говоря языком маркетинга.

Наиболее радикальным образом решили эту проблему исследователи из проекта Google Magenta. Прежде, чем приступать к генерации музыки, они обучили нейросеть другой задаче: на основе записи исполнения музыки в PCM формате (то есть хорошо всем знакомые waw и FLAC), сгенерировать её представление в MIDI формате. В качестве исходного материала для обучения выступили записи исполнителей на инструментах Yamaha Disklavier. Это электромеханическое пианино, которое издаёт звук традиционным аналоговым способом, но клавиатура полностью электронная. В ходе исполнения инструмент может записывать нажатия клавиш, их продолжительность и силу. Если параллельно ведётся запись исполнения на микрофон с оцифровкой, то получается два синхронизированных представления музыки, одно в PCM, другое в MIDI. Соответственно, можно обучить нейросеть выводить MIDI представление из любой достаточно качественной PCM записи фортепианного исполнения, то есть из FLAC-ов и waw-ов, которых существует великое множество.

Но такой трюк прокатывает только с фортепиано - коммерчески доступных духовых или смычковых инструментов, способных записывать действия исполнителя в цифровом формате, не существует, таким образом обучаться просто не на чем. Поэтому не удивляйтесь тому, что большинство демонстрационных вариантов нейросетей генерирует именно фортепианную музыку.
Хорошим вариантом было бы уйти и от MIDI формата тоже, и обучать нейросеть сразу на PCM записях, тогда можно было бы использовать для обучения хоть всю музыку, когда либо исполненную и оцифрованную человечеством. И кстати выходным форматом тогда тоже был бы PCM, что открыло бы широкие возможности для звукового дизайна, вплоть до моделирования характеристик инструментов и окрасов звучания.
Но в PCM записях содержится слишком много информации (объём MIDI файла в тысячи раз меньше, чем объём такого же по длительности PCM файла в redbook формате), и обучение нейросети потребовало бы гигантских вычислительных ресурсов и огромного количества времени. Поэтому пока этот путь закрыт, но возможно в будущем появятся новые архитектуры нейросетей и новые аппаратные ускорители, которые сделают такое обучение реальным.

Состояние на сегодняшний день.

Самый публичный проект в области генерации музыки, который активно делится своими идеями и разработками, это Google Magenta (они занимаются генеративным искусством в целом, но музыка это их основное направление). У них много любопытных демо:

Еще один пример неплохой генерации музыки - модель MuseNet компании OpenAI:
https://openai.com/blog/musenet

Но, по видимому, OpenAI сейчас испытывает некоторые финансовые трудности (инвесторы начали требовать странного - отдачи от вкладываемых в течение пяти лет денег), и продолжать разработку MuseNet они вряд ли будут.

И, конечно, многочисленные стартапы по генерации музыки. Если честно, то, что генерирует большинство из них, музыкой назвать сложно. Например, известный и распиаренный Mubert - слушать это дольше пары минут лично я не могу. Подозреваю, что они обучались на выборке MIDI из файла trash.zip, найденного на самом днище Интернетов. Но возможно, такая музыка просто не в моём вкусе :slightly_smiling_face:

Более юзабельный сервис - brain.fm. Они не претендуют на генерацию музыкальных шедевров, их продукт это фоновая музыка для работы и для расслабления/засыпания. Можно выбрать из нескольких видов музыки, в режиме ‘Piano’ у меня генерировалось что то моцартообразное и вполне благозвучное. Как они и обещают, эта музыка приятная, но без вовлекатора, чтобы не отвлекать от основного занятия. В некотором смысле это антимузыка, противоположность тому, чего пытается добиться большинство посетителей бара. Но и фоновая музыка тоже важна и нужна.

И самый, на мой взгляд, интересный стартап: AIVA
Музыку, которую генерируют эти ребята, приятно слушать, в ней есть интересные мелодические ходы и даже некоторый мэджик. Ну а после некоторого допиливания руками она звучит, как музыка, написанная вполне приличным современным композитором типа Филиппа Гласса, особенно в исполнении живого оркестра. Вот пример (слушать с 0:30):

Или вот, менее “обработанный напильником” образец:

Пытаются они генерировать и рок, выходит на мой взгляд довольно смешно:

Но всё это образцы после ручной доводки, а что выдаёт Aiva без обработки? Я сам сгенерировал несколько треков, они конечно не такие вылизанные, как демо-образцы, но вполне слушабельные:

Как у Aiva получается такая интересная музыка? Они не раскрывают своих технологий, но их основатель - музыкант и композитор, который понимает, как надо писать музыку, в то время как все другие сервисы сделаны программистами/дата сайентистами, к написанию музыки отношения не имеющими. Мне кажется, в этом и кроется секрет. Стандартная нейросеть будет каждый раз стартовать обучение с абсолютного нуля, как новорождённый. До начала обучения нейросеть не имеет никакого понятия ни о законах гармонии, ни о ритме, ни о чём. Всё это ей предстоит вывести самостоятельно в ходе обучения. Естественно, обучение “с нуля” не слишком эффективно и требует огромных объёмов данных. Если нейросеть снабдить базовыми знаниями законов композиции перед обучением, она сможет обучиться намного лучше. Но чтобы закодировать для нейросети законы композиции, надо для начала самому понимать, что это такое :slightly_smiling_face:. Нужно специальное музыкальное образование - то, чего обычно нет у программистов.

Перспективы

Итак, вытеснит ли искусственный интеллект человеческих композиторов, забудут ли люди настоящего Баха и Моцарта, надо ли бояться?

На мой взгляд, страхи соверешенно беспочвенны. Нейросеть это всего лишь продвинутый электронный попугай, который заучил фразы и даже умеет складывать из них предложения, но не понимает их смысла. Никакого “интеллекта”, подразумевающего саморефлексию, у неё нет, поэтому творческому человеку она не конкурент. В принципе программа Коупа, написанная больше 15 лет назад, и не претендующая на “искусственный интеллект”, генерирует музыку ничуть не хуже. Нейросеть просто облегает процесс и делает его более технологичным: Коуп работал над своей программой на протяжении двух десятилетий, а нейросеть можно обучить за несколько дней, на гораздо большем объёме данных, включающем в себя разные стили разных композиторов.

Хорошая музыка доносит до слушателя некоторый мессадж от её создателя, эмоции, настроение. Нейросеть не имеет обо всём этом ни малейшего понятия, она умеет только хорошо имитировать эмоции, которые были в музыке, на которой она обучалась. С другой стороны нейросеть может быть хорошим помошником композитору. Собственно, ленивый композитор может просто перебирать варианты, которые ему предложила нейросеть, и постепенно выстраивать из них, как из кирпичиков, своё произведение. Думаю, в недалёком будущем появится деление музыки на “hand crafted” и “computer assisted”, музыка первого типа будет цениться выше. Также появятся нейросети-разоблачители, обученные отличать сгенерированную и сочинённую музыку. Ну а плохие композиторы, которые сочиняют музыку на уровне нейросети, будут заниматься чем то более полезным, например пойдут в дворники :wink:

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

И ещё одно перспективное направление. Нейросеть не умеет испытывать эмоции, но своими эмоциями могут поделиться сами слушатели. Если собрать и учесть обратную связь от слушателей (этот трек понравился, а этот нет), можно повысить качество генерируемой музыки. Если такой feedback собирать постоянно и в большом количестве, то фактически слушатели станут соавторами музыки, а нейросеть будет постоянно улучшаться, подстраиваясь под их вкусы. Кажется, именно в этом направлении хочет развиваться Mubert. Посмотрим, что у них получится.

41 лайк

отличный материал!!! :+1:

эта тема похожа на сочинения монгольского композитора Б.Шарава! :grin:

1 лайк

Артур, отличный экскурс! Большое спасибо!

4 лайка

Я сломался на первом же фрагменте Дэвида Коупа. Ничего более жуткого и представить не мог, такой… мощный сбой в Матрице :slight_smile:

Точнее, это как фильм ужасов

Или, знакомые образы, но фигак – попадаешь на Солярис.

Ну… я бы на месте Бетховена обрадовался, что моё дело живёт и мои сонаты пишутся дальше уже без моего участия. Я, так сказать, задал генеральное направление, а дальше оно само… :slightly_smiling_face:
Кстати, Коуп там поразвлекался от души, сгенерировал 5000 хоралов Баха и выложил в свободный доступ :flushed:

1 лайк

Монгольский оркестр отличный, кайфанул :slightly_smiling_face:
А так на чём обучали, то и вылезет на выходе. Попугай он такой…

2 лайка

Генератив скучен. Пока ai не научится импровизировать, не выйдет.

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

Повторение чужих кусков — не импровизация. Импровизация это когда ты в зависимости от миллиона факторов чувствуя движешь звук, а не на основе предыдущего опыта выдавливанешь.

Это как, подключая сознание к космосу? :satellite:
Любое действие, совершаемое человеком, совершается на основе предыдущего опыта, даже если не хочется в этом признаваться. При правильной импровизации мозг просто отключает логическое мышление и работает на уровне подсознания. Если логическое мышление не отключилось - приходится “выдавливать”. Но опыт всё равно нужен, больше опыта (наслушанности) = лучше импровизация.

И да, у нейросети нет сознания, у неё только подсознание, ей проще :slightly_smiling_face:

4 лайка

Артур спасибо!
А нет ссылок на электронку?

В смысле на электронную музыку?

Ну да)

Ставишь на смартфон Mubert и там вся музыка такая )
Aiva тоже умеет электронику, но мне она показалась менее интересной.

1 лайк

Спасибо

Спасибо, очень понравилось.

Отличная статья!
Aviva хорошо умеет развитие темы делать. Не поливать сгенеренным, а аккуратно развивать. Похоже на обучение композитором.
По поводу импровизации-она базируется ина определённых правилах и на предыдущем опыте и ещё на многих моментах.

1 лайк

Очень круто!

@dmitre! Старый юпик был лучше! Как-то даже дисциплинировал :slight_smile: