HTS-AT: A HIERARCHICAL TOKEN-SEMANTIC AUDIO TRANSFORMERFOR SOUND CLASSIFICATION AND DETECTION

文章为翻译,仅供学习参考

论文原地址:2202.00874.pdf (arxiv.org)

作者:Ke Chen, Xingjian Du , Bilei Zhu, Zejun Ma, Taylor Berg-Kirkpatrick, Shlomo Dubnov

摘要

音频分类是将音频样本映射到相应标签的重要任务。最近,在这个领域中采用了具有自注意机制的Transformer模型。然而,现有的音频Transformer模型需要大量的GPU内存和长时间的训练,并且依赖于预训练的视觉模型以实现高性能,这限制了模型在音频任务中的可扩展性。为了解决这些问题,我们引入了HTS-AT:一种具有分层结构的音频Transformer,以减小模型大小和训练时间。它还结合了一个词元-语义模块,将最终输出映射到类别特征图,从而使得模型能够进行音频事件检测(即时间定位)。我们在三个音频分类数据集上评估了HTS-AT,在AudioSet和ESC-50上取得了最新的最先进结果,并在Speech Command V2上与最先进结果相当。它在事件定位方面也比先前基于CNN的模型表现更好。此外,HTS-AT只需要先前音频Transformer模型参数的35%和训练时间的15%。这些结果证明了HTS-AT的高性能和高效率。

1.引言

音频分类是一项音频检索任务,旨在学习从音频样本到其相应标签的映射关系。根据音频的类别不同,它涉及声音事件检测 [1]、音乐乐器分类 [2] 等。它为许多下游应用奠定了基础,包括音乐推荐 [3]、关键词检测 [4]、音乐生成 [5, 6] 等。

随着人工智能领域的蓬勃研究,我们在音频分类方面取得了显著的进展。在数据收集方面,许多不同类型的音频数据集(例如AudioSet [7]、ESC-50 [8]、Speech Command [4]等)为模型在不同子任务上的训练和评估提供了平台。在模型设计方面,基于神经网络的模型使得音频分类任务蓬勃发展。卷积神经网络(CNNs)在这一领域被广泛应用,如DeepResNet [9]、TALNet [10]、PANN [11]和PSLA [12]。这些模型利用CNN来捕捉音频频谱图上的特征,并通过设计网络的深度和广度进一步提高性能。最近,通过将Transformer结构 [13]引入音频分类,音频谱转换器(AST)[14]通过自注意机制和来自计算机视觉的预训练模型进一步实现了最佳性能。在本文中,我们通过首先分析AST中尚未解决的问题,对基于Transformer的音频分类模型迈出了更进一步的步伐。

首先,由于Transformer将音频频谱图视为完整的序列数据,AST在训练时需要很长时间,并且占用大量GPU内存。实际上,使用四个12GB的GPU在完整的AudioSet上训练大约需要一周的时间。提高训练速度的一种方法是在计算机视觉中使用ImageNet [15]预训练模型。然而,这也限制了模型在预训练超参数上的应用,降低了其在更多音频任务中的可扩展性。事实上,我们发现在没有预训练的情况下,AST只能达到基准性能(在AudioSet上的mAP=0.366),这引起了我们对其在音频数据上的学习效率的关注。其次,AST使用一个类词元(CLS)来预测标签,导致无法预测音频样本中事件的开始和结束时间。大多数基于CNN的模型通过经验性地将倒数第二层的输出作为事件存在图进行帧级定位。这启发我们设计了一个模块,使得音频Transformer的每个输出标记都能意识到事件的语义含义(即一个词元-语义模块 [16]),从而支持更多音频任务(例如声音事件检测与定位)。

在本文中,我们提出了一种名为HTS-AT1的分层音频Transformer模型,结合了一个基于词元语义的模块,用于音频分类任务。我们提出的HTS-AT模型的贡献可以总结如下:

  • HTS-AT在AudioSet、ESC-50和Speech Command V2等数据集上取得了与当前最优方法相媲美的表现。此外,即使没有预训练,该模型仍能实现与最佳结果相比仅低1%-2%的性能。
  • 相比于AST模型,HTS-AT模型具有更少的参数量(31M vs. 87M)、更少的GPU内存占用以及更短的训练时间(80小时 vs. 600小时),同时还能够达到更好的性能表现。
  • HTS-AT进一步使音频Transformer能够利用弱标注数据产生事件的定位结果,并且在这方面取得了比先前基于CNN的模型更好的性能。

