计算 2 个时间跨度 DSP 之间的差异

Posted

技术标签:

【中文标题】计算 2 个时间跨度 DSP 之间的差异【英文标题】:Calculate Difference between 2 Time Spans DSP 【发布时间】:2011-10-26 07:20:34 【问题描述】:

这可能是一个广泛的答案,但我希望看到答案并与 SO 用户讨论此线程。

到目前为止,我猜音频文件 (WAV) 的采样率可能是 44000 或 48000(我见过大多数这 2 个),从中我们可以确定文件中的单个秒(秒 00: 00:01) 正好有 44000 个整数值,这意味着我们有一个 Int[],因此如果音频文件持续时间为 5 秒,它有 5 * 44000 个整数(或 5 个样本)。

所以我的问题是,我们如何计算两个时间跨度之间内容的差异(或相似性),例如具有相同采样率的 00:00:01 的 Audio1.wav 和 Audio2.wav。

【问题讨论】:

-1。我完全不明白你的问题。我猜你的 Audio1.wav 和 Audio2.wav 有不同的采样率?你到底想计算什么? 1秒内样本数量的差异?此外,常见的采样率是 44100 样本/秒和 48000 样本/秒。 @mtrw 我想计算两个时间跨度或相似度之间的内容差异 “内容差异”是什么意思? 差异是什么意思?就像如果 Audio1 是 100 Hz 的正弦波的 1 秒,而 Audio2 是 100 Hz 的余弦,你会期望答案是什么?或者如果 Audio1 是生日快乐的 1 秒,Audio2 是不同歌手演唱的生日快乐的 1 秒,你期望答案是什么?您将不得不提供更多细节。 @mtrw 我现在是新手,但正如我提到的,我需要获得相似度,是的,我需要从同一位歌手那里找到例如生日快乐,我不需要分配意思是我只需要相似性。 【参考方案1】:

您的推理中有几个假设: 1. 该文件是原始未压缩(PCM 编码)数据。 2. 只有一个频道(单声道)。

最好从阅读一些format descriptions和sample implementations开始,然后搜索一些音频比较算法(1,2,3)。

已链接Q:Compare two spectogram to find the offset where they match algorithm

【讨论】:

【参考方案2】:

执行此操作的一种方法是将信号从 44100 Hz 重新采样到 48000 Hz,因此两个信号具有相同的采样率,并执行互相关。互相关的形状可以是相似性的度量。您可以查看峰的高度,或峰中的能量与总能量的比率。

但请注意,当信号自身重复时,您将获得多个互相关峰值。

【讨论】:

以上是关于计算 2 个时间跨度 DSP 之间的差异的主要内容,如果未能解决你的问题,请参考以下文章

计算 Oracle SQL 中 2 个日期/时间之间的差异

计算时差,结果以 Seconds.ms (xxxx.xxx) 为单位

计算 2 个坐标 iphone 之间的距离 - 最佳实践

ActionScript 3.0 + 计算两个日期之间的时间跨度?

2个数字之间的差异

在R中按组计算日期之间的差异