音频指纹问题

信息处理 fft 声音的
2022-01-10 06:53:41

我正在开发一个需要音频指纹的应用程序。我一直在阅读很多文章和 PDF,现在我想我让自己感到困惑。根据我目前的理解,我有一些问题

  1. 将音频解码为其原始格式后,重新采样并提取单声道。我是否将字节转换为整数或浮点数?

  2. 什么是卷积以及为什么需要对音频样本进行卷积

  3. 什么是窗户及其长度

  4. FFT 将信号从时域变换到频域。我对么?如果是,音频的频率分量是否决定内容/声音/噪音/音量?

  5. 可以对两个内容相同但码率不同的音频进行什么操作来归一化码率并得到它们共享的数据

  6. 什么是低通和高通滤波器以及如何派生。它们与音频指纹操作有关的用途是什么

  7. 在文本中用于音乐识别的计算机视觉。用低通滤波器对信号进行卷积并每 8 个样本提取一次。然后,窗口大小为 2048 个样本的短期傅立叶变换,连续窗口偏移 64 个样本。还将 300Hz 和 2000Hz 之间的功率分成 33 个对数间隔的频带。

    • 这些操作是否会应用于卷积过程后检索到的每个样本?我能得到一个更简单的解释吗?
  8. 应用 32 个学习的过滤器和阈值来为信号的每个时间步(11.6 毫秒)获取一个 32 位描述符。这一系列信号称为签名。

    • 这些学习的过滤器和阈值是什么?

哇:),这是很多问题。我相信很多初学者会发现答案很有帮助。

谢谢

1个回答
  1. 使用整数(没有浮点单元的嵌入式系统)进行处理的情况很少见,但通常情况下,音频信号处理是使用浮点数完成的。

  2. (手动)卷积是将滤波器应用于信号的操作。如果您正在查看的论文的作者发现对数据应用特定的过滤器(例如去除噪音、任何未被人类听觉系统处理的信息等)产生了良好的结果,那么您必须相信他们在这!

  3. 由于音频信号不是固定的,它们在短块中进行处理,称为“窗口”或“帧”。分析/处理因此在短重叠段上完成。例如,您将处理段 0.00s:0.02s ;然后分段 0.01s:0.03s ; 然后是 0.02s:0.04s 等等。在这个例子中,窗口大小是 20ms,重叠 50%。音频应用程序没有“通用”窗口大小,请查看描述您正在实施的技术的论文中使用的内容。

  4. 不是真的,但从时域到频域是“更接近”最终在人类听觉系统中发生的事情。

  5. 没有任何手术可以做到这一点。如果有的话,我们会以最低质量发送我们所有的文件,并应用这个神奇的操作来恢复最高质量。这意味着用于指纹识别的特征必须足够强大,以仅捕获声音的整体“形状”,而不是专注于细节——这会因 MP3 编码数量的增加而丢失。

  6. 看一本信号处理教科书。这些是非常基本的信号处理操作,可用于指纹识别系统内部或外部的许多事情——降低采样率、平滑时间序列、强调细节、去除噪声......

  7. 假设您有 800000 个样本。你应用卷积,你会得到 800000 个样本。现在您每提取 8 个样本,您将获得 100000 个样本。然后将 FFT 应用于样本 0..2047 以获得 33 个系数;然后在样本 64..2111 等上......所以最后你有一个大约 100000 / 64 = 1562 个 33 个系数的向量的列表。

  8. (挥手)。我假设您指的是 Ke 等人的系统(后来在 Baluja 等人的作品中进行了改进),它本身的灵感来自 Viola-Jones 人脸检测器。将信号转换为 33 个系数的向量序列后,您可以计算相邻 bin 或沿时间轴(滤波器)中系数的加权和,并将结果与​​阈值进行比较。这为您提供了二进制“功能”。有 32 个这样的二元特征,每个特征都使用不同的过滤器和不同的阈值计算。它们是“学习的”,因为它们是通过以下方式获得的:作者建立了一个包含数百万对歌曲的数据库,其中一些是相同的(但可能在比特率、音量、噪音水平等方面存在差异),其中一些是不同的。使用机器学习技术(增强决策树桩),他们评估了哪些过滤器最擅长将相同的内容合并在一起并分离不相关的内容,以及为此使用了哪个阈值。您可以在 lastfm 的开源实现的源代码中找到这些过滤器/阈值的列表柯式音频指纹识别器