2.提出的模型

2.1基于层级结构和窗口注意力机制的Transformer

传统的Transformer模型在处理长序列数据时会面临大量的GPU内存消耗和训练时间过长的问题,因为输入标记的长度在所有的Transformer块中始终保持不变。结果是,机器需要通过大量的GPU内存保存每个块的输出和梯度,并花费大量计算时间来维护一个庞大的全局自注意力矩阵。为了解决这些问题,如图1所示,我们提出了两个关键的设计:层级Transformer结构和窗口注意力机制。

2.1.1音频频谱编码器

图1的左侧,一个音频Mel频谱图被切分成不同的块状词元,通过一个核大小为(P×P)的Patch-Embed CNN,并按顺序送入Transformer模型。与图像不同,音频Mel频谱图的宽度和高度代表不同的信息(即时间和频率区间)。而且,时间长度通常远大于频率区间的长度。因此,为了更好地捕捉同一时间帧内频率区间之间的关系,我们首先将Mel频谱图分割成窗口w_{1},w_{2},...,w_{n},然后再在每个窗口内部分割块状词元。词元的顺序遵循时间->频率->窗口的顺序,如图1所示。采用这种顺序,不同频率区间的块状词元在同一时间帧内将会被组织成输入序列中相邻的形式。

2.1.2块合并和窗口注意力

图1的中间部分,块状词元被送入多个Transformer编码器块的组合中。在每个组合的末尾,我们实现了一个Patch-Merge层 [17] 来减小序列的大小。这个合并操作首先通过将序列重塑为原始的2D映射 (\tfrac{T}{P} \cdot \tfrac{F}{P} , D)来进行。其中,D是潜在状态的维度。然后,它将相邻的块状标记合并为尺寸为(\tfrac{T}{2P} \cdot \tfrac{F}{2P} , 4D)的形式,并最后应用一个线性层将潜在维度降低为(\tfrac{T}{2P} \cdot \tfrac{F}{2P} , 2D)的形式。如图1所示,块状标记的形状在经过4个网络组合后被减小了8倍,从(\tfrac{T}{P} \cdot \tfrac{F}{P} , D)变为(\tfrac{T}{8P} \cdot \tfrac{F}{8P} , 8D),因此每个组合后GPU内存消耗呈指数级减少。

在每个网络组合内的每个Transformer块中,我们采用窗口注意力机制来减少计算量。如图1右侧中间不同颜色的方框所示,我们首先将块状词元(以2D格式表示)分成非重叠的(M ×M)注意窗口aw_{1},aw_{2}...,aw_{k}。然后,我们仅计算每个M×M注意窗口内部的注意力矩阵。因此,我们有k个窗口注意力(WA)矩阵,而不是一个整个全局注意力(GA)矩阵。在具有初始潜在维度D的f×t音频块状标记中,这两种机制在一个Transformer块内的计算复杂度为:

GA:O(ftD^{2}+(ft)^{2}D)

WA:O(ftD^{2}+(M)^{2}ftD)

窗口注意力机制将第二复杂度项减少了(\tfrac{ft}{M^{2}})倍。对于按时间频率窗口顺序排列的音频块状标记,每个窗口注意力模块将计算在一定范围内连续频率区间和时间帧上的关联。随着网络变得更深,Patch-Merge层将合并相邻的窗口,因此在更大的空间中计算注意力关系。在代码实现中,我们使用了带有平移窗口注意力[17]的swin transformer块,这是一种更高效的窗口注意力机制。这也帮助我们在实验阶段使用swin transformer预训练视觉模型。

2.2词元语义模块

