Usuń ciszę z plików audio, pozostawiając luki


16

Obecnie używamy tego polecenia w skrypcie powłoki, aby usunąć ciszę z plików audio:

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

Działa to dobrze, ale usuwa całą ciszę, powodując ściśnięcie pozostałego dźwięku.

Jak można to zrobić, pozostawiając dwie lub trzy sekundy między poszczególnymi utworami?

Rozwiązanie musi być bardzo wydajne, ponieważ będziemy przetwarzać dużo dźwięku i powinno używać narzędzia, które można dość łatwo zainstalować zarówno w systemie Linux, jak i OSX, takie jak ffmpeg lub sox.

Odpowiedzi:


25

Najlepszym sposobem, jaki widziałem, jest dodanie -lflagi do wyciszenia w następujący sposób:

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

Skopiowałem to polecenie z przykładu 6 tego bardzo przydatnego postu na blogu o nazwie The Sox of Silence


Testowany i robi dokładnie to, czego potrzebuję. Dziękuję Ci!
Nathan Reinstate Monica Arthur

Wreszcie rozwiązanie, jak to działa. Dzięki.
vr_driver

Chciałbym to zrobić dla filmu i uciszyć ciszę - czy SoX zadziała? Jaka jest najlepsza alternatywa?
zero_cool
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.