Для тех, кто меня не знает — привет! Меня зовут Мэтт, я выпускной в Колумбийском университете и твердолобый парень S.T.E.M.

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

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

Однако это задним числом пришло ко мне только после многих часов усердного прослушивания различных жанров и музыкальных стилей и еще большего количества часов размышлений над тем, что я услышал. Однако как заядлый программист я начал задаваться вопросом: мы знаем, что каждый может развить эти навыки и натренировать свой слух достаточно остро, чтобы получить эти идеи, но можно ли это автоматизировать? Вместо того, чтобы тратить недели и часы, можно ли достичь того же навыка за считанные минуты с помощью машины? Или в практике Sonic Archeology есть негласная аксиома, исключающая программный перевод? Так возникла мотивация для моего проекта полевой работы — возможно ли систематизировать характеристики различных жанров, которые я изучал в течение семестра, и создать алгоритм, способный различать эти характеристики настолько точно, насколько это возможно?

Сбор данных: подход 1

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

В случае с кодификацией регги я решил проанализировать «Legalize It» Питера Тоша. Я искал элементы песни, которые оставались неизменными на всем протяжении. Первым элементом, который соответствовал всем требованиям, был удар ска, который повторялся на протяжении всей песни (а также присутствует в большом количестве других песен в стиле регги). Использование барабанного ритма «одна капля» также представляло интерес, поскольку это один из других основных элементов, который придает песням регги характерную причудливую и беззаботную природу. Однако вскоре я наткнулся на стену. Хотя я обнаружил эти два элемента, обычно было гораздо больше, которые не всегда были одинаковыми. Кроме того, я заметил, что, хотя вокал в этой песне следовал повторяющейся каденции, все же были некоторые неравномерности из-за структуры песни и что каденция менялась в зависимости от того, какую песню я выбрал для анализа. Припевы/звонки и ответы часто разбросаны повсюду, что приводит к дальнейшему искажению последовательных элементов.

Сбор данных: подход 2

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

На этот раз я решил обратиться к сальсе и решил попытаться разбить «Yo Soy La Rumba» Мачито. Подобно подходу регги, я пытался найти определяющие элементы, но вместо того, чтобы найти последовательные музыкальные техники, я решил отточить определенные инструменты. Итак, в случае сальсы я обнаружил, что постоянными элементами были гуиро и колокольчик. Как я узнал в классе, эти два элемента обычно являются хранителями времени для всей группы, что заставило бы меня поверить, что их присутствие поможет определить структуру звуковой волны — оказалось, это тоже не так. Во многих песнях сальсы, в том числе «Yo soy La Rumba», соло на трубе (или фортепиано) затмевают хронометраж гуиро. Всякий раз, когда начиналось соло, гуиро заглушались. Кроме того, я столкнулся с другой трудностью: некоторые инструменты служат сигналами для других инструментов, чтобы они начали или прекратили играть — раскрывая временную зависимость, которая делает этот метод кодификации неосуществимым. Что оставалось неизменным (в большинстве случаев) на протяжении этих соло, так это основные инструменты. Это привело меня к другой идее — извлекать базовые линии для каждого жанра, пропуская песни через фильтр нижних частот (механизм, который пропускает только низкочастотные звуки) и вместо этого передавая их алгоритму. Однако фильтрация привела к неидеальным сэмплам, которые по-прежнему содержали другие инструменты, такие как конги, барабаны и гитары.

Сбор данных: очарование в третий раз

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

После включения моих собственных обработанных данных в уже существующую базу данных латинской музыки, на которую ссылается статья, и удаления жанров, выходящих за рамки класса, а именно Axé, Forró, Sertaneja, Gaúcha или Pagode, я ввел входные данные в алгоритмы.

Кратко о машинном обучении

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

Результаты и обсуждение

Я реализовал три модели машинного обучения: KNN, деревья решений и наивный байесовский алгоритм, а затем ввел наборы, состоящие из сегментов, взятых из начала, середины и конца песни. Часть результатов в процентах достоверности показана ниже.

Я проверил алгоритмы на наборе из сотни песен, но решил включить в алгоритм первые пять песен и их соответствующие результаты.

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

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

Последний результат меня смутил. С относительно высокой уверенностью он отнес сальсе жанр Chan Chan в исполнении клуба Buena Vista Social. Хотя вокальные каденции имеют некоторое сходство с таковыми в жанре сальса, сама песня гораздо менее энергична. Более того, доминирующим инструментом в песне являются конги, а также кубинская лютня, которая последовательно звучит на протяжении всей песни. Что могло сбить с толку алгоритмы, так это то, что в больших частях песен есть соло. И кубинская лютня, и труба занимают «слуховую сцену» примерно от двадцати до тридцати секунд. Возможным объяснением этого ошибочного присвоения может быть метод выборки фрагментов песен. В случае с Chan Chan соло трубы происходит примерно на отметке три минуты десять секунд, которая приближается к концу, в результате чего в большей части сэмпла доминирует труба. В нем также есть соло на лютне в начале-середине.

Если мы включим остальную сотню песен, мои алгоритмы смогли правильно классифицировать жанры песен примерно в 68% случаев.

Заключение и мой окончательный взгляд на вещи

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

Спасибо всем, кто сделал это музыкальное путешествие поистине незабываемым.

Благодарности и ссылки:

Силла, Карлос и Кестнер, Селсо и Керих, Алессандро. (2006). Автоматическая жанровая классификация латиноамериканской музыки с использованием ансамбля классификаторов.

Харрисон, Онел. «Основы машинного обучения с алгоритмом K-ближайших соседей». Medium, На пути к науке о данных, 14 июля 2019 г., directiondatascience.com/machine-learning-basics-with-the-k-nearest-neighbours-algorithm-6a6e71d01761.

«База данных латинской музыки (LMD) - Домашняя страница Карлоса Н. Силла-младшего (Карлос Силла)». Сайты Google, site.google.com/site/carlossillajr/resources/the-latin-music-database-lmd.

Уилсон, Эйдан. «Краткое введение в контролируемое обучение». Medium, На пути к науке о данных, 1 октября 2019 г.,wardsdatascience.com/a-brief-introduction-to-supervised-learning-54a3e3932590.