Speex 1.2rc2 and SpeexDSP 1.2rc2 are out
December 6, 2014
This release splits the speex codec library and the speex DSP library into separate source trees. Both projects received build-system improvements, bugfixes, and cleanup. The speex codec's VBR tuning was improved, while the speexdsp resampler got some NEON optimizations.
Speex 1.2rc1 is out
July 23, 2008
This release adds support for acoustic echo cancellation with multiple microphones and multiple loudspeakers. It also adds an API to decorrelate loudspeaker signals to improve multi-channel performance. In the bugfix department, there are fixes for a few bugs in the echo canceller, jitter buffer and preprocessor. At this point, the API for 1.2 should be stable and only a few very minor additions are planned.
Speex 1.2beta3 is out
December 11, 2007
The most obvious change in this release is that all the non-codec components (preprocessor, echo cancellation, jitter buffer) have been moved to a new libspeexdsp library. Other changes include a new jitter buffer algorithm and resampler improvements/fixes. This is also the first release where libspeex can be built without any floating point support. To do this, the float compatibility API must be disabled (--disable-float-api or DISABLE_FLOAT_API) and the VBR feature must be disabled (--disable-vbr or DISABLE_VBR).
Speex 1.2beta2: Fixed-point improvements and more
May 24, 2007
Again, this new releases brings many improvements. The RAM requirement for wideband has gone down drastically (i.e. more than 2x). A new resampler module has been added, providing arbitrary sampling rate conversion -- fast. The echo canceller has also been improved. A bug in 1.2beta1 that made the echo canceller unstable has been fixed. The echo canceller should now converge faster, be robust and tolerant of incorrect capture-playback synchronisation. The preprocessor has also been greatly improved. Not only should the quality be better, but it is now fully converted to fixed-point. At last, early TriMedia support (incomplete) has been merged.
Speex 1.2beta1: Better, smaller, faster and more
September 4, 2006
This new release brings many significant improvements. The quality has been improved, both at the encoder level and the decoder level. These include enhancer improvements (now on by default), input/output high-pass filters, as well as fixing minor regressions in previous 1.1.x releases. A strange and rare instability problem with pure sinusoids has also been fixed. On top of that, memory use has been greatly reduced, especially for fixed-point and narrowband. The fixed-point narrowband encoder+decoder memory use has been cut by more than half, making it possible to fit both in less than 6 kB of RAM. In general, CPU requirement had gone down, especially for the fixed-point port. The Blackfin port has been speeded up significantly, thanks to David Rowe. There are also a few fixes for the TI C5X DSPs, as well as better support for C++ compilers and crappy MS compilers. Oh, and before anyone starts worrying, the format (bit-stream) itself has not changed, so Speex is still compatible with version 1.0 and will continue to be in the future.
Non-codec improvements include a extension (easier to use) to the echo canceller API and a Speex-independent version of the jitter buffer. The echo canceller should also be more robust to saturation in the capture path. Last, but not least, the documentation has been updated.
How the Echo Canceller works
August 7, 2006
Always wanted to know how the echo canceller works? On Adjusting the Learning Rate in Frequency Domain Echo Cancellation With Double-Talk has just been accepted for IEEE Trans. on Audio, Speech and Language Processing.
New website design
August 6, 2006
We have a new website design. There may be a few problems, so please report them and be patient.
On How Speex Works
March 19, 2006
Interested in how Speex works? Have a look at "Improved Noise Weighting in CELP Coding of Speech - Applying the Vorbis Psychoacoustic Model To Speex", authored by Jean-Marc Valin and Christopher Montgomery.
Speex 1.1.12 Released
February 19, 2006
- echo canceller converted to fixed-point (sponsored by Analog Devices)
- Improvements to the experimental Vorbis-based masking model (use
--enable-vorbis-psyas an argument to the
- several bug fixes
Speex 18.104.22.168 Released
December 2, 2005
This is a brown-paper-bag release fixing a pretty bad bug that affected the fixed-point port in 1.1.11. Architectures that use float were not affected at all. Architectures that use fixed-point had a big drop in audio quality. Only version 1.1.11 is affected. Sorry about the inconvenience.
Speex 1.1.11 Released
November 20, 2005
This release includes lots of bug fixes. These include SSE, fixed-point and Blackfin. Also, the echo canceller and packet loss concealment have been improved.
Speex 1.1.10 Released
June 11, 2005
Speex 1.1.9 Released
June 1, 2005
The main improvement in this release is that the acoustic echo canceller is finally usable. This work has been sponsored by Tipic Inc. Also, several bugs have been fixed for the TI C5x port.
Speex 1.1.8 Released
May 7, 2005
Lots of changes in this release. Initial TI C5x port, some fixed-point improvements and fixes, better temporary memory allocation (smaller), and the size of integer types are now detected automatically.
There is also a new SPEEX_PLC_TUNING option.
Speex 1.0.5 Released
May 6, 2005
The main change with this release is that it includes API additions from the 1.1.x branch (while being backward compatible), so that transition from 1.0.x to 1.1.x can be made easier.
Speex 1.1.7 Released
March 2, 2005
The changes for this release are very broad and include generic optimizations in the encoder, ARM-specific optimizations (gcc inline assembly), optional shortcuts in the encoder sacrificing quality for speed, fixed-point improvements (perceptual enhancement converted), reduction in memory usage, the Symbian code now uses the same API, and several bug fixes.
New Specialized libs Released
November 18, 2004
- libspeex_emce.lib is an x86 emulator build (with debug information)
- ibspeex_armce.lib is an ARMV4 release build
Speex 1.1.6 Released
July 28, 2004
There are seven changes in this release.
- Improved jitter buffer (now actually works)
- Denoiser tuning
- Improved echo canceller (please send feedback)
- Support for Symbian OS
- Gapless playback for speexenc/speexdec
- Run-time identification of Speex version with a new speex_lib_ctl() call
- Moved the includes to /usr/include/speex/
Speex 1.0.4 Released
July 21, 2004
There are three changes in this release.
- Headers are now in /usr/include/speex/ (but a copy is still in /usr/include for compat reasons).
- Pseudo-gapless playback (i.e. playback has the same number of samples)
- Fixed a potential bug (unconfirmed) that might cause a segfault in special circumstances.
Speex 1.1.5 Released
April 21, 2004
The main change in this release is that the 1.1.5 API and ABI are now compatible with 1.0.x. The versions of the functions taking a
short*now have an "_int" suffix, as in
Speex 1.1.4 Released
January 20, 2004
Happy Belated New Year. This release has minor fixed-point improvements and a code cleanup. The SSE code has been converted from inline assembly to SSE intrinsics, so it should now work on win32. More functions have been written to use SSE.
Speex 1.1.3 Released
December 2, 2003
This unstable release brings more improvements to the fixed-point port. Many new functions have been converted and most modes now work in real-time. I encourage everyone to test this code by compiling with --enable-fixed-point and --enable-fixed-point-debug and report any error messages and send the (smallest possible) file which reproduces the problem.
Speex 1.0.3 Released
November 19, 2003
In this bugfix release: a fix for a multithreading bug and a correction for an underflow problem that could slow decoding dramatically on x86 processors.
Speex 1.1.2 Released
November 11, 2003
This new unstable release improves on the fixed-point port started in 1.1.1. The port is not yet complete, but many modes are now usable in real-time on ARM processors. The fixed-point version is enabled with --enable-fixed-point and ARM-specific optimizations can be enabled with --enable-arm-asm.
Speex 1.1.1 Released
November 1, 2003
This release adds a partial fixed-point port which can be enabled using the --enable-fixed-point option at configure time. Not all floating-point operations have been converted yet, but all the code should work.
Speex 1.0.2 Released
September 24, 2003
Just a bugfix release. This update adds soundcard support for Solaris and the BSDs as well as minor bugfixes and a documentation update.