Обзор математических методов для генерации музыкальных композиций | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 20 марта, печатный экземпляр отправим 24 марта.

Опубликовать статью в журнале

Авторы: , ,

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №52 (342) декабрь 2020 г.

Дата публикации: 26.12.2020

Статья просмотрена: 4 раза

Библиографическое описание:

Никитин, Н. А. Обзор математических методов для генерации музыкальных композиций / Н. А. Никитин, В. Л. Розалиев, Ю. А. Орлова. — Текст : непосредственный // Молодой ученый. — 2020. — № 52 (342). — С. 36-39. — URL: https://moluch.ru/archive/342/77077/ (дата обращения: 07.03.2021).



В данной работе описываются различные математические методы для генерации музыкальных композиций — вероятностные методы, грамматические методы, биологические методы и методы, основанные на машинном обучении.

Ключевые слова: автоматическая генерация музыки, грамматические методы; биологические методы; методы искусственного интеллекта.

Сейчас публикуется множество работ, направленных на автоматическую генерацию музыкальных композиций. Большая часть работ так или иначе использует один из математических методов (или их совокупность) для генерации музыки. Целью данной работы является систематизация основных методов алгоритмической композиции для дальнейшего упрощения процесса поиска и выбора наиболее подходящего метода. Существует большое количество математических методов для генерации музыкальных композиций с использованием компьютеров. Условно все методы алгоритмической композиции можно разделить на следующие группы: вероятностные методы; грамматические методы; биологические методы; методы искусственного интеллекта [1];

Марковские модели

Применение Марковских процессов в генерации музыкальных конструкций впервые было рассмотрено Гарри Ф. Олсоном в 1950 году. Вместе с Генри Беларом он разработал «Электронный музыкальный синтезатор» в 1995 году, первое устройство, которое называлось синтезатором. Олсон проанализировал одиннадцать мелодий Стивена Фостера и сделал Марковские модели первого и второго порядка в отношении нот и ритмов. Также марковские модели для генерации музыкального материала использовали Леджарен Хиллер и Леонард Исааксон в своём произведении «Сюита Иллиака». Янн Ксенакис использовал Марковские модели для генерации звукового материала в 1958 году в композиции «Analogique A» [20].

Марковские модели из-за своей структуры предоставляют только описание контекста зависимостей через вероятности перехода символов в прямой последовательности, это значит, что они лучше подходят для моделирования одномерных символьных последовательностей. Эта структурная особенность Марковских моделей не согласовывается с музыкальной информацией, которая, в основном, добавляет вертикальное измерение, т. е. взаимосвязанные голоса. Возможный способ выявления зависимостей внутри вертикальных структур состоит в применении скрытых Марковских моделей [2].

Несмотря на свои недостатки, Марковские модели хорошо подходят для определённых музыкальных задач, например, для задачи имитации стиля. Тип и качество выходной композиции будет в значительной степени зависеть от свойств корпуса (набора), и может быть хорошо предсказано, в отличие от других процедур, таких как нейронные сети и клеточные автоматы [2].

Порождающая грамматика

Порождающая грамматика — формализм генеративной лингвистики, связанный с изучением синтаксиса. В рамках подхода порождающей грамматики формулируется система правил, при помощи которых можно определить, какая комбинация слов оформляет грамматически правильное предложение. Термин впервые введён в научный оборот американским лингвистом Ноамом Хомским в конце 1950–х годов. Цель лингвистической теории по Хомскому заключается в том, чтобы объяснить факт поразительно быстрого усвоения родного языка ребенком на основе явно недостаточного внешнего стимула, то есть той информации, которая может быть извлечена из речи окружающих [3].

Рассмотрим пример составления грамматических правил и генерации новой строки по этим правилам. Возьмем обычную строку: ABCDEFGIKFHLEFJ. И начнем строить для нее грамматику, начав, скажем, с символа F (вообще это нужно проделать для каждого символа). Нам нужно написать правило, которое бы указывало нам, какую букву следует поставить, если мы вдруг встретили символ F. Как видим, мы не можем создать такое правило, так как лишь по одной букве не можем определить, что же должно идти следом: после F может идти как G, так и H или J. Поэтому мы добавляем контекст к нашей букве F, контекст — это символы, окружающие F. Возьмем по одной букве перед F. Получим EF и KF. Контекстом для буквы F здесь служат буквы E и K. Мы с вами только что расширили контекст на один символ, поэтому данный метод построения грамматики называется методом динамически расширяющегося контекста. Это правила для буквы F, в зависимости от ее контекста мы выбираем какое-то одно правило. Процесс генерации новой строки выглядит следующим образом: дана начальная последовательность, например, ADEF. Начинаем брать буквы с конца. F — нет правила с такой левой частью, расширяем контекст — EF, опять нет, расширяем — DEF, есть такое правило, ставим G, получаем ADEFG. Начинаем все сначала: берем букву G и т. д. столько раз, сколько нам нужно [3].

