我有两个不同麦克风(例如,WAV格式)的相同信号的两个音频录音,但其中一个录音有延迟,例如几秒钟。两个音频信号之间的时间延迟估计
很容易直观地识别某种波形查看器查看这些信号时,这样的延迟 - 即刚刚察觉在每一个信号第一个可见的峰值,并确保它们是相同的形状:
http://www.greycat.ru/temp/time-delay-peaks.png
但是,我该如何编程 - 找出这个延迟(t)是什么?两个数字化信号稍有不同(因为麦克风不同,位于不同位置,由于ADC设置等原因)。
我已经挖了一下,发现这个问题通常被称为“时间延迟估计”,它有无数的方法 - 例如,one of them。
但是,是否有任何简单的现成解决方案,如命令行实用程序,库或直接提供的算法?
结论:我发现没有简单的实现,并且自己做了一个简单的命令行工具 - 可在https://bitbucket.org/GreyCat/calc-sound-delay(GPLv3许可)下使用。它实现了在Wikipedia中描述的非常简单的最大搜索算法。
是的,互相关,正好。如果可以推测出一个好的起点,那么可以减少提及计算的好处。 – Dan 2011-02-11 13:41:18