Введение:

В нынешнюю технологическую эпоху компании из различных отраслей интегрировали технологии в свою повседневную деятельность. Индустрия развлечений, включая такие платформы, как Spotify и Apple Music, также приняла эту тенденцию, особенно в области потоковой передачи музыки. Однако из-за разнообразных музыкальных предпочтений пользователей крайне важно иметь систему, которая может точно идентифицировать различные музыкальные жанры, чтобы облегчить эффективные процессы каталогизации.

Этот проект направлен на разработку модели, способной определять жанр аудиофайла с помощью метода извлечения признаков Mel Frequency Cepstral Coefficients (MFCC).

Извлечение данных/предварительная обработка/очистка:

Аудиофайлы, использованные в этом проекте, представляли собой 30-секундные звуковые клипы в формате WAV, полученные отсюда. После распаковки аудиофайлы были организованы в подкаталоги, каждый из которых содержал 100 файлов, соответствующих 10 различным музыкальным жанрам. Каждый аудиофайл был разделен на 20 кадров, и MFCC каждого кадра были извлечены с помощью модуля Librosa в Питон. Затем эти MFCC были сохранены в словаре и сохранены как файл JSON. Для этого проекта в качестве интересующей функции были извлечены только MFCC.

Исследование/визуализация данных:

Чтобы получить представление о свойствах каждого аудиофайла, был выбран репрезентативный аудиофайл из каждого жанра, и его форма волны была построена с использованием Librosa модуль.

Формы волны:

Форма волны аудиофайла предоставляет ценную информацию об изменении амплитуды во времени. В звуковой инженерии амплитуда относится к вертикальной высоте формы волны, представляющей степень изменения давления воздуха, вызванного звуковой волной. Его можно измерять в Вольтах (В), децибелах (дБ) или Паскаль (Па). Более высокие значения амплитуды означают более громкий звук или более высокую интенсивность звука.

Из построенных сигналов видно, что поп, хип-хоп и рок демонстрируют постоянную амплитуду 1,0 со случайными всплесками, что указывает на высокую интенсивность звука. Далее следуют жанры джаз, диско и кантри. близко с амплитудами немного ниже предыдущей группы, что указывает на столь же высокую интенсивность звука. Блюз, регги, металл и классические жанры имеют амплитуду от 0,5 до 0,6, а классические жанр с наименьшей амплитудой 0,2. Исторически сложилось так, что классическая музыка известна своим успокаивающим тоном и относительно более низкой интенсивностью.

Кепстральные коэффициенты Mel Frequency (MFCC):

Кепстральные частотные коэффициенты Mel (MFCC) широко используются в обработке аудиосигналов и распознавании речи для извлечения признаков. Они предназначены для представления характеристик слуховой системы человека и сбора соответствующей информации о спектральном составе аудиосигнала.

MFCC обеспечивают сжатое представление спектральных характеристик аудиосигнала, выделяя основные особенности, связанные с фонетикой и тембром. Из анализа видно, что жанр хип-хоп демонстрирует самую высокую концентрацию MFCC, за которым следует Жанры металл и кантри.

Машинное обучение:

На протяжении многих лет для классификации музыкальных жанров использовалось несколько моделей машинного обучения, таких как Машина опорных векторов (SVM) и К ближайших соседей ( КНН). Однако ни один из них не добился лучших результатов по сравнению с Сверточной нейронной сетью (CNN).

Понимание CNN:

Сверточная нейронная сеть – это особый тип архитектуры нейронной сети, используемый в глубоком обучении, целью которого является воспроизведение человеческого процессы обучения. CNN в основном применяются для обработки изображений и идентификации объектов и задач распознавания. strong> Нейронная структура CNN напоминает лобную долю человеческого мозга. Он состоит из трех основных слоев: сверточный слой (где происходит основная часть вычислений), слой объединения ( который уменьшает количество входных параметров) и полностью связанный слой (отвечает за классификацию изображений). По мере того, как CNN переходит от сверточного уровня к полностью связанному уровню, сложность сети возрастает. Эта растущая сложность позволяет CNN постепенно идентифицировать более крупные части и более сложные функции изображения, пока не будет достигнута желаемая классификация.

Внедрение CNN:

Хотя CNN обычно используются для задач, связанных с изображениями, теперь мы сталкиваемся с проблемой классификации музыкальных жанров. Итак, как мы можем адаптировать CNN для этой цели? Решение заключается в представлении аудиофайлов с помощью функции MFCC. Следовательно, входная форма будет четырехмерным массивом, где первое измерение обозначает количество кадров, sвторое измерение представляет собой временные шаги, а третье измерение означает количество коэффициентов MFCC, а четвертое измерение указывает количество каналов (в данном случае – 1). Эта настройка похожа на изображение в градациях серого. После ввода данных в модель мы приступаем к компиляции модели и инициируем процесс обучения. Нажмите здесь, чтобы увидеть реализацию модели CNN.

Оценка модели на данных обучения и проверки

Этот график иллюстрирует производительность модели после 50 эпох, подчеркивая различия между обучающими данными и проверочным набором. Видно, что потери в обучающих данных немного ниже по сравнению с проверочным набором. Кроме того, показатели точности, воспроизводимости и полноты обучающей выборки неуклонно растут и сходятся на уровне 97 %, 97 % и 96% соответственно. Однако достоверность, воспроизводимость и полнота проверочного набора демонстрируют колебания без явной сходимости, достигая значений 83%, 88% и 79% соответственно. Эти результаты показывают, что модель демонстрирует лучшее обобщение на обучающем наборе по сравнению с проверочным набором.

Оценка модели на данных тестирования

При оценке тестового набора с использованием модели было замечено, что потери тестовых данных остаются выше. Кроме того, при сравнении оценок правильности, воспроизводимости и отзыва между данными обучения и тестирования становится очевидным, что все они демонстрируют снижение примерно на 15 %, 10% и 18% соответственно.

Заключение

Представляя аудиофайлы в виде изображений и используя сверточные нейронные сети (CNN) для глубокого обучения, мы добились значительного прогресса. Однако важно отметить, что производительность на тестовых данных может быть не такой замечательной, как на обучающих данных. Тем не менее, есть возможности для улучшения путем точной настройки гиперпараметров для улучшения наших результатов. В любом случае, вы должны похвалить себя за достижение этой стадии проекта.

Статья Ажекве Мозеса Занзана