这可能是一个广泛的答案,但我希望看到答案并与SO用户讨论这个主题。
到目前为止,我猜一个音频文件(WAV)的采样率可能是44000或48000(我见过大多数这两个),从中我们可以确定单个秒进入文件(第二个00: 00:01)正好有44000个整数值,这意味着我们有一个Int[]
,所以如果音频文件持续时间是5秒,它有5 * 44000个整数(或5个样本)。
所以我的问题是,我们如何计算两个时间跨度之间内容的差异(或相似性),如音频在00:00:01的Audio1.wav和Audio2.wav,且采样率相同。
答案 0 :(得分:1)
您的推理中有几个假设: 1.该文件是原始未压缩(PCM编码)数据。 2.只有一个频道(单声道)。
最好先阅读一些format descriptions和sample implementations,然后搜索一些音频比较算法(1, 2 ,{ {3}})。
关联问:3
答案 1 :(得分:1)
执行此操作的一种方法是将信号从44100 Hz重新采样到48000 Hz,因此两个信号具有相同的采样率,并执行互相关。互相关的形状可以是相似性的度量。您可以查看峰值的高度,或峰值中的能量与总能量的比率。
但请注意,当信号重复出现时,您将获得多个互相关峰值。