Foto mit freundlicher Genehmigung von sean dreilinger
Dieser Artikel ist Teil der fortlaufenden Software für Geeks-Reihe. SoX steht für Also und eX Rückgeld. SoX ist ein plattformübergreifendes Befehlszeilen-Audiodienstprogramm, das unter Linux, Windows und MacOS funktioniert. Es ist in den folgenden Bereichen beim Umgang mit Audio- und Musikdateien sehr hilfreich.
- Audiodateikonverter
- Audiodateien bearbeiten
- Audioattribute ändern
- Hinzufügen von Audioeffekten
- Plus viele fortschrittliche Klangbearbeitungsfunktionen
Im Allgemeinen werden Audiodaten durch die folgenden vier Merkmale beschrieben:
- Rate – Die Abtastrate wird in Abtastungen pro Sekunde angegeben. Zum Beispiel 44100/8000
- Datengröße – Die Genauigkeit, mit der die Daten gespeichert werden. Zum Beispiel 8/16 Bit
- Datencodierung – Welche Codierung der Datentyp verwendet. Beispiel:u-law,a-law
- Kanäle – Wie viele Kanäle sind in den Audiodaten enthalten. Zum Beispiel Stereo 2 Kanäle
SoX unterstützt über 20 Audiodateiformate. Um die Liste aller unterstützten Formate zu erhalten, führen Sie sox -h von der Befehlszeile aus. Einer der Hauptvorteile eines Befehlszeilen-Audio-/Musik-Tools ist die einfache Verwendung in Skripten, um komplexere Aufgaben im Stapelmodus auszuführen.
Alle 15 unten aufgeführten Beispiele können verwendet werden, um Audiodateien unter Unix, Windows und MacOS zu manipulieren. Stellen Sie sicher, dass Sie das entsprechende SoX-Dienstprogramm für Ihre Plattform von der SoX – Sound eXchange-Downloadseite herunterladen.
1. Kombinieren Sie mehrere Audiodateien zu einer einzigen Datei
Mit dem Flag -m fügt sox zwei Eingabedateien zusammen, um seine Ausgabe zu erzeugen. Das folgende Beispiel fügt first_part.wav und second_part.wav hinzu und belässt das Ergebnis in whole_part.wav. Sie können zu diesem Zweck auch den Befehl soxmix verwenden.
$ sox -m first_part.wav second_part.wav whole_part.wav (or) $ soxmix first_part.wav second_part.wav whole_part.wav
2. Extrahieren Sie einen Teil der Audiodatei
Trim kann unerwünschtes Audio aus der Audiodatei entfernen.
Syntax : sox old.wav new.wav trim [SECOND TO START] [SECONDS DURATION].
- SECOND TO START – Startpunkt in der Sprachdatei.
- SEKUNDENDAUER – Dauer der zu entfernenden Sprachdatei.
Der folgende Befehl extrahiert die ersten 10 Sekunden aus input.wav und speichert sie in output.wav
$ sox input.wav output.wav trim 0 10
3. Erhöhen und verringern Sie die Lautstärke mit der Option -v
Option -v wird verwendet, um die Lautstärke zu ändern (erhöhen oder verringern).
Volumen erhöhen
$ sox -v 2.0 foo.wav bar.wav
Lautstärke verringern
Wenn wir die Lautstärke einiger Dateien verringern müssen, können wir sie mit negativen Zahlen verringern. Eine niedrigere negative Zahl wird weicher. Im folgenden Beispiel ist der 1. Befehl (-0,5) lauter als der 2. Befehl (-0,1)
$ sox -v -0.5 srcfile.wav test05.wav $ sox -v -0.1 srcfile.wav test01.wav
4. Informationen zu Audiodateien abrufen
Die Stat-Option kann viele statistische Informationen über eine bestimmte Audiodatei liefern. Das Flag -e weist sox an, keine andere Ausgabe als die statistischen Informationen zu erzeugen.
$ sox foo.wav -e stat Samples read: 3528000 Length (seconds): 40.000000 Scaled by: 2147483647.0 Maximum amplitude: 0.999969 Minimum amplitude: -1.000000 Midline amplitude: -0.000015 Mean norm: 0.217511 Mean amplitude: 0.003408 RMS amplitude: 0.283895 Maximum delta: 1.478455 Minimum delta: 0.000000 Mean delta: 0.115616 RMS delta: 0.161088 Rough frequency: 3982 Volume adjustment: 1.000
5. Spielen Sie einen Audio-Song ab
Sox bietet die Option zum Abspielen und Aufnehmen von Sounddateien. Dieses Beispiel erklärt, wie man eine Audiodatei unter Unix, Linux abspielt. Das Abspielen einer Sounddatei erfolgt durch Kopieren der Datei in die spezielle Gerätedatei /dev/dsp. Der folgende Befehl spielt die Datei music.wav ab:Option -t spezifiziert den Typ der Datei /dev/dsp.
$ sox music.wav -t ossdsp /dev/dsp
Sie können auch den Wiedergabebefehl verwenden, um die Audiodatei wie unten gezeigt abzuspielen.
Syntax :play options Filename audio_effects $ play -r 8000 -w music.wav
6. Einen Audio-Song rückwärts abspielen
Verwenden Sie den Umkehreffekt, um den Ton in einer Tondatei umzukehren. Dadurch wird die Datei umgedreht und das Ergebnis in output.wav
gespeichert$ sox input.wav output.wav reverse
Sie können auch den Wiedergabebefehl verwenden, um den Song rückwärts zu hören, ohne die Quelldatei zu ändern, wie unten gezeigt.
$ play test.wav reverse
7. Nehmen Sie eine Sprachdatei auf
Die Befehle „play“ und „rec“ sind Begleitbefehle für sox . /dev/dsp ist das digitale Sampling- und digitale Aufnahmegerät. Das Lesen des Geräts aktiviert den A/D-Wandler für die Tonaufnahme und -analyse. /dev/dsp-Datei funktioniert sowohl zum Abspielen als auch zum Aufnehmen von Soundsamples.
$ sox -t ossdsp /dev/dsp test.wav
Sie können auch den Befehl rec zum Aufnehmen von Sprache verwenden. Wenn SoX als „rec“ aufgerufen wird, wird das Standard-Soundgerät als Eingangsquelle verwendet.
$ rec -r 8000 -c 1 record_voice.wav
8. Ändern der Abtastrate einer Sounddatei
Um die Abtastrate einer Sounddatei zu ändern, verwenden Sie die Option -r gefolgt von der zu verwendenden Abtastrate in Hertz. Verwenden Sie das folgende Beispiel, um die Abtastrate der Datei „old.wav“ auf 16000 Hz zu ändern und die Ausgabe in „new.wav“ zu schreiben
$ sox old.wav -r 16000 new.wav
9. Ändern der Samplinggröße einer Sounddatei
Wenn wir die Stichprobengröße erhöhen, erhalten wir eine bessere Qualität. Die Sample-Größe für Audio wird am häufigsten als 8 Bit oder 16 Bit ausgedrückt. 8-Bit-Audio wird häufiger für Sprachaufnahmen verwendet.
- -b Beispieldatengröße in Bytes
- -w Beispieldatengröße in Worten
- -l Beispieldatengröße in langen Wörtern
- -d Beispieldatengröße in doppelt langen Wörtern
Das folgende Beispiel konvertiert eine 8-Bit-Audiodatei in eine 16-Bit-Audiodatei.
$ sox -b input.wav -w output.wav
10. Ändern der Anzahl der Kanäle
Das folgende Beispiel konvertiert Mono-Audiodateien in Stereo . Verwenden Sie die Option -c, um die Anzahl der Kanäle anzugeben .
$ sox mono.wav -c 2 stereo.wav
Es gibt Methoden zum Konvertieren von Stereo-Sounddateien in Mono-Sound . d.h. um einen einzelnen Kanal aus einer Stereodatei zu erhalten.
Auswählen eines bestimmten Kanals
Dies geschieht durch Verwendung des Avg-Effekts mit einer Option, die angibt, welcher Kanal verwendet werden soll. Die Optionen sind -l für links, -r für rechts, -f für vorne und -b für hinten. Das folgende Beispiel extrahiert den linken Kanal
$ sox stereo.wav -c 1 mono.wav avg -l
Durchschnitt der Kanäle
$ sox stereo.wav -c 1 mono.wav avg
11. Audio Converter – Konvertieren von Musikdateiformaten
Sox ist nützlich, um ein Audioformat in ein anderes zu konvertieren. d.h. von einer Kodierung (ALAW, MP3) zu einer anderen. Sox kann die Eingabe- und gewünschten Ausgabeformate erkennen, indem es die Dateinamenerweiterungen analysiert. Es nimmt infile.ulaw und erstellt eine GSM-kodierte Datei namens outfile.gsm. Sie können auch sox verwenden, um wav in mp3 umzuwandeln .
$ sox infile.ulaw outfile.gsm
Wenn die Datei keine Erweiterung in ihrem Namen hat, können wir mit der Option „-t“ unsere Absicht ausdrücken. Option -t wird verwendet, um den Codierungstyp anzugeben .
$ sox -t ulaw infile -t gsm outfile
12. Erzeuge verschiedene Arten von Geräuschen
Mit dem Synth-Effekt können wir eine Reihe von Standard-Wellenformen und Rauscharten erzeugen. Obwohl dieser Effekt zum Generieren von Audio verwendet wird, muss dennoch eine Eingabedatei angegeben werden, die Option „-n“ wird verwendet, um die Eingabedatei als Nulldatei anzugeben.
$ sox -n synth len type freq
- len – Länge des zu synthetisierenden Audios. Das Format zur Angabe von Zeitlängen ist hh:mm:ss.frac
- tippen ist eines von Sinus, Quadrat, Dreieck, Sägezahn, Trapez, exp, [weißes] Rauschen, rosa Rauschen, braunes Rauschen. Standard ist Sinus
- f erforderlich – Frequenzen am Anfang/Ende der Synthese in Hz
Das folgende Beispiel erzeugt eine 3 Sekunden lange Audiodatei mit 8000 kHz, die eine Sinuswelle enthält, die von 300 bis 3300 Hz gewobbelt wird
$ sox -r 8000 -n output.au synth 3 sine 300-3300
13. Beschleunigen Sie den Ton in einer Audiodatei
Um den Ton einer Datei zu beschleunigen oder zu verlangsamen, verwenden Sie speed, um die Tonhöhe und die Dauer der Datei zu ändern. Das erhöht die Geschwindigkeit und reduziert die Zeit. Der Standardfaktor ist 1,0, was keine Änderung am Audio bewirkt. 2.0 verdoppelt die Geschwindigkeit, wodurch die Zeitdauer um die Hälfte verkürzt wird und die Tonhöhe ein Intervall höher ist.
Syntax: sox input.wav output.wav speed factor $ sox input.wav output.wav speed 2.0
14. Mehrere Änderungen an einer Audiodatei in einem einzigen Befehl
Standardmäßig versucht SoX, Audiodaten mit demselben Datentyp, derselben Abtastrate und derselben Kanalanzahl wie bei den Eingabedaten zu schreiben. Wenn der Benutzer möchte, dass die Ausgabedatei ein anderes Format hat, muss der Benutzer Formatoptionen angeben. Wenn ein Ausgabedateiformat nicht denselben Datentyp, dieselbe Abtastrate oder dieselbe Kanalzahl wie das angegebene Eingabedateiformat unterstützt, wählt SoX automatisch die ähnlichsten Werte aus, die es unterstützt.
WAV in RAW umwandeln. Das folgende Beispiel konvertiert Abtastrate , Abtastgröße , Kanal in einer einzigen Befehlszeile .
$ sox -r 8000 -w -c 1 -t wav source -r 16000 -b -c 2 -t raw destination
15. Rohe Audiodatei in MP3-Musikdatei umwandeln
Es gibt keine Möglichkeit, RAW-Dateien direkt in MP3-Dateien zu konvertieren, da MP3 Komprimierungsinformationen aus der RAW-Datei benötigt. Zuerst müssen wir raw in wav umwandeln. Und dann wav in mp3 umwandeln. Im Beispiel unten zeigt die Option -h eine hohe Qualität an.
Raw-Format in Wav-Format konvertieren:
$ sox -w -c 2 -r 8000 audio1.raw audio1.wav
Wave-Format in MP3-Format konvertieren:
$ lame -h audio1.wav audio1.mp3
Dieser Artikel wurde von SelvaGaneshan geschrieben. S Er arbeitet bei bk Systems (p) Ltd und ist daran interessiert, zu Open Source beizutragen. The Geek Stuff freut sich über Ihre Tipps und Gastartikel