音乐文件风格分类研究

在数字时代,智能手机成为人们携带音乐的主要方式,音乐风格多样。借助深度学习技术,可以为用户提供分类后的音乐列表。本文将介绍如何应用深度学习算法创建模型,将音频文件分类到不同的音乐风格中。在模型训练完成后,还将分析训练模型的性能。

数据集

将使用GITZAN数据集,该数据集包含1000个音乐文件,均匀分布在十种不同的音乐风格中,包括蓝调、古典、乡村、迪斯科、嘻哈、爵士、雷鬼、摇滚、金属和流行。每个音乐文件时长30秒。

流程概述

图01展示了对音乐风格分类任务的方法论概述。将详细讨论每个阶段。训练了三种类型的深度学习模型,以探索和洞察数据。

首先,需要将音频信号转换为深度学习模型兼容的格式。使用以下两种格式:

  1. 频谱图生成:频谱图是信号频率随时间变化的视觉表示。使用librosa库将每个音频文件转换为频谱图。图02展示了每种音乐风格的频谱图图像。
  2. 小波变换:小波变换是一种可以用来分析非平稳信号(如音频)的频谱和时域特性的变换。使用librosa库为每个音频文件生成小波。图03展示了每种音乐风格的小波。

从图02和图03可以看出,将数据视为图像数据。生成频谱图和小波后,应用通用的图像预处理步骤来生成训练和测试数据。每个图像的大小为(256, 256, 3)。

预处理数据后,创建了第一个深度学习模型。构建了一个具有所需输入和输出单元的卷积神经网络模型。CNN模型的最终架构如图04所示。仅使用频谱图数据进行训练和测试。

# CNN模型训练代码示例 model = Sequential() model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(256, 256, 3))) model.add(MaxPooling2D((2, 2))) # ... 其他层 ... model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

只有每种风格的60个样本用于训练。在这种情况下,迁移学习可能是提高CNN模型性能的有用选择。现在,使用预训练的MobileNet模型来训练CNN模型。图06展示了模型的架构图。

在这个实验中,将频谱图和波形数据都输入到CNN模型中进行训练。在这个多模态训练中使用晚期融合技术。图08表示多模态CNN模型的架构。图09显示了模型的损失和性能分数与训练周期的关系。

比较分析

图10显示了所有三种模型的损失和性能的比较分析。如果分析所有三种模型的训练行为,发现基础CNN模型在训练和测试数据的损失值和性能分数上有很大的波动。多模态模型显示出最小的性能变化。迁移学习模型的性能逐渐增加,与多模态和基础CNN模型相比。验证损失值在30个周期后突然上升。另一方面,其他两个模型的验证损失持续下降。

训练完模型后,在40%的测试数据上测试每个模型。为每种音乐风格(类别)计算精确度、召回率和F分数。数据集是平衡的,因此精确度、召回率和F分数的宏平均和加权平均相同。

图11展示了CNN模型在测试数据上的结果。CNN模型能够以最高的F1分数对“古典”风格的音乐进行分类。CNN在“摇滚”和“雷鬼”风格的音乐上表现最差。图12显示了CNN模型在测试数据上的混淆矩阵。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485