Create ringtones out of WAV and MP3 files on Linux
As long as you have a WAV or MP3 file, the SoX package, and the GStreamer gstreamer-plugins-ugly package installed, you can use these scripts to convert from MP3 or WAV to AMR, and back from AMR to WAV. Perfect for creating ringtones for your mobile phone out of sound clips or favorite songs!
The wavtoamr script:
#!/bin/bash
if [ "$2" == "" ] ; then echo "usage: wavtoamr wavfile amrfile" exit 1 fi
midwav=
mktemp /tmp/wavtoamrXXXXXmidamr=mktemp /tmp/wavtoamrXXXXXsox "$1" -r 8000 -c 1 "$midwav.wav" avg resample && gst-launch-0.10 filesrc location="$midwav.wav" ! wavparse ! amrnbenc ! filesink location="$midamr" && echo '#!AMR' > "$2" && cat "$midamr" >> "$2" rm -f "$midwav.wav" rm -f "$midamr"
The amrtowav script:
#!/bin/bash
if [ "$2" == "" ] ; then echo "usage: amrtowav amrfile wavfile" exit 1 fi
tmpfile=
mktempdd if="$1" of="$tmpfile" bs=1 count=10000000 skip=6 && gst-launch-0.10 filesrc location="$tmpfile" ! amrnbparse ! amrnbdec ! wavenc ! filesink location="$2" rm -f "$tmpfile"
The mp3toamr script:
#!/bin/bash
if [ "$2" == "" ] ; then echo "usage: mp3toamr mp3file amrfile" exit 1 fi
midwav=
mktemp /tmp/mp3toamrXXXXXgst-launch-0.10 filesrc location="$1" ! mad ! audioconvert ! wavenc ! filesink location="$midwav" && wavtoamr "$midwav" "$2"
rm -f "$midwav"
To convert, just run the appropriate command against the file you want converted.
Homework for you: improve error handling and make it work without temporary files -- that is, with standard input and standard output pipes, and redirecting output from the invoked commands to standard error. Don't forget to send me the improvements!

I wish to convert a .3gpp to a .wav file.
Are you able to assist?
Thank you for your time,
William Deaaans