| ### How to convert some WAVe files to u-law, a-law or gsm on Linux? ### | |
| Many VoIP solutions (like Asterisk) are using the u-law, a-law or gsm sound for… | |
| Here are some examples: | |
| * Converting a WAVe file to u-law | |
| sox filein.wav -r 8000 -t ul -U -c 1 fileout.ulaw | |
| * Converting a WAVe file to a-law | |
| sox filein.wav -r 8000 -t al -A -c 1 fileout.alaw | |
| * Converting a WAVe file to gsm | |
| sox filein.wav -r 8000 -t gsm -g -c 1 fileout.gsm | |
| What does these option mean? | |
| filein.wav - the input file | |
| -r 8000 - resampling the input file to 8 KHz | |
| -t xx - setting output format to xx (ul, al, gsm) | |
| -U - setting the output encoding to U-law | |
| -A - setting the output encoding to A-law | |
| -g - setting the output encoding to gsm | |
| -c 1 - only one channel (mono) | |
| fileout.xxx - the output file | |
| Now, what if you don't have one or two such files to convert, but THOUSANDS? No… | |
| for myfiles in *.wav ; do sox $myfiles -r 8000 -t ul -U -c 1 `basename $myfile… | |
| Note, that I also used basename here to write new files without their old ".wav… | |