如何准备.WAV文件以便与Scipy.Correlate进行互相关以获得到达时间延迟

2024-05-03 07:53:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我同时录制了两个.wav音频文件(用于生物声学试点研究的室外话筒)。一只鸟飞过头顶发出啁啾声,两个麦克风都能检测到这只鸟,但时间点不同

一项常见任务是将两个信号相互关联,并找出峰值互相关,该峰值互相关表示到达一个麦克风的信号与到达另一个麦克风的信号之间的时间差。我在这里找到了执行此操作的代码Find time shift of two signals using cross correlation

然而,这篇文章似乎假设人们知道如何将他们的音频文件转换成有用的格式进行分析。由于数据格式不正确,在y1和y2时只使用整个wav文件的基本尝试失败

TypeError: ufunc 'multiply' did not contain a loop with signature matching types dtype('<U32') dtype('<U32') dtype('<U32')

我开始四处寻找如何将.wav文件转换为numpy数组,但出现了错误,不知道我在做什么。我假设它与FFT有关,并将音频文件转换为每个音频文件的图像(频谱图),这些图像阵列是上面示例中的y1和y2。我想这个链接是在谈论这个FFT-based 2D convolution and correlation in Python

正确的方法是什么?多谢各位

TLDR。我应该如何导入和修改两个本地保存的.wav文件,以便通过互相关查找峰值时间延迟


Tags: 文件图像fft信号生物音频文件dtypewav