GNU/Linux >> LINUX-Kenntnisse >  >> Linux

15 fantastische Beispiele zur Manipulation von Audiodateien mit Sound eXchange (SoX)


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:

  1. Rate – Die Abtastrate wird in Abtastungen pro Sekunde angegeben. Zum Beispiel 44100/8000
  2. Datengröße – Die Genauigkeit, mit der die Daten gespeichert werden.  Zum Beispiel 8/16 Bit
  3. Datencodierung – Welche Codierung der Datentyp verwendet. Beispiel:u-law,a-law
  4. 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


Linux
  1. 10 Cat-Befehlsbeispiele zum Verwalten von Dateien unter Linux / UNIX

  2. 7 Patch-Befehlsbeispiele zum Anwenden von Diff-Patch-Dateien unter Linux

  3. So erstellen Sie Sparse-Dateien in Linux mit dem Befehl „dd“.

  4. Führen Sie manuell zwei Dateien mit diff zusammen

  5. Verwenden von scp zum Übertragen einer .txt-Dateiliste von Dateien

So teilen Sie große Audiodateien unter Linux

So teilen Sie Dateien lokal unter Linux mit NitroShare

Verwenden des Cat-Befehls unter Linux mit Beispielen

Kann keine mit Gnome Sound Recorder aufgenommene Datei finden?

5 Wget-Befehlsbeispiele zum Herunterladen von Dateien unter Linux.

Übertragen Sie Dateien mit WinSCP