GNU/Linux >> Znalost Linux >  >> Linux

15 úžasných příkladů pro manipulaci se zvukovými soubory pomocí Sound eXchange (SoX)


Foto s laskavým svolením seana dreilingera


Tento článek je součástí probíhající série Software for Geeks. SoX znamená Tak a eX změna. SoX je multiplatformní nástroj příkazového řádku pro zvuk, který funguje v systémech Linux, Windows a MacOS. Je velmi užitečný v následujících oblastech při práci se zvukovými a hudebními soubory.

  • Konvertor zvukových souborů
  • Úprava zvukových souborů
  • Změna atributů zvuku
  • Přidání zvukových efektů
  • Plus mnoho pokročilých funkcí pro manipulaci se zvukem


Obecně jsou zvuková data popsána následujícími čtyřmi charakteristikami:

  1. Frekvence – Vzorkovací frekvence je ve vzorcích za sekundu. Například 44100/8000
  2. Velikost dat – přesnost, s jakou jsou data uložena.  Například 8/16 bitů
  3. Kódování dat – jaké kódování datový typ používá. Například u-law,a-law
  4. Kanály – kolik kanálů je obsaženo ve zvukových datech. Například kanály Stereo 2

SoX podporuje více než 20 formátů zvukových souborů. Chcete-li získat seznam všech podporovaných formátů, spusťte sox -h z příkazového řádku. Jednou z hlavních výhod audio/hudebního nástroje příkazového řádku je snadné použití ve skriptech pro provádění složitějších úkolů v dávkovém režimu.

Všech 15 níže uvedených příkladů lze použít k manipulaci se zvukovými soubory v systémech Unix, Windows a MacOS. Ujistěte se, že jste si stáhli odpovídající nástroj SoX pro vaši platformu ze stránky stahování SoX – Sound eXchange.

1. Kombinace více zvukových souborů do jednoho souboru

S parametrem -m sox přidá dva vstupní soubory dohromady, aby vytvořil svůj výstup. Níže uvedený příklad přidá first_part.wav a second_part.wav a výsledek zůstane v whole_part.wav. Pro tento účel můžete také použít příkaz soxmix.

$ sox -m first_part.wav second_part.wav whole_part.wav

(or)

$ soxmix first_part.wav second_part.wav whole_part.wav

2. Extrahujte část zvukového souboru

Trim může oříznout nežádoucí zvuk ze zvukového souboru.

Syntax : sox old.wav new.wav trim [SECOND TO START] [SECONDS DURATION].
  • SECOND TO START – Počáteční bod v hlasovém souboru.
  • DOBA VTEŘIN – Délka trvání hlasového souboru k odstranění.

Níže uvedený příkaz extrahuje prvních 10 sekund z input.wav a uloží je do output.wav

$ sox input.wav output.wav trim 0 10

3. Zvýšit a snížit hlasitost pomocí volby -v

Volba -v se používá ke změně (zvýšení nebo snížení) hlasitosti.

Zvýšení hlasitosti

$ sox -v 2.0 foo.wav bar.wav

Snížit hlasitost

Pokud potřebujeme u některých souborů snížit hlasitost, můžeme je snížit pomocí záporných čísel. Nižší záporné číslo bude měkčí. V následujícím příkladu bude 1. příkaz (-0,5) hlasitější než 2. příkaz (-0,1)

$ sox -v -0.5 srcfile.wav test05.wav

$ sox -v -0.1 srcfile.wav test01.wav

4. Získat informace o zvukovém souboru

Volba stat může poskytnout mnoho statistických informací o daném zvukovém souboru. Parametr -e říká sox, aby negeneroval žádný jiný výstup než statistické informace.

$ 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. Přehrajte zvukovou skladbu

Sox poskytuje možnost přehrávání a nahrávání zvukových souborů. Tento příklad vysvětluje, jak přehrát zvukový soubor v systémech Unix, Linux. Přehrávání zvukového souboru se provádí zkopírováním souboru do speciálního souboru zařízení /dev/dsp. Následující příkaz přehraje soubor music.wav:Volba -t určuje typ souboru /dev/dsp.

