Удалить тишину из аудио файлов, оставляя пробелы


16

В настоящее время мы используем эту команду в сценарии оболочки, чтобы удалить тишину из аудиофайлов:

ffmpeg -i $INFILE -af silenceremove=0:0:0:-1:1:${NOISE_TOLERANCE}dB -ac 1 $SILENCED_FILE -y

Это прекрасно работает, за исключением того, что удаляет всю тишину, в результате чего оставшееся аудио сжимается вместе.

Как это можно сделать, оставляя две или три секунды между каждым фрагментом звука?

Решение должно быть очень эффективным, так как мы будем обрабатывать много аудио и использовать инструмент, который можно довольно легко установить как в Linux, так и в OSX, например, ffmpeg или sox.

Ответы:


25

Лучший способ, который я видел, это добавить -lфлаг в тишину следующим образом:

sox in.wav out6.wav silence -l 1 0.1 1% -1 2.0 1%

Я скопировал эту команду из Примера 6 этого очень полезного поста в блоге под названием The Sox of Silence


Проверено, и делает именно то, что мне нужно. Спасибо!
Натан ReinstateMonica Артур

Наконец решение о том, как это работает. Благодарю.
vr_driver

Я хотел бы сделать это для видео и обрезать тишину - сработает ли SoX? Какова лучшая альтернатива?
zero_cool
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.