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:
- Frekvence – Vzorkovací frekvence je ve vzorcích za sekundu. Například 44100/8000
- Velikost dat – přesnost, s jakou jsou data uložena. Například 8/16 bitů
- Kódování dat – jaké kódování datový typ používá. Například u-law,a-law
- 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