Порождающая грамматика хорошо подходит для задачи генерации музыкальной партитуры в виде нот, однако требует определения чётких формальных правил построения композиции, что является крайне трудоёмким процессом. Подробно применение данного метода описано в [3].

Сети Петри

Сети Петри — это математический аппарат для моделирования динамических дискретных систем. Впервые описаны Карлом Петри в 1962 году. Сеть Петри представляет собой двудольный ориентированный мультиграф, состоящий из вершин двух типов — позиций и переходов, соединённых между собой дугами. Вершины одного типа не могут быть соединены непосредственно. В позициях могут размещаться метки (маркеры), способные перемещаться по сети. Событием называют срабатывание перехода, при котором метки из входных позиций этого перехода перемещаются в выходные позиции. События происходят мгновенно, либо разновременно, при выполнении некоторых условий [4].

В алгоритмической композиции сети Петри впервые применили Гоффредо Хаус и Альберто Саметти, разработав систему ScoreSynth. С помощью взаимосоединения «музыкальных объектов» (мест) с некоторым функциями перехода, система может генерировать и манипулировать данными в формате MIDI. «Музыкальные объекты» состоят из последовательностей нот с соответствующей информацией о названии ноты, её длительности, скорости и канале MIDI. Поскольку в традиционной сети Петри временное структурирование последовательностей не кодируется (поскольку переходы срабатывают в тот момент, когда они связаны с отмеченным местом на входной стороне), места снабжены счетчиком, который обеспечивает доступ к информации соответствующего «музыкального объекта» только после определенного периода времени [4].

Системы Линденмайера

Л–системы лежат на стыке таких сфер математики, как эволюционные методы и формальная грамматика. Л–системы были описаны в 1968 году венгерским ботаником Аристидом Линденмайером для изучения развития простых многоклеточных организмов, позже базис Л–систем был расширен для моделирования сложных ветвящихся структур — разнообразных деревьев и цветов. Впервые для решения задач автоматической генерации музыки их применил в своей диссертации 1996 года американский программист и композитор Люк Дюбуа [5].

В основе работы Л–систем лежит набор правил замещения, рекурсивно применяющийся на начальную строку символов и интерпретирующий конечную строку, как структурные элементы организма. Правила замещения определяют, как каждый конкретный символ в текущем поколении должен быть перемещен.

Применение Л–систем для генерации алгоритмических композиций подразумевает использование вместо символов определенных музыкальных параметров. Например, профессор Португальского университета Педро Пестана назначает алфавит из семи символов — нот, входящих в гамму до мажора, а правила замещения определяет исходя из матрицы переходных вероятностей [5].

Другим воплощением Л–систем в алгоритмической композиции является программа LMUSE Дэвида Шарпа, в которой различные музыкальные параметры, такие, как высота, продолжительность, и громкость могут быть назначены различным компонентам положения, толщины линии и т. д. В данную программу заложено около 20 команд направлений, 10 команд движений, а также около 10 команд, относящихся только к музыкальному воплощению. Например, высота ноты определяется исходя из текущего положения черепахи в данный момент, продолжительность ноты — из длины нарисованной линии, динамика — из вектора поступательного движения [5].

Генетический алгоритм

Генетический алгоритм (ГА) — это эвристический алгоритм поиска, используемый для решения задач оптимизации и моделирования путём случайного подбора, комбинирования и вариации искомых параметров с использованием механизмов, напоминающих биологическую эволюцию [6].

В общем смысле работа генетического алгоритма начинается с применения эквивалента биологического образования новых генов на пространство случайно распределенных решений для нахождения в итоге оптимального набора [6].

Решения представлены хромосомами, а строки аллель — строками чисел, и задача рекомбинации генов заключается в создании новых аллелей из аллели, взятых от родительских хромосом посредством применения генетических операторов, в большинстве случаев это — мутация и скрещивание. Перебирание хромосом продолжается до достижения определенного условия экстремума. Генетические алгоритмы в задаче алгоритмической композиции разделяются по виду использованной фитнесс–функции — степень приспособленности хромосом может быть оценена исходя из заранее заданных определенных условий, либо может быть непосредственно человеком при прослушивании и субъективной оценке [6].

