GNU/Linux >> Linux Esercitazione >  >> Linux

Converti file audio con questo versatile comando Linux

Lavoro con i media e quando lavori con qualsiasi tipo di media impari abbastanza rapidamente che la standardizzazione è uno strumento prezioso. Proprio come non proveresti ad aggiungere una frazione a un decimale senza convertire l'uno o l'altro, ho imparato che non è l'ideale combinare media di formati diversi. La maggior parte delle applicazioni a livello di hobbisti rendono il processo di conversione invisibile all'utente per comodità. Software flessibile rivolto agli utenti che necessitano di controllare i minimi dettagli delle proprie risorse, tuttavia, spesso lascia a te la possibilità di convertire in anticipo i file multimediali nel formato desiderato. Ho alcuni strumenti preferiti per la conversione, e uno di questi è il cosiddetto coltellino svizzero del suono , SoX.

Installazione

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

Su Linux o BSD, puoi installare sox comando (e alcuni utili collegamenti simbolici) dal tuo repository software o dall'albero dei port.

Puoi anche installare SoX dalla sua casa su Sourceforge.net. Non viene rilasciato spesso, ma la sua base di codice tende a essere stabile, quindi se desideri le funzionalità più recenti (come il supporto per Opus), è facile e sicuro da costruire.

SoX fornisce principalmente il sox comando, ma l'installazione crea anche alcuni utili collegamenti simbolici:play , record e soxi .

Ottenere informazioni sui file con SoX

SoX legge e riscrive i dati audio. Sta a te decidere se memorizzare i dati audio riscritti. Ci sono casi d'uso in cui non è necessario memorizzare i dati convertiti, ad esempio, quando si invia l'output direttamente agli altoparlanti per la riproduzione. Prima di eseguire qualsiasi conversione, tuttavia, di solito è una buona idea determinare esattamente con cosa hai a che fare.

Per raccogliere informazioni su un file audio, usa soxi comando. Questo è un collegamento simbolico a sox --info .

$ soxi countdown.mp3
Input File     : '/home/tux/countdown.mp3'
Channels       : 1
Sample Rate    : 44100
Precision      : 16-bit
Duration       : 00:00:11.21 = 494185 samples...
File Size      : 179k
Bit Rate       : 128k
Sample Encoding: MPEG audio (layer I, II or III)

Questo output ti dà una buona idea del codec in cui è codificato il file audio, della lunghezza del file, della dimensione del file, della frequenza di campionamento e del numero di canali. Alcuni di questi potresti pensare lo sai già, ma non mi fido mai delle supposizioni quando i media mi vengono forniti da un cliente. Verifica gli attributi dei media con soxi .

Conversione di file

In questo esempio, l'audio di un conto alla rovescia di un game show è stato distribuito come file MP3. Sebbene quasi tutte le applicazioni di editing accettino l'audio compresso, nessuna di esse modifica effettivamente i dati compressi. La conversione sta avvenendo da qualche parte, che si tratti di un'attività in background segreta o di una richiesta di salvataggio di una copia. In genere preferisco fare la conversione da solo, in anticipo. In questo modo, posso controllare quale formato sto utilizzando. Posso fare molti media in batch durante la notte invece di sprecare tempo prezioso per la produzione in attesa che un'applicazione di editing li sfogli su richiesta.

Il sox comando è pensato per convertire file audio. Ci sono alcune fasi del sox pipeline:

  • input
  • combina
  • effetti
  • output

Nella sintassi dei comandi, il passaggio degli effetti è, in modo confuso, scritto ultimo . Ciò significa che la pipeline è composta in questo modo:

input → combine → output → effects

Codifica

Il comando di conversione più semplice coinvolge solo un file di input e un file di output. Ecco il comando per convertire un file MP3 in un file FLAC senza perdita di dati:

$ sox countdown.mp3 output.flac
$ soxi output.flac

Input File     : 'output.flac'
Channels       : 1
Sample Rate    : 44100
Precision      : 16-bit
Duration       : 00:00:11.18 = 493056 samples...
File Size      : 545k
Bit Rate       : 390k
Sample Encoding: 16-bit FLAC
Comment        : 'Comment=Processed by SoX'

Effetti

La catena degli effetti è specificata alla fine di un comando. Può alterare l'audio prima di inviare i dati alla destinazione finale. Ad esempio, a volte l'audio troppo alto può causare problemi durante la conversione:

