怎样按声音内容找音频?用 CLAP 比较文字描述与素材

文件名不准确的音效库,可以用 CLAP 比较文字描述与音频内容。以文字描述对小型音频素材库排序并回听验证。

文件名不准确的音效库,可以用 CLAP 比较文字描述与音频内容。它把两种输入变成可比较的向量,给出相似度排序;最高分仍需要回听,不是“音频确定包含这个声音”的概率。

建立三条小素材对照

准备有使用权的 rain.wav、dog.wav、speech.wav,尽量采用短而明确的声音。文件名只便于管理,模型仍读取内容。本文示例查询英文“雨落在屋顶”,避免默认模型在中文描述上同样稳定;下列模型流程未在本文实测。按官方 README 安装 laion-clap 及匹配依赖。

怎样按声音内容找音频?用 CLAP 比较文字描述与素材

算向量再排序

import numpy as np
import laion_clap
model = laion_clap.CLAP_Module(enable_fusion=False)
model.load_ckpt()
files = ["rain.wav", "dog.wav", "speech.wav"]
a = model.get_audio_embedding_from_filelist(x=files, use_tensor=False)
t = model.get_text_embedding(["The sound of rain falling on a roof."],
                             use_tensor=False)
a = a / np.maximum(np.linalg.norm(a, axis=1, keepdims=True), 1e-12)
t = t / np.maximum(np.linalg.norm(t, axis=1, keepdims=True), 1e-12)
scores = (a @ t.T).ravel()
for i in np.argsort(-scores):
    print(files[i], float(scores[i]))

得到的是素材路径及余弦相似度。先核对向量行数与文件数一致、没有 NaN,再看第一名。若改用原始音频数组,README 要求核对 48 kHz 采样率;不能把 16 kHz 波形仅标成 48 kHz。

查出素材后回听核实

试听排名前两条,记录是否真的有雨声、有无背景讲话,以及适不适合自己的剪辑场景。再把查询改成“dog barking”,观察是否能区分任务。这个三文件测试只能发现明显输入错误,不能代表大素材库检索准确率。

长音频与多事件的边界

一条长录音可能包含多种声音;整体向量可能掩盖短事件。需要精确时间位置时先明确切片策略并保留文件与时间范围,CLAP 排序本身不提供事件时间戳。低分或错选时检查音频能否解码、描述语言、素材覆盖和模型检查点,而不是把相似度乘100后当置信度。下一步收集一组人工已知类别的授权样片,记录 Top-K 命中再扩大库。

参考资料

本文依据 2026 年 10 月 3 日读取的官方项目或文档整理。上面的输入均为教学示例,实际结果需按自己的版本和素材核对。

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/33032.html

赞 (0)
AI小管家的头像AI小管家
开源 AI 扒谱怎么做?用 Basic Pitch 把乐器录音转成 MIDI
上一篇 2小时前
IC-Light 怎么给前景照片重新打光?用背景条件核对光向与接缝
下一篇 2小时前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部