[Speex-dev] Recommended version for production use
jmiles at pop.net
Thu Apr 20 21:00:19 PDT 2006
I'm looking at adding Speex decoder and encoder support to the Miles Sound
System, a commercial library used by game developers on various platforms
including PCs, the Mac, and game consoles. As part of my initial
evaluation, I've gone ahead and downloaded the 1.0.4 and 1.1.1 Win32 binary
distributions and played around encoding and decoding various files with the
speexenc.exe and speexdec.exe apps.
What I've been noticing is that there are vast differences between the way
certain encoding scenarios sound under 1.1.11 (or 1.1.12, which I've built
myself) and 1.0.4, the latest stable binary package. Sometimes it's not
easy to judge which version's "better"... but the impression I'm getting is
that the 1.1 branch does not offer consistent (or, frankly, any) quality
improvements over 1.0.
Even without using any of the new 1.1 features such as AGC or denoising,
files encoded with the 1.1.11/1.1.12 speexenc.exe tend to contain wild
amplitude-level variations, tonal artifacts, and clipped regions.
Here's a good example of what I'm talking about:
speexenc --bitrate 7500 pcm16k.wav speex.spx
speexdec speex.spx recovered.wav
If you run these commands with the file
http://www.speakeasy.net/~jmiles1/pcm16k.wav in 1.0.4, the recovered.wav
output doesn't sound too bad. Under 1.1.11, the recovered audio sounds
terrible by comparison.
So: what are peoples' thoughts on the best version of Speex to use in
production code? Should I incorporate the current stable 1.0.5 source tree
into my product... or am I making some fundamental goofs in my evaluation of
I've noticed that if I run my test above with --bitrate 10000 instead of
7500, the two versions sound much closer. (I still prefer the sound of the
1.0.4 encoder, but the 1.1.1 encoder no longer sounds broken.) I'd
appreciate any advice, or corrections to my observations.
RAD Game Tools
More information about the Speex-dev