Мне нужно проанализировать много аудио WAV-файлов на предмет характерного шума, идеи? - PullRequest
1 голос
/ 30 мая 2019

Мне нужно иметь возможность анализировать (искать по) сотни файлов WAV и обнаруживать, но не удалять статический шум.Как и сейчас, я должен прослушивать каждый разговор и вручную находить характерный шум / статический шум, что занимает слишком много времени.В идеале мне нужна программа, которая может считывать каждый новый WAV-файл и иметь возможность обнаруживать характерные сигнатуры статического шума, такие как периоды вспышек белого шума или полного звукового диапазона, шум с высокой амплитудой (например, радиопомехи AM во время телефонного разговора, напримеркак стена белого шума) или всплески высокочастотной высокой частоты (как при потрескивании на телефонной линии) на фоне нормального голоса.Мне не нужно удалять шум, а просто обнаружить его и пометить запись для дальнейшего устранения неполадок.Идеи?

Я могу прослушать записи и найти статические или потрескивающие, но это требует времени.Мне нужен автоматизированный или пакетный процесс, который может работать сам по себе и помечать записи проблемных вызовов (файлы WAV для телефонной АТС).Это SIP и аналоговые разговоры, в зависимости от участка разговора, поэтому анализ пакетов RTSP / SIP может быть вариантом, но необработанный файл WAV является самым простым.Я могу использовать Audacity, но для этого по-прежнему требуется открывать каждый файл и смотреть на визуальное представление аудиоспектрометрии, и это только немного быстрее, чем прослушивание каждого вызова, но все же громоздко.

В настоящее время у меня нет кода или методов для этой задачи.Я просто слушаю каждый вызов WAV-файл, чтобы найти шум.

Мне нужен пакетный WAV-поиск файлов, который может отображать записи WAV-файлов, которые содержат характерный шум, статические помехи или потрескивание при записи телефонного разговора.

1 Ответ

1 голос
/ 30 мая 2019

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

По сути, он визуализирует звук в виде двумерного графика рассеяния, а не только "линейный", как в форме волны или спектрограммы.При загрузке аудио происходит следующее:

  1. Обнаружены включения (на основе алгоритма высокочастотного содержимого от aubio ) в соответствии с установленным порогом.Установите значение None, если хотите все.
  2. Для каждого аудио фрагмента, рассчитайте аудио функции на основе вашего выбора.Универсального лучшего набора функций не существует, все зависит от приложения.Вы можете попробовать для начала, например, Pitch statistics.Подумайте об установке правильных значений для полосового фильтра и длины семпла (это длина аудио фрагмента, который мы собираемся использовать).Длина образца в будущем может быть установлена ​​динамически.Проверьте docs для получения дополнительной информации.
  3. В результате у каждого фрагмента будет много функций, например, 6 или 60. Это означает, что мы имеем k -мерный (где kэто количество функций) структура, которую мы затем проецируем на 2d пространство с алгоритмом уменьшения размерности по вашему выбору. Приближение и проекция равномерного коллектора - это правильный выбор.
  4. Теоретически, получившееся вложение должно быть таким, чтобы похожие звуки (в соответствии с выбранными нами характеристиками) были близко друг к другу, но отличались друг от друга.Теперь ваш шум должен быть отделен от вашего «не шума» и кластера форм.
  5. Когда вы наводите курсор на график, в правом верхнем углу появляется набор значков.Одним из них является выбор лассо.Используйте его для маркировки точек, осмотра спектрограммы и, например, таблицы загрузки с функциями, которые описывают этот сигнал.В этот момент вы также можете уменьшить шум (появляется дополнительная кнопка) аналогично Audacity - он анализирует спектр и уменьшает эти частоты с некоторым сглаживанием.

Это делаетне полностью решить вашу проблему прямо сейчас, но может серьезно сократить усилия.Прохождение сотен wavs могло бы занять лучшую часть дня, но вы будете сделаны.Хотите автоматизировать?Есть CLI (интерфейс командной строки), который я разрабатываю одновременно.В не слишком отдаленном будущем он должен принять то, что вы пометили как шум и сигнал , а затем использовать контролируемое машинное обучение для прохождения всего в пакетном режиме.

Предложения / отзывы?Удалите проблему на GitHub .

...