Настройка звука с различной громкостью (записанные разговоры) с помощью FFMPEG

851
DDS

Я должен «настроить» некоторые записи уроков, которые я посещал. Профессор гулял здесь и там, но мой магнитофон был в определенном месте; теперь у меня есть звуковые дорожки, переходящие от громкого к шепоту. Как я могу справиться с этим с помощью ffmpeg?

1

1 ответ на вопрос

2
slhck

Есть несколько возможностей:

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

  • Используйте динамическое сжатие с compandфильтром. Это уменьшит динамический диапазон (то есть разницу между тихими и громкими частями) на протяжении всей записи. Вы должны найти правильный порог, при котором начинается сжатие, и вы, скорее всего, получите довольно шумные сигналы для мягких частей.

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

По сути, вам просто нужно скачать последнюю статическую сборку ffmpeg отсюда и затем запустить:

ffmpeg -i input.wav -filter:a "dynaudnorm" output.wav 

Скорее всего, вам потребуется настроить параметры фильтра для вашего конкретного случая использования. Используйте примеры, приведенные для compandфильтра, в качестве отправной точки:

Сделайте музыку с тихими и громкими пассажами, подходящими для прослушивания в шумной обстановке:

compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2 

Еще один пример звука с шепотом и взрывом:

compand=0|0:1|1:-90/-900|-70/-70|-30/-9|0/-3:6:0:0:0 

Здесь параметры второго примера, в частности:

attacks=0|0 decays=1|1 points=-90/-900|-70/-70|-30/-9|0/-3 soft-knee=6 gain=0 volume=0 delay=0 

Вы можете отрегулировать усиление, чтобы сохранить ту же динамическую обработку, но настроить ее в соответствии с базовым уровнем входного сигнала.

Кроме того, в качестве графической альтернативы ffmpeg вы можете использовать Audacity и его встроенный компрессор, который обеспечивает тот же эффект, что и compandфильтр в ffmpeg. В вики тоже есть хорошее объяснение опций.

Похожие вопросы