ffmpeg удалить все немые части из аудиофайла

Я хотел бы вырезать немые части (где мой профессор пишет на доске, но не говорит) из моих конспектов лекций. Я пробовал ffmpeg -i input.mp3 -af silenceremove=1:0:-50dB output.mp3 из этого поста, но удаляет только тишину с начала моего файла.

Можно ли удалить тишину везде одной командой? Мне нужна только речь без всего, что написано на доске. Благодарю вас!


person user195392    schedule 18.12.2020    source источник


Ответы (1)


Достаточно ли низкий порог -50 дБ? Также я предполагаю, что silentremove=1 означает удаление только одной точки. Примеры с большим количеством параметров используют -1 для указания неограниченного количества периодов:

http://underpop.online.fr/f/ffmpeg/help/silenceremove.htm.gz Или: https://ffmpeg.org/ffmpeg-filters.html#toc-silenceremove

Обрезать всю тишину, встречающуюся от начала до конца, если в аудио есть более 1 секунды тишины:

silenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-90dB

(90 дБ может быть слишком низким, зависит от уровня шума)

person Twenkid    schedule 18.12.2020
comment
Спасибо большое. Это сработало очень хорошо! В итоге я использовал ffmpeg -i input.m4a -af silenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-40dB output.mp3, как вы предложили. Я просто немного изменил порог - person user195392; 19.12.2020
comment
Пожалуйста! Кстати, вы можете отметить ответ, если он решит вашу проблему. - person Twenkid; 20.12.2020