Slightly OT: sox/lame convert .mp3 to .raw MoH (bad quality)

Lame (for .mp3 to .wav) and sox (for .wav to .raw) yields incredibly inconsistent quality conversions in my experience. On a box that is not under memory or CPU constraints, the same file converted with the same command-line arguments sounds different on each try.

The output sounds choppy in a few places as if it was a bad VoIP connection, but I’m pretty sure it’s the file conversion because artifacts track the position in the song. And it’s more than just a little bit.

Here’s an example command-line:
f=songname ; lame --decode --scale 0.25 $f.mp3 $f.wav ; sox -V -v 0.5 $f.wav -r 8000 -c 1 -w -s $f.raw

I was playing with scaling down the source file thinking that it was clipping and introducing weird digital artifacts… normally clipping should just cause distortion like a fuzz-box or electric guitar though.

Here’s my app versions:

Has anyone else struggled with this or found a work-around?