在另一个声音文件中查找一个声音文件

Posted

技术标签:

【中文标题】在另一个声音文件中查找一个声音文件【英文标题】:Finding one sound file inside of another 【发布时间】:2011-10-27 19:37:57 【问题描述】:

我有两个声音文件,一个只是大文件的摘录,应该几乎相同

我如何比较这两个声音文件,以找出较小的声音文件开始播放到较大的声音文件多远?

这最好是一个 linux 终端命令,用于 bash

【问题讨论】:

文件被压缩了吗?音频是否以任何其他方式改变?较小的文件是如何制作的? 不确定它是如何制作的,但它没有改变 【参考方案1】:

如果它们是 .WAV 文件并且一个是直接从另一个文件创建的,那么应该有一个字节对字节相同的部分,并且一个好的 diff 工具可以为您找到它。如果它们是使用来自相同来源的相同压缩器创建的 mp3,您可以解压缩它们并且同样的事情成立。

其他任何事情都会变得非常棘手。您可以尝试将两者都转换为相同的原始 WAV 格式,然后进行一些模糊匹配(例如将一个部分与另一个滑动部分并找到差异 RSS 最小的位置)。

或者您可以尝试在频域中执行此操作,方法是将文件分成小块,对它们进行 FFT,并寻找一系列匹配的主频率。

我不太相信两者都能很好地工作。我会先尝试时域方法。

【讨论】:

以上是关于在另一个声音文件中查找一个声音文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 .wav 文件中查找特定声音的时间戳?

在matlab中查找傅立叶变换的一秒样本

使用 Python 获取声音输入并查找相似的声音

在一个活动中选择要在另一个活动中播放的声音

在 C# 中查找文件的目录

如何在Ubuntu启动时禁用声音效果?