现有的AST使用类词元(CLS)来预测分类标签,这限制了它无法进一步指示事件的开始和结束时间,就像CNN-based模型中实现的那样。在最终的层输出中,每个标记包含其对应的时间帧和频率区间的信息。我们希望将标记转换为每个标签类别的激活图(即具有语义意义的感知[16])。对于强标注的数据集,我们可以让模型直接在特定时间范围内计算损失。对于弱标注的数据集,我们可以利用Transformer通过其强大的关系捕捉能力来进行定位。在HTS-AT中,如图1右侧所示,我们通过在最终的Transformer块之后添加一个词元语义CNN层来修改输出结构。它具有一个卷积核大小(3,\tfrac{F}{8P})和一个填充大小(1,0),以整合所有频率区间,并将通道大小8D映射到事件类别C。输出(\tfrac{F}{8P},C)被视为事件存在图。最后,我们将特征图平均化为最终向量(1,C),并与基准标签计算二元交叉熵损失。除了定位功能外,我们还期望词元语义模块可以提高分类性能,因为它通过直接对所有词元进行分组来考虑最终输出。

3.实验

在这一部分,我们评估了HTS-AT在四个数据集上的性能:在AudioSet [7]上进行的事件分类;在ESC-50 [8]上进行的关键词检测;在Speech Command V2 [4]上进行的事件检测;以及额外的在DESED [18]上进行的事件检测。

3.1在AudioSet上进行事件分类

3.1.1数据集和训练细节

AudioSet包含超过两百万个带有527种声音事件类别标签的10秒音频样本。在这篇论文中,我们遵循[11, 12, 14]中相同的训练流程,使用完整的训练集(2M个样本)来训练我们的模型,并在评估集(22K个样本)上进行评估。所有样本均转换为单声道,采样率为32kHz。我们使用1024窗口大小,320跳跃大小和64个mel频段来计算STFT和mel频谱图。因此,mel频谱图的形状为(1024, 64),因为我们用24个零帧(T=1024,F=64)填充每个1000帧(10秒)的样本。输出特征图的形状是(1024, 527)(C=527)。填充大小为4×4,填充窗口长度为256帧,注意力窗口大小为8×8。由于8可以被64整除,在第一层的注意力窗口将不会跨越两个时间差异很大的帧。潜在维度大小为D=96,最终输出的潜在维度为8D=768,与AST保持一致。最后,我们分别设置了4个网络组,每个网络组包含2、2、6、2个swin-transformer块。

我们遵循[11, 12]使用平衡采样器、α=0:5混合增强[19]、频谱掩蔽[20],时间掩蔽=128帧,频率掩蔽=16个频段,并进行权重平均。HTS-AT是在PyTorch中实现的,并通过AdamW优化器进行训练(β1=0.9,β2=0.999,eps=1e-8,衰减=0.05),批量大小为128(32 × 4)在4个NVIDIA Tesla V-100 GPU上。我们通过设置学习率为0.05、0.1、0.2来应用热身训练计划,在前三个时期,然后每十个时期将学习率减半,直到返回到0.05。我们使用平均精度(mAP)来评估分类性能。

3.1.2训练结果

表1中,我们将我们的HTS-AT与不同的基准模型和三种自我削弱的变体进行了比较:(1) H:仅具有分层结构;(2) HC:具有分层结构和标记-语义模块;以及(3) HCP:(2)具有预训练视觉模型(完整设置)。我们的最佳设置在单个模型中实现了新的SOTA mAP 0.471,相比AST的0.459有了很大的增长。我们还在相同设置下将六个具有不同训练随机种子的HTS-AT进行集成,实现了mAP为0.487,优于AST的0.475和0.485。我们从两个方面分析了我们的结果。

语义词元模型和预训练 PSLA、AST和HTS-AT采用了ImageNet预训练模型,其中PSLA使用了EfficientNet [25]进行预训练,AST使用了DeiT [26],而我们的HTS-AT则使用了Swin-transformer中的SwinT/C24 setting对256×256的图像进行预训练(256×256 = 1024×64,因为我们可以转移相同大小的权重)。我们可以看到,未经预训练的单个HTS-AT可以实现mAP为0.440。通过添加标记语义模块,性能提高到0.453,比0.471低了1.8%。最终,预训练的HTS-AT实现了新的最佳mAP为0.471。然而,未经预训练的单个AST只能达到0.366,比0.459低了9.3%。这表明:(1)预训练模型通过建立对模式识别的良好先验知识明显改善了性能;(2)HTS-AT显示出比AST更好的可扩展性,因为它的未经预训练模型仍然可以实现第三好的性能。

