
音频的模式识别包括了几个主干任务如音频标注(audio tagging)、声学场景分类(acoustic scene classification)、和声音事件检测(sound event detection)。本文主要通过几篇论文的研究[1][2][3]结合自己的一些实验,汇总一些音频模式识别或声音感知领域中常用的方法与技巧。在PANNs: Large-Scale Pretrained Audio Neural Networks for Audio Pattern Recognition 论文中,作者详细对比了各种神经网络结构在音频标记性能和计算复杂度之间的关系;同时,作者还提出了 Wavegram-Logmel-CNN 的网络结构,在190万音频样本的 AudioSet 上mAP为0.439;最后,作者将PANNs迁移到其他音频模式识别的任务上,均达到了当时SOTA的性能。
1、音频标记任务(Audio Tagging)
音频标记是音频模式识别的一项基础任务,用来预测、感知音频中出现的事件、类别或是所处的环境等等。我们以音频标记任务为实验对象来探究各个参数对其性能的影响。
1.1 CNN
[1]中首先对比了不同CNN网络结构在音频标记上的性能。

文中研究对比了4种不同的CNN网络结构,分别是VGGish的baseline系统,与CNN6, CNN10, CNN14。
• VGGish:包含了3*3kernel size的CNN layer和2*2的MP(Max Pooling);
• CNN6:包含了4个CNN layer、每个卷积层的kernel size为5*5,基于AlexNet;• CNN10:包含了4个CNN block,每个Block由2层3*3kernel size的CNN layer组成,Block后接了一个2*2的Pooling(Mean Pooling),最后使用2*2的Global Pooling。
• CNN14:相较CNN10多了2个CNN Block。并且全连接维度由CNN10中的512变化为2048.
1.2 ResNets
在CNNs之后,[1]对比了不同的ResNets结构,ResNets在各种模式识别任务中的表现是优于CNNs的。

ResNets中首先是使用2个3*3的卷积层和一个下采样Pooling,随后实现了3种不同深度的ResNets结构:
• ResNets22与ResNets38的主要不同在于BasicB(BasicBlock)的个数不同,ResNets22包含了8个BasiceB,而ResNets38共包含了16个BasicB;
• ResNets38与ResNets54的主要不同为Block的不同,在ResNets54为实现残差(residual block)结构的模组。
1.3 MobileNets
MobileNets是轻量化网络的代表,与CNNs和ResNets不同的是,MobileNets运行的设备主要为移动端设备。

MobileNets在AudioSet上的标记任务主要分成了两组对比试验:MobileNetV1和MobileNetV2。区别在于 V1Blocks 和 V2Blocks 是在MobileNet 卷积块中的实现与CNN layer的个数不同。
1.4 一维卷积(One-dimensional CNNs)
现在大多数的音频标记(audio tagging)算法都是基于 log melspectrogram,这是一种基于先验的人工特征,具有较强的鲁棒性,但同时也会丢失一些相位信息。为了能够直接从原始波形文件中提取到更具表达性和辨别性的丰富特征,一维 CNN被提出用于end-to-end的音频模式识别,分别应用在了声学场景分类、音乐标签等,并都取得了不错的效果。
1) DaiNet[4]:DaiNet使用了kernel为 80 和步长(stride)为4的全卷积(fully convolutional)结构。

2)LeeNet[5]:与采用大内核的 DaiNet 不同的是,LeeNet使用了更细粒度的采样输入,使用了大小为3的 kernel。

3) Res1dNet:[1]为 AudioSet 音频标记任务创作的一种1D CNNs. a) 将 LeeNet 扩展到更深的结构(24层);b)用kernel size 为3的残差模块(residual block)替换LeeNet中的卷积块。第一和第二个卷积块的卷积层的膨胀系数(dilations)分别为 1 和 2,以增加对应的感受野。在每个残差块之后使用下采样。通过叠加 14 和 24 个残差块,分别得到Res1dNet31、Res1dNet51两个网络结构。
1.5 Wavegram CNN
在之前的 1D CNN系统中都没有使用过log melspectrogram的特征作为识别的输入因此他们没有够捕获频域特征信息的能力。在[1]中,作者提出Wavegram-CNN 和 Wavegram-Logmel-CNN用于AudioSet的音频标记任务。Wavegram-CNN是一个能够捕获时频域信息的音频标记系统。在使用1D CNN捕获提取时域信息之后,与频域特征melspectrogram相融合,输入到后续网络中进一步提取相关分类信息。

