轻便高效的音频分类神经网络
具体的软硬件实现点击 http://mcu-ai.com/ MCU-AI技术网页_MCU-AI
在过去的几年里,大规模数据集(例如 AudioSet)上的音频分类任务一直是一个重要的研究领域。一些更深层次的基于卷积的神经网络已经显示出引人注目的性能,特别是 Vggish、YAMNet 和预训练音频神经网络 (PANN)。这些模型可用作迁移学习以及特定 音频任务采用的预训练架构。在本文中,我们提出了一 种基于设备上深度学习的轻量级音频分类模型 LEAN。 LEAN 由称为 Wave Encoder 的基于原始波形的时间特 征提取器和基于 logmel 的预训练 YAMNet 组成。我们 证明,结合使用可训练的波编码器、预训练的 YAMNet 以及基于交叉注意力的时间重新调整,可以在下游音频 分类任务上获得具有竞争力的性能,同时占用更少的内 存,从而使其适用于资源受限的设备,例如移动设备、 边缘设备等。我们提出的系统在 FSD50K 数据集上实现 了 0.445 的设备上平均精度 (mAP),内存占用仅为 4.5MB,与同一数据集上的基线设备上 mAP 相比提高 了 22%。
近年来,与语音识别一样,使用原始信号识别声 音类型已成为一个新兴的研究领域。通常,音频 模式识别是由许多任务组成,例如音频标记、声学场景分类、音频分类 和声音事件检测。从实时信号中识别声音类型有 多种用例,例如消除听力障碍、辅助功能、智能 智能手机、改善游戏体验等。基于深度学习的方 法实际上是先进的解决方案来检测数字信号中的声音事件。识别声音的任 务通常需要足够大的数据集,特别是当问题需要 多类多标签分类时。前几年已经发布了几个数据 集,即 Kaggle Free 声音数据集 、 UrbanSound̂8K 和 ESC50。音频分类 任务中最大的突破之一是发布了一个名为 AudioSet [10] 的大规模音频数据集,这是一个公 开可用的数据集,包含对应 527 个类别的 500 小 时的剪辑。数据集基于 Youtube 视频和剪辑。
2020 年,研究社区发布了免费声 音数据集 (FSD50K) ,并在开放许可下提供了原 始文件,以发布大规模开放数据集。我们目前的工 作基于这个 FSD50K 数据集。识别多类多标签数据 集的声音类型是一项复杂的任务。用于此类任务的 鲁棒模型需要能够捕获声音模式的深层且复杂的网 络。受基于视觉的任务的启发,CNN 已 被研究人员广泛用于检测声音模式 、情 感 和语言检测。此类模型通常采用 1 秒 到 10 秒 范围内的固定输 入,并生成用于分类任务的固定大小嵌入。还设计了几个深度且复杂的模型,它 们在 AudioSet 上实现了最先进的性能。
在这项工作中,我们提出了 一种新颖的轻量级网络,称为轻量高效音频分类网 络(LEAN),用于设备上的音频分类。 LEAN 由基于波形的时间特征提取器(称为波编码器)和 基于 logmel 的预训练 YAMNet(作为特征提取 器)和基于交叉注意的时间特征重新对齐方案组成。我们在这项研究中的贡献可以总结如下:
我们提出了一种名为 LEAN 的轻量级设备端 新型网络,它以时间和频率特征作为输入。 我们通过交叉注意力引入了使用预训练嵌入的时 间特征重新对齐方案,这通过略微增加训练参数 来提高性能。
我们表明,尽管内存轻量级和 1 秒更小的帧输入,我们实现了具有竞争力的性 能,GPU 上最佳 mAP 为 0.4677,设备上 mAP 仅 4.5MB 模型为 0.445.
对于我们的系统评估,我们使用免费声音数据集 (FSD50K)。它是一个开放数据集,包含超过 51,000 个声音事件的音频剪辑,并具有从 AudioSet Ontology [25] 中提取的 200 个类。该 数据集所有剪辑的总持续时间为 108 小时。数据 集中的声音剪辑被弱标记,即类的标记是在剪辑级 别而不是帧级别完成的。剪辑有多个标签,持续时 间范围为 0.3-30 秒。音频文件由人声、物声、动 物声、自然声、乐器声等组成。我们采用 FSD50K 数据集,因为它在知识共享许可下免费 提供,并且广泛用于对声音事件检测模型进行基准 测试。FSD50K 数据集分为三个部分,即训练、 验证和评估。我们使用训练和验证分割来进行训 练,微调模型和评估分割来展示我们的结果。为了 对我们的模型性能进行基准测试,我们使用与基线 系统[9]中提到的相同的指标,例如mAP(平均平 均精度)。平均平均精度是类的精度-召回率曲线 下面积的近似值,在处理时更能提供性能信息。
本节描述应用于音频分类的方法。我们提出的端到端架构如图 1 所示。在这里,我们首先介绍用于音 频特征生成的预处理步骤。然后,我们描述我们提 出的 Wave 编码器以及基于 YAMNet 的预训练模 型。然后我们讨论我们提出的基于交叉注意力的特 征重新调整系统。
我们提出的模型中的通道之一(我们称之为右通 道)是基于 CNN 的特征提取器,它捕获给定音 频帧的空间特征。在用于迁移学习的可用的基于 大规模音频数据集的预训练模型中,我们选择 YAMNet [8],而不是 Vggish [7] 和 PANN [4]。 YAMNet 是基于移动网络的架构,采用深度和逐 点卷积。它是一个轻量级预训练模型,拥有近 370 万个权重,在 AudioSet 数据集上进行训练, 并在评估集上实现了 0.306 mAP。虽然与 YAMNet 相比,Vggish 和 PANN 模型在性能方 面都更好,但它们在内存和计算方面都是重型网 络,因此不适合手机和边缘设备等资源限制环 境。
受到 PANN 模型的启发,我们建议使用原始波形输 入来捕获时域特征。在 PANN 模型中,时间特征由 Wavegram 模型捕获,该模型是基于一维卷积的网 络。相比之下,所提出的 Wave 编码器是基于双向 LSTM 的网络。波形编码器采用原始波形输入和输 出学习的时间特征。我们将网络的这一部分称为左 通道。它包含两个双向 LSTM 层,每个层有 128 个单元。由于LSTM需要时序输入,我们首先通过 reshape将原始波形转换为时序数据。重塑层通过 使用 25 毫秒的非重叠窗口将波形分割成补丁,将 波形转换为 2D 时间序列数据。对于采样率为 16K 的 1 秒帧,重塑层输出的 2D 向量为 (40,400)。
我们提出了一种联合模型,使用 Wave Encoder 作为左通道,使用预训练的 YAMNet 和投影层作为右通道。投影层输出嵌入 E yam= e˻,e˼。 。 。 .,en.波形编码器将原始波形数据编码为上下文向 量 C t 。使用以下等式组合两个通道的输出。
E 组合 = 连接(E yam , C t )(1) (1)
FSD50K 数据集上的 性能如下
我们使用 Tensorˢow-GPU 2.3.0 [27] 和 Keras 2.6.0 [28] 进行所有实现。对于我们所有的训练,我们将批量 大小固定为 64,学习率为 1e-4,损失固定为二元交叉 熵。训练进行 40 个时期,每个时期大约需要 1.5 小 时。我们观察到模型通常在最后一个纪元之前收敛得很 好。我们选择具有最高验证 AUC (PR) 的最佳模型。
我们使用 Nvidia GPU GeForce GTX 1080 Ti 11178 MB 卡进行训练和测试。所有模型都经过端到端的训练和测 试。在FSD50K提供的评估数据集上进行测试。为了进行测 试,给定的音频文件被分成 1 秒的块,每个块重叠 50%。 对于每个块,计算原始波形和相应的 log-mel(均值归一 化)并将其馈送到网络。计算块级类别预测分数并平均为获得整个文件的最终分类分数。我们观察到,与非重 叠分割相比,重叠分割具有更好的性能。我们认为这 主要是由于重 叠分割提供了更多数据。