Вопрос или проблема
Мне нужно программное обеспечение, которое может обнаруживать периоды звуков в аудиозаписях, такие как внезапные изменения громкости из-за какой-либо активности или изменения фонового шума. Аудио в основном тихое с некоторым фоновым шумом, например, проезжающим транспортом и гудением оборудования, например, вентиляторов и т. д.
Аудиофайлы довольно длинные, некоторые длятся более 24 часов.
Какое программное обеспечение я могу использовать для этого?
Множество программного обеспечения, связанного с аудио, обладает такой функциональностью, также бесплатная Audacity предлагает функцию под названием Silence Finder, для которой вы можете определить соответствующие уровни.
Очень похожее использование Python и MoviePy для определения голов в футбольных матчах дано и объясняется здесь, с кодом здесь.
Учитывая, что то, о чем вы спрашиваете с аудиофайлом, практически аналогично выполненному для видеofile, я довольно уверен, что вы могли бы адаптировать это под ваш сценарий. Возможно, сохраняя как временные метки периоды, где средняя или пиковая громкость выше среднего или фиксированного порога.
После небольших проб и ошибок вы почти наверняка сможете получить скрипт, который надежно обработает ваши аудиофайлы для вас.
Заметьте, что вышеупомянутое — это все бесплатное, с открытым исходным кодом и кроссплатформенное.
Ответ или решение
Для решения задачи по обнаружению определенных звуковых фрагментов в долгоиграющих аудиозаписях с фоновым шумом, можно использовать ряд программных решений, как бесплатных, так и коммерческих.
Программные решения для обработки аудио
Audacity
Для анализа и обработки аудиофайлов одним из наиболее доступных инструментов является Audacity. Это бесплатное программное обеспечение с открытым исходным кодом, которое предлагает функцию под названием Silence Finder. Данная функция позволяет определить и пометить тишину в аудиозаписях, а также найти моменты, где происходят изменения в уровне громкости. Для использования Silence Finder важно правильно настроить параметры уровня громкости, чтобы софт корректно выделил требуемые временные промежутки.
Кастомизированные решения с использованием Python
Если вам необходимо более гибкое решение, можно рассмотреть создание кастомного инструмента с использованием языка программирования Python. В блоге dellon’s предложено использовать библиотеку MoviePy для автоматизации обнаружения важных моментов в видеозаписях футбольных матчей, что по своей сути очень похоже на вашу задачу с аудиофайлами. Данный подход можно адаптировать для выделения моментов в аудиозаписях, где уровень громкости выходит за рамки заданного порога.
Код и подробное описание уже существующей реализации можно найти по ссылке. Данный скрипт позволяет выполнять анализ аудиопотока, определяя периоды, где среднее или пиковое значение громкости превышает средние значения, и сохранять эти отрезки в отдельные файлы с временными метками.
Выбор подходящего решения
Оба вышеописанных решения бесплатно доступны для любой платформы и имеют открытый исходный код, что дает возможность адаптировать их под конкретные задачи и требования. Рекомендуется начать с Audacity, если вы ищете простое и быстрое решение. Если же требуется более высокий уровень кастомизации, использование Python и MoviePy может стать оптимальным вариантом.
Заключение
Выбрав правильный инструмент и потратив некоторое время на настройку или разработку, вы сможете эффективно автоматизировать процесс обнаружения изменений громкости в длительных аудиозаписях. Надеюсь, данная информация окажется полезной и облегчит ваш выбор.