Я занимаюсь разработкой приложения, в котором загруженное видео автоматически удаляется из шума перед дальнейшей обработкой. Видео содержит дыхательные шумы, разговоры людей и некоторые шумы, создаваемые микрофоном. Я хочу удалить или хотя бы уменьшить фоновые шумы в значительной степени. Как я могу справиться с этим с помощью Python?
Я попытался с помощью ffmpeg установить фильтры верхних и нижних частот, но я не получаю ожидаемый результат. Мои видеофайлы довольно большие (около 800 МБ), и я продолжаю получать ошибки памяти, когда пытаюсь их прочитать.
Ниже приведен код, который я пробовал, но он выдает ошибку памяти. При попытке использовать тот же код с довольно небольшим звуком, шум говорящего ухудшается вместо фонового шума (здесь audio1.mp3 - это звук, извлеченный из видео.)
sound_stereo = AudioSegment.from_file('audio1.mp3', format="mp3")
sound_monoL = sound_stereo.split_to_mono()[0]
sound_monoR = sound_stereo.split_to_mono()[1]
sound_monoR_inv = sound_monoR.invert_phase()
sound_monoL_inv = sound_monoL.invert_phase()
sound_CentersOut = sound_monoL.overlay(sound_monoR_inv)
sound_CentersOut = sound_monoR.overlay(sound_monoL_inv)
fh = sound_CentersOut.export('denoised.mp3', format="mp3")
Любая помощь будет оценена. Заранее спасибо!