通用音频表征的对比学习

摘要

我们提出了 COLA,一种用于学习通用音频表征的自监督预训练方法。该方法基于对比学习:它学习一种表征,使得从同一录音中提取的音频片段具有较高的相似度,而来自不同录音的片段则具有较低的相似度 。我们在计算机视觉和强化学习领域近期对比学习进展的基础上,设计了一种轻量级、易于实现的音频自监督模型。我们在大规模 AudioSet 数据库上对嵌入向量进行预训练,并将这些表征迁移到 9 个多样化的分类任务中,包括语音、音乐、动物声音和声学场景等。实验表明,尽管我们的方法结构简单,但其性能显著优于以往的自监督系统。此外,我们还进行了消融研究,以识别关键的设计选择,并开源了一个库¹,用于 COLA 模型的预训练与微调。

关键词--- 自监督学习,音频,声音

引言

自监督预训练最近已成为一种成功的技术,能够利用未标注数据学习对有监督任务有益的表征。这一成功已广泛应用于多种任务和模态中 [1, 2, 3, 4]。在这些方法中,判别式预训练(Discriminative Pre-Training, DPT)尤为有效。该方法从无标签数据中学习表征,通过构建相似输入对(例如利用时间一致性 [5, 4, 6] 或数据增强 [7]),并训练模型在若干负样本干扰项中识别出相似样本。与生成式的编码器-解码器方法 [8, 9, 10, 11, 12] 不同,DPT 在计算上更为高效,因为它完全避免了输入重建过程。

在面向音频的 DPT 模型中,文献 [6] 采用了一种基于度量学习的方法,使用三元组损失(triplet loss)来最小化锚点与正样本嵌入之间的距离,同时最大化其与负样本之间的距离。正负样本通过对音频注入噪声、在时频维度上进行平移,以及从时间上邻近的位置提取样本来生成。类似地,文献 [13] 提出了一个用于在非语义任务上比较语音表征的基准。他们利用 AudioSet [14] 的一个子集,以三元组损失作为无监督目标函数进行模型训练,并在多个下游语音分类任务上取得了性能提升。受自然语言处理领域开创性工作 [15] 的启发,文献 [16] 采用了类似方法学习音频表征(即 AUDIO2VEC),并引入另一个"代理任务"(pretext task)------估计音频片段之间的时间距离。预训练模型在多个下游任务上进行了测试,涵盖说话人识别到音乐识别等任务。

尽管近期取得了一些进展,但大多数音频表征学习工作仍集中于语音任务 [17, 18, 19]([6, 16] 除外),而忽略了其他音频任务,如声学场景检测或动物发声识别。此外,基于三元组的目标函数严重依赖于负样本的挖掘策略,所学特征的质量会随着样本生成方案的不同而显著变化。

在本文中,我们提出了 COLA(COntrastive Learning for Audio),一种简单的对比学习框架,用于学习超越语音范畴的通用声音表征。我们的方法借鉴了计算机视觉(如 SIMCLR [7]、MoCo [20])和强化学习(如 CURL [21])中对比学习的最新进展 [2]。我们通过简单地从同一音频片段中采样两个子段来构建正样本对,从而完全避免了像 SIMCLR、MoCo、CURL 及其他方法 [22] 那样探索复杂的数据增强策略。我们的负样本对则直接将同一批次中来自不同音频片段的子段配对,无需像 MoCo 那样维护一个负样本记忆库。这种方法使我们在损失函数中可以为每个正样本对考虑大量负样本,从而绕过了三元组方法 [6, 13] 中对负样本精心选择的需求。此外,COLA 也不同于 CPC [2],因为它并不试图利用过去的隐状态去预测未来的隐状态。

我们在一系列具有挑战性且多样化的下游任务上验证了 COLA 的有效性,包括语音、音乐、声学场景和动物声音等。在大规模 AudioSet 数据库 [14] 上完成预训练后,我们发现:仅在 COLA 嵌入之上训练一个线性分类器,其性能就已接近全监督的领域内卷积网络;若进一步进行微调,性能甚至超越后者。此外,我们的系统在大多数下游任务上均优于以往的无监督方法。这些实验表明,COLA 提供了一种简单、易于实现的方法,可在无监督条件下学习通用音频表征。

方法

我们通过使用对比损失函数对神经网络进行预训练,从未标注数据中学习通用音频表征。我们的目标函数旨在最大化从同一音频片段中提取的音频子段在隐空间嵌入(latent embedding)之间的一致性,同时将来自不同音频片段的子段视为负类(negative classes),如图1所示。该目标用于在未标注音频数据上预训练一个卷积特征提取器。预训练完成后,我们将该特征提取器与一个额外的分类层结合,以解决多个数据集上的各类音频理解任务。

