Récemment, j'ai eu à convertir un fichier .wav 32 bits en un fichier mp3. Habituellement j'utilise lame dans une console comme convertisseur mp3, mais avec un wav 32 bits en input ça ne semblait pas marcher :
$ lame file.wav Unsupported data format: 0x0003
Allons bon, lame va pas bien, c'est pas grave, on va faire du ogg :
$ oggenc file.wav Omition d'un tronçon de type « JUNK » et de longueur 4042 Ouverture avec le module wav : WAV file reader Encodage de "file.wav" en "file.ogg" à la qualité 3,00 [ 22,7%] [ 0m42s remaining] - ^C
Ça marche avec le ogg, pas la peine d'attendre que ce soit fini. N'empêche que j'ai toujours pas mon mp3 parce que lame ne veut pas traiter du wav 32 bits. Solution de secours : utiliser sox, packagé dans sox :
$ aptitude search sox (...) c sox - Swiss army knife of sound processing
Et maintenant passons à la conversion du wav 32 bits en wav 16 bits, à 44,1kHz :
$ sox file.wav -b 16 ~/tmp/file2.wav rate -I 44100 dither -s sox WARN dither: dither clipped 23 samples; decrease volume?
Remarquez le dernier message : le fichier son a clippé (saturé) sur 23 échantillons. On va refaire la conversion, mais cette fois-ci en diminuant le gain de 1dB :
$ sox file.wav -b 16 ~/tmp/file2.wav gain -1 rate -I 44100 dither -s $
Cette fois c'est parfait ! plus qu'à passer une couche de lame et ça marche sans souci.