Manipolare file audio con SoX
Introduzione
SoX (Sound eXchange) è uno strumento multipiattaforma di manipolazione di file audio. Con esso è possibile convertire e modificare (cambiare attributi, aggiungere effetti, ecc…) oltre 20 diversi formati audio.
Per una lista dei formati supportati, completa di informazioni:
$ sox --help-format all
Sintetizzare un file audio
SoX mette a disposizioni alcune semplici funzioni di sintetizzazione (o creazione) di file audio.
$ sox -n synth [lunghezza] [tipo] [frequenza]
Dove:
- [lunghezza] sta per la lunghezza dell’audio da sintetizzare (formato hh:mm:ss.frac).
- [tipo] per il tipo di audio da sintetizzare, che può essere: sine, square, triangle, sawtooth, trapezium, exp, noise, pinknoise, brownnoise.
- [frequenza] per la frequenza di inizio e di fine del file (es 300/3000).
Un esempio può essere:
$ sox -r 16000 -n out.wav synth 5 triangle 300-3000
(NOTA: -r indica il sample rate e -n il file di output. È possibile utilizzare il formato preferito tra quelli disponibili)
Convertire un file audio
SoX è molto utile nella conversione di file audio in diversi formati. Può individuare il formato dei file (sia in input che output) semplicemente dall’estensione del file stesso.
$ sox input.wav output.dat
Ma è anche possibile indicare i formati desiderati tramite l’opzione ‘-t’:
$ sox -t wav input -t dat output
Modificare il volume
Grazie a SoX è anche possibile aumentare o diminuire il volume di un file. Ad esempio, per aumentare:
$ sox -v 5.0 file.wav
Mentre per diminuire
$ sox -v -0.5 file.wav
Combinare due file audio
Grazie all’opzione ‘-m’ è possibile combinare (o mixare) due file in uno unico
$ sox -m file1.wav file2.wav output.wav
In alternativa è anche disponibile il comando ’soxmix’
$ soxmix file1.wav file2.wav output.wav
Estrarre una parte di file
L’opzione ‘trim’ serve a estrarre una data parte di file.
sox input.wav output.wav trim [inizio] [durata]
Dove:
- [inizio] indica il punto da cui iniziare ad estrarre
- [durata] indica la durata in secondi della parte da estrarre.
Ad esempio:
sox input.wav output.wav trim 5 10
Estrae 10 secondi da inut.wav partendo dal quinto secondo.
Aumentare la velocità
Per aumentrae la velocità di un file audio è sufficiente utilizzare l’effetto ’speed’, indicando il fattore di “accellerazione”. Aumentando la velocità, automaticamente sarà ridotta la durata.
sox input.wav output.wav speed [fattore]
Ad esempio utilizzando un fattore di 2, la velocità viene raddoppiata, mentre la durata si dimezza.
Fade
È possibile aggiungere un effetto di fade-in e fade-out ad un file
$ sox input.wav output.wav fade [tipo] [lunghezza fade-in] [tempo di stop] [lunghezza fade-out]
Dove:
- [tipo] sta per il tipoo di fade (q, h, t, l, p).
- [lunghezza fade-in] la lunghezza del fade-in (è anche possibile impostarla a 0).
- [tempo di stop] il punto in cui iniziare il fade-out (opzionale).
- [lunghezza fade-out] la lunghezza del fade-out (opzionale).
Riprodurre un file audio
Dopo aver creato/modificato un file è anche possibile eseguirlo:
$ sox input.wav -t alsa
Oppure:
$ play input.wav
Conclusioni
Questi sono solo alcune (diciamo le principali) delle innumerevoli funzionalità di SoX. Per ottenere un lista (completa di opzioni) di tutti gli effetti disponibili:
$ sox --help-effect all
Oltre che naturalmente
$ man sox
AlexBio's Blog

No Comments Yet