参数大小和训练时间 在比较每个模型的参数大小时,AST具有87M个参数。而HTS-AT具有更轻量级的31M个参数,甚至与基于CNN的模型兼容。至于预计的训练时间,PANN需要大约72小时收敛,HST-AT在V-100 GPU上需要20×4=80小时;而AST在4个TITAN RTX GPU上需要150×4=600小时。速度的提升对应着HTS-AT的计算量和GPU内存消耗较少,因为我们每批可以输入128个样本,而不仅仅是AST中的12个样本。因此,我们得出结论:HTS-AT比AST消耗更少的训练时间和更少的参数,更加高效。

3.2在ESC-50和Speech Command V2上的评估

3.2.1数据集和训练细节

对于ESC-50数据集,该数据集包含2000个5秒的音频样本,标记有50个环境声音类别,分为5个fold。我们通过选择4个fold(1600个样本)作为训练集,剩下的1个fold(400个样本)作为测试集,对模型进行5次训练。我们重复这个实验3次,使用不同的随机种子来获取平均性能和偏差。在Speech Command V2数据集中,包含了105,829个1秒的口语单词片段,标记有35个常见单词类别。其中,包括84843个、9981个和11005个片段用于训练、验证和评估。同样地,我们对HTS-AT进行3次训练以获取预测结果。我们使用平均准确率(acc)作为评估这两个数据集的指标。在数据处理方面,我们将ESC-50的样本重新采样为32kHz,而Speech Command的片段则为16kHz。我们遵循与AudioSet相同的设置来训练模型。

3.2.2实验结果

我们使用我们最好的AudioSet预训练的HTS-AT分别在这两个数据集上进行训练,并将其与基准模型进行比较(也包括在AudioSet或额外数据预训练中的模型)。由于1秒和5秒不能完全利用在AudioSet上训练的10秒输入,因此我们将1秒和5秒分别重复10次和2次,将其扩展为10秒。如表2所示,结果显示我们的HTS-AT在ESC-50数据集上达到了新的SOTA(97.0%),并且在Speech Command V2上等同于SOTA(98.0%)。我们的偏差相对较小,比AST的偏差小,这表明HTS-AT在收敛后更加稳定。

3.3在DESED上的定位表现

我们额外评估了HTS-AT在给定音频样本中定位声音事件的能力,包括事件的起始时间和结束时间。我们使用DESED测试集[18],其中包含692个10秒的测试音频样本,涵盖10个类别,并具有强标签。我们主要将我们的HTS-AT与PANN进行比较。我们不包括AST和PSLA,因为AST不直接支持事件定位,而PSLA的代码也未公开。我们还部分地与DCASE 2021[24]中的模型进行比较,尽管它们使用额外的训练数据,并在DESED测试集及其另一个私有子集上进行评估。我们使用每个类别的基于事件的F1分数作为评估指标,该指标由Python库psds_eval实现。

在DESED数据集中,不同模型在所有10个类别上的F1分数如表3所示。我们发现,HTS-AT在8个类别上实现了更好的F1分数,并且平均F1分数为50.7%,优于PANN。与排行榜模型相比,我们的模型仍然在某些类别上取得了最高分数。然而,在Speech和Cleaner类别上的F1分数相对较低,表明仍有一些改进空间来提高定位性能。从上述实验证明,我们可以得出结论:HTS-AT能够通过标记-语义模块生成特定的定位输出,从而扩展了音频Transformer的功能。

4结论和未来展望

在这篇论文中,我们提出了HTS-AT:一种用于音频分类的分层词元语义Transformer。它在不同音频分类场景的多个数据集上实现了新的SOTA。此外,词元-语义模块使HTS-AT能够定位事件的起始和结束时间。实验证明,HTS-AT是一个高性能、高可扩展性且轻量级的音频Transformer。在未来,我们注意到AudioSet发布了部分带有强标签的子集[27],我们决定通过HTS-AT进行详细的定位训练和评估工作,以进一步探索其潜力。将音频分类模型整合到更多下游任务中[28, 29]也被视为未来的工作方向。

  • 34
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值