对比学习的目标是构建一个隐空间,在该空间中,锚点样本(anchor example)与其相关样本(正样本)之间的相似度应高于其与不相关样本(负样本)之间的相似度。在我们的设定中,锚点及其对应的正样本是从同一个音频片段中提取的两个音频子段。这与那些通过对锚点施加扰动生成正样本的方法不同 [23, 22]。对于负样本,我们直接采用当前训练批次中来自其他不同音频片段的子段。这种策略可以高效地引入大量负样本,因为批次中的样本既可作为正样本也可作为负样本,无需额外计算开销。






3. 实验

我们通过在大规模音频数据集上预训练COLA嵌入并以下列方式迁移至下游任务来评估方法:1) 在冻结嵌入上训练线性分类器作为特征提取器;2) 对端到端任务微调整个网络。重要的是,我们在多个多样化数据集上评估性能,以确定学习表征在跨音频领域和录音条件下的可迁移性。

3.1 数据集与任务

我们在多样化的大规模音频数据集Audioset[14]上预训练COLA嵌入。该数据集包含200万段10秒的YouTube视频音频片段,采用多标签标注方式覆盖500多个类别。由于我们的方法是自监督的,我们从未使用Audioset的标签。如前所述,我们随机采样音频片段生成样本,并均匀随机选择音频序列中的片段作为锚点和正样本。

下游评估涵盖语音和非语音任务。为便于与现有方法比较,我们采用[16,25,13]曾使用的数据集。具体包括:LibriSpeech (LBS) 100小时子集(251名朗读者)、Voxceleb子集(1,251名说话人)、语音命令数据集SPC V1/V2(分别识别11/35个命令)、TUT城市声学场景数据集(10类场景)、鸟鸣检测数据集(二分类)、MUSAN数据集(语音/音乐/噪声三分类)、NSynth乐器音符数据集(11类乐器)、Voxforge语言识别数据集(6种语言)。

3.2 模型架构与实现细节

输入音频序列经25ms窗口、10ms步长的64维梅尔滤波器组处理(频率范围60-7800Hz),形成960ms的96帧特征。这些特征通过基于EfficientNet-B0[34]的编码器f处理,最终经全局最大池化得到1280维嵌入h。预训练时,h通过含512单元全连接层、层归一化和tanh激活的投影头g。下游任务中移除投影头,直接在编码器上训练线性分类器。

所有模型使用Adam优化器(学习率10-4)预训练500轮。下游分类器使用64批量大小和学习率10-3训练,评估时对非重叠960ms片段预测结果取平均。

3.3 结果

表1显示COLA在9个下游数据集的表现。与随机初始化嵌入(平均29.1%)相比,冻结COLA嵌入的线性分类器达到74.3%准确率,证明编码器学习了有效表征。微调COLA初始化模型进一步将平均准确率提升至85.1%。

表2对比显示COLA优于此前自监督方法(如三元组损失、AUDIO2VEC等),在声学场景分类达到94%准确率(较之前73%显著提升),在语音命令和乐器分类任务上均获得30%绝对提升。与专用语音预训练模型TRILL相比,通用COLA嵌入在跨领域任务中表现相当。

表3的消融研究表明双线性相似度(平均74.3%)优于余弦相似度(67.2%)。表4显示预训练批量大小1024时效果最佳,继续增大至2048会导致性能下降。

(注:表格数据及技术术语保持原格式未翻译,如EfficientNet-B0、Adam等;专业术语如mel-filterbanks译为"梅尔滤波器组";算法名称如Triplet Loss保留英文形式)

4. 结论

我们提出了COLA,这是一种简单易实现的自监督对比学习算法,适用于通用音频表征学习。在广泛的线性评估协议下,我们的方法在多项具有挑战性的下游任务上相较于早期无监督方法取得了显著性能提升,同时通过微调大幅超越了有监督基线的表现。我们相信,该系统的简洁性及其在跨音频任务中的强大迁移能力,将使其成为未来音频自监督学习研究的首选基线。

相关推荐
2501_918126912 小时前
stm32最级别的烧录解锁是什么?
stm32·单片机·嵌入式硬件·学习·个人开发
是烨笙啊2 小时前
AI 编程:核心概念与术语解析
人工智能·学习·ai编程
美狐美颜sdk2 小时前
Android全局美颜sdk实现方案详解
人工智能·音视频·美颜sdk·视频美颜sdk·美狐美颜sdk
工业甲酰苯胺2 小时前
一文学习 Spring AOP 源码全过程
java·学习·spring
EasyDSS2 小时前
私有化部署EasyDSS视频点播能力:全链路视频技术赋能,打造企业级视听新体验
音视频·hls·m3u8·点播技术·智能转码
代码游侠2 小时前
STM32开发——基础外设
linux·运维·arm开发·stm32·单片机·嵌入式硬件·学习
2501_918126912 小时前
stm32和dap调试器
stm32·单片机·嵌入式硬件·学习·个人开发
GocNeverGiveUp2 小时前
大模型学习4-RAG检索增强生成
学习
你怎么知道我是队长2 小时前
前端学习---HTML---表单
前端·学习·html