在任何人对我大喊大叫之前,我完全意识到这个问题已经被问过无数次了。我向您保证,我已经阅读了现有的问题和答案,但我仍然对部分问题感到困惑。
我有一个在封闭环境中播放音乐 (A) 的声源。我有一个用于录制 A 的麦克风。我剩下两个 wav 文件,它们具有相同的特征和长度(样本数)。
我的目标是计算 A 到达麦克风所需的时间。
我正在尝试使用互相关(numpy)执行计算:
# Delay estimation
corr = numpy.convolve(original_audio, recorded_audio, 'full')
delay = int(len(corr)/2) - numpy.argmax(corr)
distance = delay / sample_rate * 343 # sample_rate == 22050, m/s = speed of sound
print("Distance full: %.2f cm" % (distance * 100))
我始终获得 300,000 厘米范围内的值。扬声器和麦克风之间的距离约为 2 英尺。
这对我来说都是新事物,所以我确定我遗漏了一些明显的东西。
提前致谢。