Ceci est une ancienne révision du document !



SoX

SoX est un logiciel de traitement de son en ligne de commande. Il consiste en une suite d'outils permettant par exemple de changer le format, de filtrer, de rajouter des fondus, d'analyser un fichier, etc.

Il vous suffit, pour cela, d'installer le paquet sox.

Afin de profiter pleinement des possibilités de SoX (comme la manipulation du mP3 ou de l'ogg ;-)), il est recommandé d'installer aussi le paquet libsox-fmt-all.

  • play : pour lire les fichiers musicaux
  • sox: pour manipuler les fichiers musicaux
  • rec: pour enregistrer des sons

play

Play lit les fichiers musicaux. Par exemple :

  • pour lire tous les fichiers mp3 d'un répertoire à la suite :
    play *.mp3
  • pour lire un fichier "2 fois plus fort" :
    play fichier.mp3 vol 2

sox

Sox permet la manipulation des fichiers. Par exemple :

  • pour créer un ogg à partir d'un mp3 :
    sox fichier.mp3 fichier.ogg
  • pour concaténer plusieurs fichiers en un seul :
    sox fichier1.ogg fichier2.ogg fichier_final.ogg
  • pour augmenter les basses tout en évitant la saturation :
    sox entree.ogg sortie.ogg vol -6dB bass +6
  • pour imprimer une analyse du fichier son (amplitude, volume…):
    sox entree.ogg -n stat
  • pour convertir un fichier stéreo en "fake"-surround (Source)
#!/bin/bash

###
# stereo 2 surround
###

inFile="$1";
outFile="$2";
debug="$3";

# todo ...
#if [ ! -z sox ]; then
#echo "sox"
#  run=0;
#fi

#if [ ! -x multimux ]; then
#echo "multimux"
#  run=0;
#fi

#if [ ! -x soxi ]; then
#echo "soxi"
#  run=0;
#fi

#if [ ! -x normalize ]; then
#echo "normalize"
#  run=0;
#fi

# default parameter
soxParm="";
normParm="-q";

# debug parameter
if [ $debug -eq 1 ]; then
  soxParm="-V -S";
  normParm="-v";
fi

if [ $run -eq 0 ]; then
  echo "Error: Requirenment missing: normalize multimux, sox or soxi";
else
  echo " Preparing Source";
  normalize $normParm $inFile;
  rate=$(soxi $inFile | grep "Sample Rate" | awk '{ print $4; }');
  # if rate is 44100, we'll most likely have stuff from an audio-cd,
  # which we want to deemph at least i assume so
  if [ $rate -eq 44100 ]; then
    echo " + Source is 44.1kHz, De-Emphasing & Resampling...";
    sox $soxParm -c 2 $inFile source.wav deemph rate -v -a 48000
  else
    sox $soxParm -c 2 $inFile source.wav rate -v -a 48000
  fi
  # create combined channel
  sox $soxParm -c 2 source.wav -c 1 combined.wav mixer 0.5,0.5
  normalize $normParm combined.wav
  # create pre- left and right channels
  sox $soxParm -c 2 source.wav -c 1 sleft.wav mixer -l
  sox $soxParm -c 2 source.wav -c 1 sright.wav mixer -r
  sox $soxParm -M -c 1 -v -1 sright.wav -c 1 combined.wav -c 1 right.wav
  normalize $normParm right.wav
  sox $soxParm -M -c 1 -v -1 sleft.wav -c 1 combined.wav -c 1 left.wav
  normalize $normParm left.wav
  # frequency games
  sox $soxParm -c 1 left.wav -c 1 ls.wav sinc 100-6000 reverb
  sox $soxParm -c 1 right.wav -c 1 rs.wav sinc 100-6000 reverb
  sox $soxParm -c 1 combined.wav -c 1 c.wav sinc 80-12000
  sox $soxParm -c 1 combined.wav -c 1 lfe.wav sinc 20-200
  sox $soxParm -c 1 left.wav -c 1 lf.wav sinc 80-20000
  sox $soxParm -c 1 right.wav -c 1 rf.wav sinc 80-20000
  # normalize it in batch-mode
  normalize $normParm -b ls.wav rs.wav c.wav lfe.wav lf.wav rf.wav
  # let's mux it
  multimux -d 0,0,15,15,0,0 lf.wav rf.wav ls.wav rs.wav c.wav lfe.wav > $outFile
  # cleanup
  rm left.wav right.wav combined.wav source.wav sleft.wav sright.wav
fi

rec

Rec permet d'enregistrer des sons.
Pour enregistrer l'entrée micro par défaut en un fichier audio au format ogg :

rec -d test.ogg

Le fichier test.ogg est alors créé dans le répertoire courant.

rec -d ~/Desktop/ma_voix.wav

Le fichier ma_voix.wav est créé sur le bureau.

Plus d'informations sur rec et ses nombreuses options avec son manuel :

rec --help

Un script pour faciliter l'utilisation de rec est disponible dans ce sujet du forum.

  • sox.1362409110.txt.gz
  • Dernière modification: Le 04/03/2013, 15:58
  • par 193.5.216.100
  • Actuellement bloqué par: 216.73.216.103,10.42.2.254