Xiph logo
Speex: a free codec for free speech


The latest development versions of Speex and SpeexDSP are always available through Git. Note that packaging information for Debian can be found on the packages page. In addition, RareWares maintains useful Windows utilities such as SpeexDrop.

Speex development branch build status Speex DSP development branch build status

Current Stable Release (recommended)

Speex 1.2.1 and SpeexDSP 1.2.1

This is the latest stable release of the Speex codec library, and the Speex Digital Signal Processing library.


This release includes a number of build and robustness fixes

  • Check for _WIN32 instead of WIN32 in preprocessor checks
  • wav_io: check for EOF when seeking in wav (fixes hang discovered by fuzzing)
  • CI: add gitlab CI integration
  • fixed-point: make left shift macros use unsigned to avoid undefined behaviour
  • math_approx: use unsigned int for LCG pseudorandom generator (avoids integer overflow)
  • oss-fuzz: add integration and fuzzing target
  • speexenc: guard against invalid channel numbers)
  • speexdec: make left shift macros use unsigned to avoid undefined behaviour
  • autotools: do not use deprecated macros

Older Releases (not recommended)

Speex 1.2.0

This is the latest stable release of the Speex codec library.


SpeexDSP 1.2rc3

This brown-paper-bag release adds two headers that should have been included with SpeexDSP 1.2rc2. These are needed to build the resampler with NEON optimizations and to build SpeexDSP without the Speex codec library.


Speex 1.2rc2 and SpeexDSP 1.2rc2

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.



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.



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).



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.



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.

DirectShow Filters

If you just want to listen to Speex files in Windows Media Player, get Xiph.Org's DirectShow Filters for Speex.