一、TL;DR
- 现在的做法有什么问题?主流范式是 "一个类别标签对应多个录音",需要**提前标注+预测预先定义的类别,**只能做闭集理解,失去灵活性
- 我们怎么做?通过两个编码器和对比学习机制建立语言与音频的关联,将音频和文本描述映射到一个联合的多模态空间进行对齐
- 做得怎么样?12.8 万对音频 - 文本训练,在8 个领域的 16 项下游任务中评估,即使训练数据小于CV模型,Zero-Shot上达到了SoTA。finetune后在5项评估任务中也是SOTA
- 能做什么?消除了对类别标签训练的依赖,在推理时灵活预测类别,并能泛化到多个下游任务
- 对应的链接:
二、方法
CLAP 的结构如图 1 所示:
- 输入为音频和文本对,分别传入音频编码器和文本编码器。两种表示通过线性投影映射到联合多模态空间中,
- 该空间通过batch中音频 - 文本对的(不)相似性,利用对比学习进行学习。
- 预训练的编码器及其MLP层可用于计算音频和文本embedding,从而实现zero-shot分类。


2.1 对比语言 - 音频预训练
2.1.1 特征提取

2.1.2 线性变化

2.1.3 计算相似性


2.2 zero-shot线性分类
对于零样本分类,利用 CLAP 判断音频与文本相似性的能力。考虑一个包含C个类别标签和N个测试音频的目标数据集:
- 首先,使用预训练的编码器及其投影层,计算N个音频的音频嵌入和C个类别的文本嵌入;
- 由于两种嵌入处于同一空间,计算每个测试音频与所有类别标签的余弦相似度,每个音频将获得与类别标签数量相同的 logits;
- 对 logits 应用 softmax 函数(适用于二分类或多分类任务)或 sigmoid 函数(适用于多标签分类任务),将其转换为概率分布。

三、Experiments
3.1 数据集
训练数据:从4 个数据集中选取了12.8万对音频 - 文本数据对构建 CLAP 的训练集,具体包括:
- 从 FSD50k 中提取 36,796 对,从 ClothoV2 中提取 29,646 对,从 AudioCaps 中提取 44,292 对,从 MACS中提取 17,276 对。数据集详细信息见附录 A 和表 4。
下游任务:我们选取了 8 个领域的 16 个数据集作为下游任务,包括:
- 5 项声音事件分类任务;
- 5 项音乐相关任务(音乐与语音分类、音乐流派分类、音乐节拍与调性分类等);
- 1 项声学场景分类任务;
- 4 项语音相关任务(情感识别、关键词识别、人声分类(如咳嗽、喷嚏、笑声等));
- 1 项说话人计数任务(统计录音中 0-10 人的说话人数)。
数据集信息见表 1,详细说明见附录 B 和表 5。

3.2 实验设置
预处理:音频采用对数梅尔频谱表示,采样率为 44.1 kHz,跳步大小为 320 秒,窗口大小为 1024 秒,梅尔 bins 数量为 64,频率范围为 50-8000 Hz。训练时,每个音频片段随机截断为 5 秒的连续片段,若长度不足则进行填充。文本描述未做修改,训练时音频 - 文本对按批次随机采样。
编码器:
- 音频编码器选用 CNN14 ,以便与现有最优模型公平对比。该模型含 8080 万参数,嵌入维度为 2048,已在 AudioSet 的 200 万音频片段上预训练。
- 文本编码器选用 BERT,采用 HuggingFace实现的 BERT-base-uncased 版本,含 1.1 亿参数。为提高计算效率,文本序列最大长度限制为 100 字符,取 BERT 最后一层的 [CLS] token 作为文本嵌入(维度 768)。
音频嵌入和文本嵌入通过两个可学习的投影矩阵映射到维度为 1024 的多模态空间中。温度参数 τ 为可学习参数,初始值设为 0.007;为避免训练不稳定,经 τ 缩放后的 logits 最大值被限制为 100。
微调时候固定text/audio encoder参数对表现的影响:

3.3 CLAP 的评估设置
零样本评估:验证 CLAP 对未见过的类别和音频的泛化能力,具体设置见 2.2 节。评估时不直接使用类别标签,而是构建自然语言提示模板:"This is a sound of [class label]"。除 3 个任务外,所有领域均使用统一模板:

- 情感识别任务使用:"this person is feeling [class label]";
- 关键词识别任务直接使用关键词作为文本;
- 说话人计数任务使用:"[number between 0-10] persons speaking"。
有监督特征提取评估:验证 CLAP 学习的音频表示质量。针对下游任务,将 CLAP 作为特征提取器,后续接 1 层或 3 层全连接分类器(分别记为 Freeze L1 和 Freeze L3),参考 [23] 的设置。训练采用 Adam 优化器,学习率 10⁻³,训练 30 个 epoch。受计算资源限制,未进行超参数网格搜索。
有监督微调评估:对比 CLAP 与文献中各任务的最优性能。针对下游任务,解冻音频编码器并与附加的 1 层或 3 层全连接分类器共同微调,优化器为 Adam,学习率 10⁻⁴,训练 30 个 epoch。受计算资源限制,未进行超参数网格搜索。