Python: сравните два аудио файла, которые могут иметь шум - PullRequest
0 голосов
/ 11 июня 2018

Для целей проекта я записываю аудиоклипы (волновые файлы) из разных областей рядом со сценой.Мне нужно проверить, если источник аудио, т.е.звук со сцены хорошо слышен в соседнем месте сцены, используя звук, записанный из близлежащих мест.

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

1 Ответ

0 голосов
/ 11 июня 2018

Звучит как интересный проект ... чтобы дать общий подход, так как ваш вопрос может охватить обширные области, такие как восприятие и сверточные нейронные сети ... сначала убедитесь, что ваши аудиофайлы выровнены во времени ... подать окносэмплов аудио (скажем, 2 ^ 14, то есть 4096 или более, но всегда с степенью 2) в вызов FFT (дискретное преобразование Фурье), который даст вам массив частотных бинов, каждый из которых имеет величину (отбрасывает атрибут фазы).... затем сравните этот массив FFT между вашим сценическим микрофоном и каждым из окружающих микрофонных файлов ... затем повторите выше, сдвинув это окно сэмплов вперед во времени, и повторяйте, пока вы не ознакомитесь с полным набором сэмплов ... вы можете захотетьпопробуйте выше, используя различные значения ширины этого окна выборки

, также попробуйте различные способы сравнить массив БПФ между парой микрофонных сигналов ... частотным бинам в массиве БПФ с наибольшими величинами следует придать больший вес вэто сравнение, так как вы хотите избежать всегоиз-за шума в частотных блоках низкой величины, чтобы запутать воду - сделайте это, возведя в квадрат амплитуды частот, чтобы подчеркнуть доминирующие частоты и ослабить более тихие частоты ... для простоты в начале используйте кривую синуса в качестве звукового сигнала - ищитемобильное приложение: Frequency Sound Generator - вы получите более простой массив FFT ... цель здесь заключается в том, чтобы в анализе выходного сигнала FFT здесь отображалась только одна частота из вашего источника звука

.Однако вам нужен вызов DFT, если у вас нет времени на то, чтобы подготовить свое собственное ремесло к вышеприведенному подходу. Эти репозитории Python могут ускорить ваш проект

Librosa - библиотека Python для анализа аудио и музыки

https://librosa.github.io/
https://github.com/librosa/librosa

Madmom - библиотека обработки аудио- и музыкальных сигналов Python

https://madmom.readthedocs.io/en/latest/modules/audio/cepstrogram.html?highlight=mfcc https://madmom.readthedocs.io https://github.com/CPJKU/madmom

однако я советую вам не использовать вышеперечисленные библиотеки и просто свернуть свои собственные - YMMV

...