Как подготовить файлы .WAV для взаимной корреляции с Scipy.Correlate для времени прибытия - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть два аудио-файла .wav, записанных одновременно (микрофоны на открытом воздухе для экспериментального исследования биоакустики). Птица летит над чириканьем, и оба микрофона обнаруживают птицу, но в разные моменты времени.

Обычной задачей является взаимная корреляция двух сигналов и поиск максимальной взаимной корреляции, которая указывает на временную задержку между сигналом, поступающим на один микрофон, по сравнению с другим. Я нахожу код для выполнения именно этого здесь Найти сдвиг во времени двух сигналов с использованием взаимной корреляции

Однако в этом посте, похоже, предполагается, что люди знают, как перевести свои аудиофайлы в полезный формат для этот анализ. Basi c пытается просто использовать мои целые wav-файлы, так как y1 и y2 терпят неудачу из-за того, что данные не в правильном формате

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

Я начал искать, как превратить WAV-файл в массив numpy, но получил ошибки и не знал, что я делал. Я предполагаю, что это как-то связано с выполнением БПФ и превращением аудиофайла в изображение (спектрограмму) для каждого аудиофайла, и эти массивы изображений - это y1 и y2 в приведенном выше примере. Я предполагаю, что эта ссылка говорит об этом. 2D-свертка на основе FFT и корреляция в Python

Как правильно поступить? Большое спасибо.

TLDR. Как мне импортировать и изменять два локально сохраненных файла .wav, чтобы подготовить их к поиску пикового временного отставания путем взаимной корреляции?

...