Целесообразность применения ГА для моделирования музыкального творчества обосновали профессор кафедры компьютерных наук Гонг–Конгского университета Эндрю Хорнер и профессор кафедры индустриальной инженерии Университета Иллинойса Дэвид Голдберг в 1991 году [6].

Первыми успешными исследованиями в области применения генетических алгоритмов в генеративной музыке можно считать изыскания Джона Бильса — профессора Рочестерского института технологий (Нью–Йорк, США). Он использовал ГА для имитации джазовой импровизации в собственном ПО GenJam (Genetic Jammer — Генетический Джэммер). Данная программа читает заранее подготовленные с помощью программы Band–In–A–Box MIDI файлы, включающие партию аккордов пианино, баса, ритм–секции, и генерирует соло. Оценка происходит посредством человеческого восприятия. Посредством команд «g» или «b» («good» or «bad») слушатель оценивает сгенерированные куски как удачные или нет [6].

Клеточные автоматы

Клеточные автоматы были впервые описаны математиком Джоном фон Нейманом в качестве модели биологического самовоспроизводства. Это дискретные динамические системы, поведение которых полностью определяется в терминах локальных зависимостей. Пространство представлено равномерной сеткой, каждая ячейка или клетка которой содержит несколько битов данных; время идет вперед дискретными шагами, а законы мира выражаются единственным набором правил, скажем, небольшой справочной таблицей, по которой любая клетка на каждом шаге вычисляет своё новое состояние, основываясь на состояниях её близких соседей [7].

Самым известным воплощением клеточных автоматов для генерации алгоритмических композиций является CAMUS. CAMUS генерирует мелодию на основе двух клеточных автоматов: игра в «жизнь» Джона Неймана и Demon Cyclic Space Больцмана [7].

CAMUS оперирует трехмерными версиями обоих автоматов параллельно. При каждом шаге живые ячейки Игры в жизнь используются для определения четырехнотных аккордов, в то время, когда координаты живых клеток определяют интервалы сыгранных нот. Базовый тон выбирается стохастическими методами (Марковскими цепями), и координата x живой клетки определяет интервал до следующей самой высокой ноты, координата y — дает полутоновый интервал, и, наконец, координата z дает последний интервал от второй самой высокой ноты до самой высокой [7].

Искусственные нейронные сети

Искусственные нейронные сети (ИНС) — математические модели, а также их программные или аппаратные реализации, построенные по принципу организации и функционирования биологических нейронных сетей — сетей нервных клеток живого организма [8].

В 1970-х и 1980-х годах искусственные нейронные сети использовались для анализа музыкальных композиций, создавая искусственные модели когнитивных теорий музыки, но позднее они были адаптированы для генерации музыкальных композиций. Первый пример такой сети использовал трехслойную рекурсивную искусственную нейронную сеть, предназначенную для создания временной последовательности выходов, кодирующих монофоническую мелодию. ИНС обучалась на одной или нескольких музыкальных композициях, и связывала одну входную конфигурацию с выходной временной последовательностью соответствующей композиции. Затем, при настройке входных конфигураций, отличающихся от используемых во время тренировки, создавались мелодии, интерполированные между теми, которые использовались во время тренировки. Если во время тренировки использовалась только одна мелодия, результат был экстраполяцией [8].

Сейчас наиболее часто используемой архитектурой нейронной сети для генерации музыкальных композиция является рекуррентная искусственная нейронная сеть, которая используется в Magenta, BachBot и DeepJazz.

Системы, основанные на знаниях

Под системами, основанных на знаниях, понимаются различные системы, основанные на правилах, которые используют представления знаний в виде более или менее структурированных символов. Поскольку знания о музыкальных композициях традиционно были структурированы, как наборы более или менее формализованных правил обработки музыкальных символов, то системы, основанные на знаниях и правилах, являются естественным способом реализации алгоритмической композиции. Наиболее известной ранней работой по алгоритмической композиции с использование методов, основанных на знаниях, является произведение «Сюита Иллиака», в которой использовались знания, для описания классических правил контрапункта. Из-за этого этот раздел в основном ограничивается описанием систем с сильным фундаментом в искусственном интеллекте (как экспертных систем), обойдя в известной степени работы композиторов, которые трудно классифицировать, из-за нерегулярности их подходов [9].

