gpt4 book ai didi

ios - 在两个压缩的音频文件中查找匹配的内容

转载 作者:行者123 更新时间:2023-11-29 10:23:43 29 4
gpt4 key购买 nike

我试图在两个音频文件中找到任何匹配内容的时间范围。使用示例是:

我有两个从电视节目中删除的 mp3 文件。在电视节目开始时,他们有一个“之前的”回顾,然后是节目的主题曲,然后是实际节目。

重述部分的长度不一,但主题曲始终如一。尽管由于对整个文件进行压缩,但在比较字节时可能不相同。

我的目标是比较节目的两个 mp3 文件,找到共同的主题曲并获得它的时间范围,这样就可以知道节目的实际内容从哪里开始。

文件中也有可能存在多个常见匹配项,例如两个电视节目上都有的广告,最好也找到这些。

我将在 iOS 上执行此操作。

我应该研究什么,傅里叶变换?

最佳答案

在另一个信号中查找信号(音频或其他)的传统方法是使用 a cross correlation实现此目的的有效方法是在频域中,其中原始方法的复杂 O(n^2) 矩阵乘法变为 O(n) 复数共轭乘法。

在 iOS 上,您可以使用 Accelerate 框架通过调用来实现这一点

  • vDSP_fft_zrip 将您的每个音频文件转换为频域
  • vDSP_zvcmul 将结果信号相乘
  • vDSP_fft_zrip将乘积变回时域

此最终结果中最大绝对值的索引为您提供了一个信号与另一个信号的最佳匹配的时间滞后。

这个答案掩盖了很多细节,包括打包(使乘法复杂化)、信号填充、将 mp3 解码为信号处理函数期望的浮点/ double 格式、将立体声展平为单声道以及打破互相关分成更小的重叠 block ,因为您可能不想将整个电视节目音频加载到内存中。

对此感到抱歉。我很想编写一个小型开源库来执行此操作。这相当于 100 个像这样的答案。

关于ios - 在两个压缩的音频文件中查找匹配的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33474671/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com