$ sox bad.wav bad.ogg
sox WARN sox: `bad.ogg' output clipped 126 samples; decrease volume?

Applicazione di un guadagno l'effetto spesso può risolvere questo problema:

$ sox bad.wav bad.ogg gain -1

Dissolvenza

Un altro effetto utile è dissolvenza . Questo effetto ti consente di definire la forma di una dissolvenza in entrata o in uscita, insieme a quanti secondi vuoi che la dissolvenza si estenda.

Ecco un esempio di dissolvenza in entrata di sei secondi utilizzando una parabola invertita:

$ sox intro.ogg intro.flac fade p 6

Questo applica una dissolvenza in entrata di tre secondi alla testa dell'audio e una dissolvenza in uscita che inizia al segno di otto secondi (la musica introduttiva è di soli 11 secondi, quindi anche la dissolvenza in chiusura è di tre secondi in questo caso) :

$ sox intro.ogg intro.flac fade p 3 8

I diversi tipi di dissolvenze (seno, lineare, parabola invertita e così via), nonché le opzioni dissolvenza offerte (fade-in, fade-out), sono elencate in sox pagina man.

Sintassi degli effetti

Ogni plug-in di effetti ha la sua sintassi, quindi fai riferimento alla pagina man per i dettagli su come invocarli.

Gli effetti possono essere collegati a margherita in un comando, almeno nella misura in cui si desidera combinarli. In altre parole, non esiste una sintassi per applicare un flanger effetto solo durante una dissolvenza in chiusura di sei secondi. Per qualcosa di così preciso, hai bisogno di un editor grafico di onde sonore o di una workstation audio digitale come LMMS o Rosegarden. Tuttavia, se hai solo effetti che desideri applicare una volta, puoi elencarli insieme nello stesso comando.

Questo comando applica un guadagno -1 effetto, un tempo allungamento di 1,35 e una dissolvenza in chiusura :

$ sox intro.ogg output.flac gain -1 stretch 1.35 fade p 0 6
$ soxi output.flac

Input File     : 'output.flac'
Channels       : 1
Sample Rate    : 44100
Precision      : 16-bit
Duration       : 00:00:15.10 = 665808 samples...
File Size      : 712k
Bit Rate       : 377k
Sample Encoding: 16-bit FLAC
Comment        : 'Comment=Processed by SoX'

Combinazione dell'audio

SoX può anche combinare file audio, sia concatenandoli che mixandoli.

Per partecipare (o concatenare ) in uno, fornisci più di un file di input nel comando:

$ sox countdown.mp3 intro.ogg output.flac

In questo esempio, output.flac ora contiene il conto alla rovescia audio, seguito immediatamente da introduzione musica.

Tuttavia, se desideri che le due tracce vengano riprodotte l'una sull'altra contemporaneamente, puoi utilizzare il --combine mix opzione:

$ sox --combine mix countdown.mp3 intro.ogg output.flac

Immagina, tuttavia, che i due file di input differissero in qualcosa di più dei soli codec. Non è raro che le tracce vocali vengano registrate in mono (un canale), ma che la musica venga registrata almeno in stereo (due canali). SoX non sceglierà una soluzione predefinita, quindi devi prima standardizzare tu stesso il formato dei due file.

Alterare i file audio

Opzioni relative al nome del file elencato dopo esso. Ad esempio, i --canali opzione in questo comando si applica solo su input.wav e NON a example.ogg o output.flac :

$ sox --channels 2 input.wav example.ogg output.flac

Ciò significa che la posizione di un'opzione è molto significativa in SoX. Se dovessi specificare un'opzione all'inizio del tuo comando, essenzialmente stai solo sovrascrivendo ciò che SoX raccoglie dai file di input da solo. Opzioni poste immediatamente prima dell'output tuttavia, determina come SoX scrive i dati audio.

Per risolvere il precedente problema dei canali incompatibili, puoi prima standardizzare i tuoi input e poi mixare:

$ sox countdown.mp3 --channels 2 countdown-stereo.flac gain -1
$ soxi countdown-stereo.flac

Input File     : 'countdown-stereo.flac'
Channels       : 2
Sample Rate    : 44100
Precision      : 16-bit
Duration       : 00:00:11.18 = 493056 samples...
File Size      : 545k
Bit Rate       : 390k
Sample Encoding: 16-bit FLAC
Comment        : 'Comment=Processed by SoX'

$ sox --combine mix \
countdown-stereo.flac \
intro.ogg \
output.flac

SoX richiede assolutamente più comandi per azioni complesse, quindi è normale creare diversi file temporanei e intermedi secondo necessità.

Audio multicanale

Non tutto l'audio è vincolato a uno o due canali, ovviamente. Se vuoi combinare più canali audio in un unico file, puoi farlo con SoX e --combine merge opzione:

$ sox --combine merge countdown.mp3 intro.ogg output.flac
$ soxi output.flac

Input File     : 'output.flac'
Channels       : 3
[...]

Facile manipolazione dell'audio

Potrebbe sembrare strano lavorare con l'audio senza un'interfaccia visiva e, per alcune attività, SoX non è sicuramente lo strumento migliore. Tuttavia, per molte attività, SoX fornisce un toolkit facile e leggero. SoX è un comando semplice con un potente potenziale. Con esso, puoi convertire l'audio, manipolare canali e forme d'onda e persino generare i tuoi suoni. Questo articolo ha fornito solo una breve panoramica delle sue capacità, quindi vai a leggere la sua pagina man o la documentazione online e poi guarda cosa puoi creare.


Linux
  1. Converti l'audio in batch su Linux con SoundConverter

  2. 10 fantastici suggerimenti e trucchi per lavorare con Linux

  3. Cerca rapidamente i file in Linux con il comando Locate

  4. Come trovare file con il comando fd in Linux

  5. Comando Linux rsync con esempi pratici

Come scaricare file con il comando Curl in Linux

Come scaricare file con il comando Wget in Linux

Converti le schede in spazi nel terminale Linux con il comando Espandi

Tutorial comando trova Linux (con esempi)

lsof Command in Linux con esempi

Comando di comunicazione Linux con esempi