S. Gill представил первое применение классической AI-эвристики к алгоритмической композиции: он использовал иерархический поиск с обратным отслеживанием для обработки набора композиционных правил, извлечённых из двенадцатилетнего опыта Шенберга. M. T. Thomas разработала основанную на правилах систему для согласования хоровых композиций, состоящих из четырех частей, реализованную в Lisp15, с целью разъяснения музыкальных правил, которые она преподавала своим ученикам. Позже она разработала еще одну систему правил для простого создания мелодии в индийском стиле регги [9].

Сейчас, методы, основанные на знаниях, широко используются для генерации музыкальных композиций, однако, как правило, лучшие результаты получаются при совместном использовании таким методов с другими методами алгоритмической композиции [9].

Заключение

В данной работе были рассмотрены основные математические методы генерации музыкальных композиций. Каждый из них обладает своими достоинствами и недостатками, например, марковские модели хорошо подходят для задачи имитации стиля, а порождающая грамматика требует трудоёмкого процесса определения правил. На текущий момент работы, направленные на автоматизацию процесса генерации музыки, исследуют возможность генерации композиций с использованием нейронных сетей, поскольку именно данный метод выявить наиболее сложные взаимосвязи, характерные музыкальным произведениям, которые не видны человеку явно, а также данный метод сравнительно прост в реализации. Именно данный метод генерации композиций используют программы Magenta от Google, BachBot, AIVA и другие.

Работа выполнена при частичной поддержке РФФИ и администрации Волгоградской области (гранты 18–07–00220, 19–07–00020, 19–47–343001, 19–47–340003, 19–47–340009, 19–47–340013, 19–47–343002, 19–37–90060, 20–07–00502).

Литература:

  1. Doornbusch, P. Gerhard Nierhaus: Algorithmic Composition: Paradigms of Automated Music Generation / P. Doornbusch // Computer Music Journal. — Volume: 34, Issue: 3. — 2014.
  2. Frankel-Goldwater, Lee. 'Computers Composing Music: An Artistic Utilization of Hidden Markov Models for Music Composition.' jur: Journal of Undergraduate Research, v. 5, no. 1–2 (2012), pp. 17–20.
  3. Donya Quick and Paul Hudak. Grammar-based automated music composition in Haskell. In Proceedings of the first ACM SIGPLAN workshop on Functional art, music, modeling & design, FARM ’13, pages 59–70. ACM, 2013.
  4. Kordic, V. Petri Net, Theory and Applications / V. Kordic. — Publisher: I-Tech Education and Publishing, 2013. — pp. 544
  5. Hendrik Vincent Koops, Jos´e Pedro Magalh˜aes, and W. Bas de Haas. A functional approach to automatic melody harmonisation. In Proceedings of the First ACM SIGPLAN Workshop on Functional Art, Music, Modeling & Design, FARM ’13, pages 47–58. ACM, 2013.
  6. Черешнюк И. Р. Использование генетических алгоритмов в музыкальной композиции / Черешнюк И. Р., Айдаров Ю. Р. //Проблемы современной музыки: сб. материалов Пятой Международной науч.-практ. конференции (г. Пермь, 15–16сентября 2012 г.) / под. ред. Н. В. Морозовой; Перм. гос. гуманит.-пед.ун-т. — Пермь, 2012. — 271 с., с.27–34.
  7. Payami, R. Csound and object-orientation: designing and implementing cellular automata for algorithmic composition / R. Payami // Ways Ahead: Proceedings of the First International Csound Conference. — Cambridge Scholars Publishing, 2013. — pp. 48–56
  8. Fernández, J. D., Vico, F. AI Methods in Algorithmic Composition: A Comprehensive Survey / J. D. Fernández, F. Vico // Journal of Artificial Intelligence Research. — № 48. — Málaga, Spain, 2013. — pp. 513–582
  9. Abburu, S. Knowledge based Semantic Annotation Generation of Music S. Abburu // International Journal of Computer Applications (0975–888). — Volume 47, No.8, June 2012. — pp. 8–12
Основные термины (генерируются автоматически): алгоритмическая композиция, CAMUS, MIDI, композиция, порождающая грамматика, правило, система, сеть, генетический алгоритм, искусственный интеллект.


Ключевые слова

автоматическая генерация музыки, грамматические методы, биологические методы, методы искусственного интеллекта
Задать вопрос