Wie nehme ich mit SoX 10 Sekunden Audio auf?

Wie nehme ich mit SoX 10 Sekunden Audio auf?

Ich möchte 10 Sekunden Audio von meinem Mikrofoneingang aufnehmen mitSoX. Ich habe weder in der Dokumentation noch anderswo ein Beispiel gefunden, das zeigt, wie das geht. Hier ist mein aktueller Befehl, mit dem ich timeoutdie Aufnahme stoppe. Gibt es eine bessere Möglichkeit, das zu tun?

timeout 10 sox -b 32 -e unsigned-integer -r 96k -c 2 -d --clobber --buffer $((96000*2*10)) /tmp/soxrecording.wav

Antwort1

Etwas spät, aber falls jemand die gleiche Frage hatte: Sie müssen den Trimm-„Effekt“ verwenden, um eine festgelegte Audiolänge aufzunehmen.

Um 10 Sekunden Audio aufzunehmen, fügen Sie einfach trim 0 10 am Ende Ihres Befehls an, z. B.

$ sox -b 32 -e unsigned-integer -r 96k -c 2 -d --clobber --buffer $((96000*2*10)) /tmp/soxrecording.wav trim 0 10

Von der SoXMann:

trimmen {position(+)}

Schneidet Teile aus dem Audio aus. Es können beliebig viele Positionen angegeben werden; Audio wird erst an die Ausgabe gesendet, wenn die erste Position erreicht ist. Der Effekt wechselt dann an jeder Position zwischen Kopieren und Verwerfen von Audio. Wenn Sie für den Parameter der ersten Position den Wert 0 verwenden, können Sie vom Anfang des Audios an kopieren.

verwandte Informationen