$ sox music.wav -t ossdsp /dev/dsp

Pro přehrání zvukového souboru můžete také použít příkaz play, jak je znázorněno níže.

Syntax :play options Filename audio_effects

$ play -r 8000 -w music.wav

6. Přehrajte zvukovou skladbu pozpátku

K obrácení zvuku ve zvukovém souboru použijte efekt „reverse“. Tím se soubor obrátí a výsledek se uloží do output.wav

$ sox input.wav output.wav reverse

Můžete také použít příkaz play pro poslech skladby obráceně, aniž byste museli upravovat zdrojový soubor, jak je znázorněno níže.

$ play test.wav reverse

7. Nahrajte hlasový soubor

Příkazy ‚play‘ a ‚rec‘ jsou doprovodné příkazy pro sox . /dev/dsp je digitální vzorkovací a digitální záznamové zařízení. Načtením zařízení se aktivuje A/D převodník pro záznam a analýzu zvuku. /dev/dsp funguje jak pro přehrávání, tak pro nahrávání zvukových vzorků.

$ sox -t ossdsp /dev/dsp test.wav

Pro nahrávání hlasu můžete také použít příkaz rec. Pokud je SoX vyvoláno jako „rec“, výchozí zvukové zařízení se použije jako vstupní zdroj.

$ rec -r 8000 -c 1 record_voice.wav

8. Změna vzorkovací frekvence zvukového souboru

Chcete-li změnit vzorkovací frekvenci zvukového souboru, použijte volbu -r následovanou vzorkovací frekvencí v Hertzech. Pomocí následujícího příkladu změňte vzorkovací frekvenci souboru ‚old.wav‘ na 16000 Hz a zapište výstup do ‚new.wav‘

$ sox old.wav -r 16000 new.wav

9. Změna velikosti vzorkování zvukového souboru

Pokud zvětšíme velikost vzorku, získáme lepší kvalitu. Velikost vzorku pro zvuk se nejčastěji vyjadřuje jako 8 bitů nebo 16 bitů. Pro záznam hlasu se častěji používá 8bitový zvuk.

  • -b Velikost ukázkových dat v bajtech
  • -w Velikost vzorových dat ve slovech
  • -l Velikost vzorku dat v dlouhých slovech
  • -d Ukázková velikost dat ve dvakrát dlouhých slovech

Následující příklad převede 8bitový zvukový soubor na 16bitový zvukový soubor.

$ sox -b input.wav -w output.wav

10. Změna počtu kanálů

Následující příklad převádí monofonní zvukové soubory na stereo . Pomocí volby -c zadejte počet kanálů .

$ sox mono.wav -c 2 stereo.wav

Existují způsoby, jak převést stereofonní zvukové soubory na mono zvuk . tj. získat jeden kanál ze stereo souboru.

Výběr konkrétního kanálu

To se provádí pomocí efektu avg s možností indikující, který kanál použít. Možnosti jsou -l pro levou stranu, -r pro pravou stranu, -f pro přední stranu a -b pro zadní stranu. Následující příklad vyjme levý kanál

$ sox stereo.wav -c 1 mono.wav avg -l

Průměr kanálů

$ sox stereo.wav -c 1 mono.wav avg

11. Audio Converter – Převod formátu hudebních souborů

Sox je užitečný pro převod jednoho zvukového formátu do druhého. tj. z jednoho kódování (ALAW, MP3) do druhého. Sox dokáže rozpoznat vstupní a požadované výstupní formáty analýzou přípon názvů souborů. Vezme infile.ulaw a vytvoří GSM kódovaný soubor s názvem outfile.gsm. Můžete také použít sox pro převod wav na mp3 .

$ sox infile.ulaw outfile.gsm