2、数据处理 Data Processing
AudioSet的数据处理包括了数据均衡(data balanceing)和数据增强(data augmentation)。其中,数据均衡用于解决数据长尾分布、类间数据不均衡的问题,数据增强则用于扩充数据集,增加模型鲁棒性和防止过拟合。
2.1 数据均衡
AudioSet中数据不均衡的问题较为严重。例如,有90+w 个“speech”类别的音频样本和 “music”,而“toothbrush”的样本只有数十个。在DNN训练期间,如果没有数据均衡策略,在一个 mini-batch 中的样本可能只有一个类别。这会导致 DNN 拟合到具有数量优势的样本类别上。为了解决这个问题,在训练时需要一种均衡采样策略。
2.2 数据增强
从广义上来讲,统计学习中的数据增强技术大概分为两种。第一种数据增强算法是以各种信号转换方法为基础的。常用的音频信号转换包括时间拉伸(time stretching)、音高变换(pitch shifting)、动态范围压缩(dynamic range compression)以及添加随机噪声等。其中Mixup数据增强方法合成了新的训练数据。mixup方法可以作用在raw wav上和input feature上,在[1]中,作者对比了在log melspectrogram 和 raw waveform性能上的差异。SpecAugment是从计算机视觉领域借鉴的方法,在时间维度和频率维度上被扭曲或者特征矩阵被随机掩蔽掉。
第二种数据增强技术是从无到有开始合成新的数据实例,与其说是数据增强,倒不如说数据生成。最常见的合成方法是基于生成对抗网络 (GAN)。
3、迁移方法
在探究对下游任务哪一种方法最有效时,[1]对比了三种不同的方法。

a)基于AudioSet完全从零开始训练一个DNN。所有参数都是随机的初始化。该系统作为baseline用作与其他迁移学习任务进行横向比较。,其中输入 [公式]
b) 在新的任务(NewTask)上,使用 a)中的DNN 作为特征提取器。提取bottleneck的embedding向量送入到新任务的分类其中。值得注意的是,在训练阶段,特征提取器也就是a)中的DNN的参数是不可训的,只有新任务的分类器中的参数是可更新梯度的参数。
c) Finetune a)中的DNN。在c)的任务中,使用与a)相同的DNN,只是最后的分类任务不同,初始化为a)中的DNN,与b)不同的是,c)中的所有参数都是可更新梯度的。
4、实验结果
4.1 AudioSet
AudioSet 是谷歌在2017年开源的一个具有多级标签的大规模音频数据集,共有 527 个声音类别。训练集包括 2,063,839 个音频片段,包括 22,160 个“平衡子集”(balanced subset) 音频片段,每个类别至少有 50个音频片段的样本。评估集(evaluation set)由 20,371 个音频片段。 在[1]实验中所使用的训练集为 1,934,187 (94%) 个音频片段, 包括 20,550 (93%) 个平衡音频训练集和 18,887 个音频片段的评估数据集。所有的音频归一化为10s,32 kHz。频域特征STFT的参数使用 1024 window size 的“Hamming Windowhop size 为 320 个采样点。这套的参数每秒会产生100帧的数据。随后使用 64 mel 滤波器组来计算 log melspectrogram。mel bank 的下限和上限截止频率为 50 Hz 和 14 kHz,目的是去除低频噪声和一些混叠效果。
AudioSet 上的音频标记任务的结果
1) TABEL 4 展示了在AudioSet数据集上音频标记任务与其他方法的对比。在之后的实验中,以CNN14作为baseline来探究各种超参数对 AudioSet 音频标记任务的影响。

在表4中,随机猜测(Random guess)的方法 mAP 为 0.005,AUC 为 0.500,d-prime 为 0.000。CNN14 系统实现了 0.431 的 mAP,在所有的系统中取得了最好的性能。在图4(a)中对比了使用 CNN14 作为backbone构建的 Wavegram-Logmel-CNN 与 CNN14 、MobileNet做对比的方法。

2) Class-wise 性能:图3展示了使用 CNN14 系统的不同声音类别的class-wise AP。图3中的第一张图是训练集中样本数量排名前10的音频类别所对应的分类的AP,这10类有音乐music-937,780、人声speech-937,432、车辆Vehicle-122,231等,横坐标代表的是训练过程中迭代的次数。图3中的第二张和第三张图分别是样本数量排名第250-260与517-527音频类别的AP。这组对比实验表明模型对类别 AP 通常与训练数量不相关。在图12中,绘制了所有 527 个声音类的 mAP ,它显示了 CNN14、MobileNetV1 和 Wavegram-Logmel-CNN 系统在音频标记任务上的表现。图3与图12表明某些声音类别的平均精度更容易高于其他的类别。 例如“bagpipe”之类的AP可以达到 0.90,而“mouse”的精确度却小于0.20。作者给出的一种解释是声音类别之间的标注难度不同。此外,音频标记任务的性能并不总是与训练集的数量和标签质量相关[1]。

3)数据均衡(Data balancing):图 4(b) 对比了 CNN14 系统的在数据均衡为和未作数据均衡策略下的性能对比。蓝色曲线表明在没有数据均衡的情况下训练DNN需要很长时间。绿色曲线表明,通过数据均衡策略,系统在有限的训练迭代中收敛得更快。此外,经过 190 万个训练样本的系统比只用2 万个平衡子集训练的系统性能更好。 表5展示了CNN14系统在数据均衡的 mAP 为 0.416,高于没有数据均衡的(0.375)。

