Groupe pour la Promotion de GNU/Linux en Royans Vercors
Accueil du site > Articles techniques > Conversion de codecs audio avec sox

Conversion de codecs audio avec sox

samedi 7 août 2010, par Zedraken

Introduction

Ce très court article explique comment convertir des fichiers audio au format wav vers un codec plus approprié pour être utilisé par Asterisk. En effet, en téléphonie que ce soit mobile, ou fixe (VoIP), les formats wav, mp3 ou ogg ne sont pas très adaptés car les fichiers sont de trop grande taille et la qualité est trop élevée pour de la simple téléphonie. En général, dans le domaine de la téléphonie, la qualité est nettement moindre mais la bande passante utilisée l’est également, d’où l’intérêt des conversions de format.

Si vous mettez en place votre propre auto-commutateur VoIP comme Asterisk par exemple, vous pouvez avoir besoin d’enregistrer des messages audio qui sont alors utilisés dans un serveur vocal interactif (IVR) par exemple. Vous devez donc disposer de vos échantillons sonores dans un codec approprié (G711, GSM, etc).

Version

La version de l’outil sox utilisé est la v14.3.0. Cette information est obtenue en tapant la commande suivante :

# sox --version

Conversion

L’opération de conversion utilise le puissant outil sox qui constitue un peu l’outil à tout faire en ligne de commande pour tout ce qui concerne l’audio. Nous n’allons pas ici expliquer toutes les possibilités de sox mais plutôt rentrer directement dans le vif du sujet en donnant l’exemple type pour une conversion dans le codec qui nous intéresse :

#sox input.wav -r 8k output.gsm rate -m

Le fichier d’entrée est le fichier input.wav, et le fichier de sortie est output.gsm. L’outil sox reconnaît les extensions spécifiées. Il sait donc que le fichier d’entrée est un fichier wav et qu’il doit utiliser le codec gsm pour le fichier de sortie.

On demande à sox de ré-échantillonner car en général, le codec GSM utilise une fréquence d’échantillonnage de 8 KHz alors que dans un fichier wav, celà peut monter jusqu’à 96 KHz ! Si on ne fait pas ça, le fichier de sortie sera complètement inaudible.

La commante rate -m indique à sox de procéder au ré-échantillonnage avec une qualité moyenne. En effet, il s’agit ici d’une option à la commande rate. Les autres disponibles sont :

  • -q (quick)
  • -l (low)
  • -m (medium)
  • -h (high)
  • -v (very high)

Pour le détail de ces options, je vous renvoie à la page de manuel :

# man sox
SPIP | squelette | | Plan du site | Suivre la vie du site RSS 2.0