Pokud soubor nemá ve svém názvu příponu, pomocí volby „-t“ můžeme vyjádřit svůj záměr. Volba -t se používá k určení typu kódování .

$ sox -t ulaw infile -t gsm outfile

12. Generovat různé typy zvuků

Pomocí syntezátorového efektu můžeme generovat řadu standardních vlnových forem a typů šumu. Ačkoli se tento efekt používá ke generování zvuku, musí být stále zadán vstupní soubor, pro zadání vstupního souboru jako nulového souboru se používá volba „-n“.

$ sox -n synth len type freq
  • len – délka zvuku k syntéze. Formát pro určení délek v čase je hh:mm:ss.frac
  • typ je sinus, čtverec, trojúhelník, pila, lichoběžník, exp, [bílý]šum, růžový šum, hnědý-
    šum. Výchozí je sinus
  • f požadavek – frekvence na začátku/konci syntézy v Hz

Následující příklad vytvoří 3sekundový 8000 kHz zvukový soubor obsahující sinusový průběh od 300 do 3300 Hz

$ sox -r 8000 -n output.au synth 3 sine 300-3300

13. Zrychlete zvuk ve zvukovém souboru

Chcete-li zrychlit nebo zpomalit zvuk souboru, použijte rychlost k úpravě výšky a trvání souboru. To zvyšuje rychlost a zkracuje čas. Výchozí faktor je 1,0, který nijak nemění zvuk. 2.0 zdvojnásobuje rychlost, takže délka času je zkrácena na polovinu a výška tónu je o jeden interval vyšší.

Syntax: sox input.wav output.wav speed factor

$ sox input.wav output.wav speed 2.0

14. Vícenásobné změny zvukového souboru jedním příkazem

Ve výchozím nastavení se SoX pokouší zapsat zvuková data pomocí stejného datového typu, vzorkovací frekvence a počtu kanálů jako u vstupních dat. Pokud uživatel chce, aby výstupní soubor měl jiný formát, musí zadat možnosti formátu. Pokud formát výstupního souboru nepodporuje stejný typ dat, vzorkovací frekvenci nebo počet kanálů jako daný formát vstupního souboru, SoX automaticky vybere nejbližší hodnoty, které podporuje.

Převod wav na raw. Následující příklad převede vzorkovací frekvenci, velikost vzorkování, kanál v jediném příkazovém řádku.

$ sox -r 8000 -w -c 1 -t wav source -r 16000 -b -c 2 -t raw destination

15. Převést nezpracovaný zvukový soubor na hudební soubor MP3

Neexistuje žádný způsob, jak přímo převést soubor raw na soubor mp3, protože soubor mp3 bude vyžadovat informace o kompresi ze souboru raw. Nejprve musíme převést raw na wav. A pak převést wav na mp3. V níže uvedeném příkladu volba -h označuje vysokou kvalitu.

Převést nezpracovaný formát na formát WAV:

$ sox -w -c 2 -r 8000 audio1.raw audio1.wav

Převést formát WAV na formát MP3:

$ lame -h audio1.wav audio1.mp3


Tento článek napsal SelvaGaneshan. S Pracuje ve společnosti bk Systems (p) Ltd a má zájem přispívat do open source. The Geek Stuff uvítá vaše tipy a články pro hosty


Linux
  1. 10 příkladů příkazů Cat pro správu souborů v systému Linux / UNIX

  2. 7 Příklady příkazů Patch pro použití souborů oprav rozdílů v systému Linux

  3. Jak sloučit dva soubory pomocí AWK?

  1. Převádějte zvukové soubory pomocí tohoto všestranného příkazu Linux

  2. Ansible Guide:Správa souborů pomocí Ansible

  3. Použití linuxového příkazu find – Použití s ​​příklady

  1. Použití Logrotate v linuxu ke správě souborů protokolu (s příklady)

  2. Jak analyzovat segment zvukového souboru pomocí Sox?

  3. 5 příkladů příkazů Wget ke stažení souborů v Linuxu.