Field Guide · technology

Also known as: Speex

Speex is an open, patent-free speech codec built on code-excited linear prediction (CELP) and designed for voice over IP and other low-bitrate speech applications.1 Developed under the Xiph.Org Foundation and released royalty-free, it aimed to give VoIP software a high-quality voice coder without the licensing burden of contemporaries like G.729. Speex is now formally deprecated: Xiph declared it obsolete and steers new projects to Opus, which subsumes and outperforms it across the whole bitrate range.

8 kHz narrowband 16 kHz wideband 32 kHz UWB CELP encoder core layer (2 kbps) enhancement layers embedded bitstream — strip upper layers to lower the rate
Speex: a scalable, royalty-free CELP coder spanning narrowband to ultra-wideband speech.

How it works

Speex is a classic linear-prediction speech coder. Each frame it fits a short-term linear-prediction filter that models the vocal-tract spectrum, then searches an adaptive codebook (the pitch predictor) and a fixed codebook for an excitation signal that, run through that filter, best reproduces the original waveform — the analysis-by-synthesis loop at the heart of every CELP design. Only the filter coefficients, pitch lag and codebook indices are transmitted, so a few kilobits per second reconstruct intelligible speech.

Several features distinguished Speex from single-rate telephony coders:

  • Multiple sample rates. The same design handles narrowband (8 kHz), wideband (16 kHz) and ultra-wideband (32 kHz) audio, so it covers ordinary telephone voice up through fuller-sounding conferencing.
  • Variable and embedded bitrate. Rates run from roughly 2 to 44 kbps, with an embedded-coding mode whose stream can be truncated to a lower rate without re-encoding, and a voice-activity/discontinuous mode that drops the rate during silence.
  • VoIP-oriented robustness. It includes perceptual noise shaping, echo and noise suppression helpers, and packet-loss concealment aimed at lossy IP networks rather than clean circuit-switched links.

Because it was engineered from the outset with only public-domain techniques and released under a BSD-style licence, Speex could be embedded freely — the same motivation that later produced Opus.

Relevance to SDR

Speex belongs to the internet-telephony lineage rather than the land-mobile radio world. The vocoders inside trunked and digital voice systems that GopherTrunk targets are the multi-band-excitation family — IMBE and AMBE+2 in P25, DMR and NXDN — not CELP coders like Speex. Where Speex does surface in radio work is on the transport side: SDR and digital-voice projects (EchoLink-style linking, ham VoIP gateways, some allstar/reflector networks) have used Speex to carry audio between nodes over IP, and it appears in older WebRTC and softphone stacks. For new work its role is essentially historical, since Opus — which merged the CELP ideas behind Speex with Xiph’s CELT transform coder — now covers the same ground with better quality and lower delay. GopherTrunk does not use Speex in its decode chain.

Sources

  1. Speex — Wikipedia, on the open patent-free CELP speech codec and its deprecation in favour of Opus. 

See also