Entfernen Sie die Stille von Audiodateien, während Sie Lücken lassen

16

Derzeit verwenden wir diesen Befehl in einem Shell-Skript, um Stille aus Audiodateien zu entfernen:

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

Dies funktioniert einwandfrei, mit der Ausnahme, dass die gesamte Stille beseitigt wird und der verbleibende Ton zusammengedrückt wird.

Wie geht das, wenn zwischen den einzelnen Audiodateien zwei oder drei Sekunden liegen?

Die Lösung muss sehr effizient sein, da wir eine Menge Audio verarbeiten und ein Tool verwenden sollten, das sowohl unter Linux als auch unter OSX relativ einfach installiert werden kann, wie zum Beispiel ffmpeg oder sox.

Nathan GoFundMonica Arthur
quelle

Antworten:

25

Der beste Weg, den ich gesehen habe, ist das Hinzufügen der -lFlagge zur Stille wie folgt:

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

Ich habe diesen Befehl aus Beispiel 6 dieses sehr nützlichen Blogposts mit dem Namen The Sox of Silence kopiert

Ben T
quelle
Getestet und macht genau das, was ich brauche. Vielen Dank!
Nathan GoFundMonica Arthur
Endlich eine Lösung, wie es funktioniert. Vielen Dank.
vr_driver
Ich würde das gerne für ein Video machen und die Stille drosseln - wird SoX funktionieren? Was ist die beste Alternative?
zero_cool