частотный анализ звука - PullRequest
0 голосов
/ 28 января 2019

Я записываю крики птиц с помощью двух микрофонов.Записи могут занимать до 3 часов, а на смелость уходит каждый день на прослушивание всего файла.Мне нужен скрипт, который берет мой исходный файл и дает мне несколько коротких аудиофайлов, каждый из которых содержит крик птицы.С моими микрофонами я могу записывать в mp3 или wav.Но скрипт должен принимать только крики, которые имеют более высокую частоту, чем нГц.Эта частота представляет фиксированный фоновый звук, который не следует сохранять.Я не знаю, какой язык лучше для этого, и я абсолютно не знаю, как это сделать.

Спасибо вам всем, Томас

Ответы [ 2 ]

0 голосов
/ 04 мая 2019

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

Задача DCASE2018 включала в себя около 1003 * Обнаружение птиц и имеет множество продвинутых методов.В основном все наиболее эффективные системы используют конституциональную нейронную сеть на лог-масштабированных спектроскопиях.Mel-спектрограмма является 2D, поэтому она в основном становится классификацией изображений.Многие из представленных материалов имеют открытый исходный код, поэтому вы можете посмотреть на код и поиграть с ними.Обратите внимание, что они в основном ориентированы на хорошие результаты в исследовательском конкурсе, а не на практические инструменты для разделения нескольких файлов.

Если вы хотите построить для этого собственную модель, я бы порекомендовал использовать Convolutional NeuralСеть предварительно тренируется на изображениях, затем тренируется на данных DCASE2018, а затем тестирует их на своих данных.Это должно дать очень точную систему, хотя ее настройка займет некоторое время.

0 голосов
/ 28 января 2019

Это должно быть довольно легко выполнимо на разных языках, но Python - хорошее место для начала.Я свяжу вас с некоторыми соответствующими ресурсами, чтобы вы могли начать, а затем вы можете сузить свой вопрос, если у вас возникнут проблемы.

Чтобы прочитать ваш аудиофайл в формате .wav, посмотрите эту документацию .

Чтобы взять данные из вашего аудиофайла и поместить их в массив данных, см. этот вопрос и ответ .

Здесь - документациядля вычисления преобразования Фурье ваших данных (для получения частотного содержимого).

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

Вы можете получить некоторые сведения об использовании преобразования Фурье для этого типа приложения из этих вопросов и ответов , и еслиоказывается, что ваша проблема действительно сложная, я бы посоветовал рассмотреть некоторые из методов для распознавания речи .

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

...