4)数据增强(Data augmentation):混合数据增强在训练过程中起着重要作用。 默认情况下,我们在 log mel 谱图上应用 mixup。 图 4(b) 和表 V 显示了使用 mixup 和数据增强训练的 CNN14 系统达到了 0.431 的 mAP,性能优于没有使用数据增强对比试验(0.416)。 同样,在均衡子集上进行训练时,分别是 0.278 的 mAP与0.221mAP。此外,作者还探究了在时频域上做mixup对性能带来的影响,在 log melspectrogram上的mixup达到了 0.431 mAP,而在时域波形中的mixup为0.425。
5) Hop size 的大小:hop size是相邻样本之间的非重叠部分。较小的 hop size 在时域上会产生较高的时域分辨率。[1]探究了使用不同的 hop size 对 CNN14 性能的影响。实验中对比了 1000、640、500 和 320 的 hop size,这些分别对应 31.25 ms 、20.00 ms、15.63 ms和 10.00 ms 的时域分辨率。表 VI 展示了不同的 hop size 和对应的mAP之间的关系。

6)Embedding 维度:Embedding 表征音频的向量。 在CNN14 中,Embedding的默认特征维度为 2048。在表VII中对比了embedding不同的取值所对应的不同mAP。

7) 训练数据量:[1]探究了用随机选取部分的训练数据对音频标记任务性能的影响。图4(d)和表VIII显示使用80%的样本训练和100%的样本,mAP从 0.431 下降到 0.426(下降 1.2%),当 CNN14 使用 50% 的数据训练,降低到 0.406(5.8% 下降),结果表明训练数据量对训练很重要。

8) 采样率:图 4(e) 和表 IX 显示了使用不同样本训练的 CNN14 系统的性能速度。使用 16 kHz 录音训练的 CNN14 系统达到 0.427 的 mAP,类似于(在 1.0% 以内)CNN14 系统以 32 kHz 的采样率进行训练。在另一方面,使用 8 kHz 音频训练的 CNN14 系统达到了 0.406 的较低 mAP(低 5.8%)。这表明在 4 kHz - 8 kHz 范围内的信息对音频标记的性能提升是有帮助的。

9) Mel bins:图 4(f) 和表 X 显示了在CNN14 中,使用用不同数量的 mel bins训练对系统性能的影响。在 32 mel bins 时实现了 0.413 的 mAP,相比之下,64 mel bins 为 0.431,使用128 mel bins 为 0.442。这个结果表明尽管计算复杂度会随着 mel bin 的数量线性增加,但是依然可以使用更高维度的 mel bin 来提高系统的性能。在其他实验中,默认使用 64 mel bin 来提取 log melspectrogram。

10) CNN 层数:我们研究了 6、10 和 14 层 CNN 系统的性能,如第 2-A 部分所述。表 XI 显示 6-、10- 和14 层 CNN 实现了 0.343、0.380 和 0.431 的 mAP。这一结果表明具有更深的CNN 架构比浅层CNN 架构能达到更好的性能。

11) ResNets:以 ResNets 来研究更深的DNN的性能。表 XI 显示了 ResNet22系统所达到的 0.430 的 mAP,相较与 CNN14系统。 ResNet38 实现了 0.434 的 mAP,略胜于其他系统。有意思的是, ResNet54 只达到了 0.429 的 mAP,没有进一步的提升。
12) MobileNets:表 XI 展示了 MobileNetV1 达到了 0.389 mAP,比 CNN14 系统的 0.431 低 9.7%。而乘法和加法(multi-adds)的op次数和参数只有CNN14的 8.6% 和 5.9%。 MobileNetV2 系统实现了 0.383 的 mAP,比 CNN14 低 11.1%,并且是比 MobileNetV1 计算效率更高,其中multi-adds 和参数的数量只有 CNN14的6.7% 和 5.0%。
13) 1D CNNs:表 XI 显示了一维 CNNs 的性能。具有 18 层的 DaiNet达到了 0.295 的 mAP。具有 11 层的 LeeNet11 实现了 0.266 的 mAP。同样,[1]改进的 LeeNet24 将 LeeNet11 的 mAP 提高到 0.336。Res1dNet31 和 Res1dNet51也分别达到了 0.365 和 0.355 的 mAP,并且在1D CNNs 系统中是表现最好的 CNN 系统。
14) Wavegram-Logmel-CNN:Wavegram-CNN 系统实现了 0.389 的 mAP,优于最好的之前的一维 CNN 系统 (Res1dNet31)。这表明 Wavegram 是一个有效的网络结构。此外, [1]中提出的Wavegram-Logmel-CNN 系统在所有的系统中达到了最高的 AP—0.439。
15) 复杂性分析(Complexity analysis):multiadd 和参数的数量是复杂性的两个重要因素。表 XII 的中间一栏显示了multi-add 和参数的数量。

文章来源知乎,本文作者:茶多酚老爹
