Field Guide · technology

Also known as: SILK

SILK is a speech codec developed by Skype and built around linear predictive coding, designed to carry conversational voice over the open internet at adaptive bitrates.1 It was introduced to replace Skype’s earlier SVOPC coder, then contributed to the IETF and folded into Opus, where it forms the low-bitrate speech layer. SILK targets a wide range of network conditions, scaling sample rate, bitrate and complexity to whatever the link and endpoint can sustain.

Opus SILK LPC speech Hybrid SILK + CELT CELT transform / music low rate / speech → high rate / full-band audio
SILK is the linear-prediction speech engine that Opus uses at low rates and in its hybrid mode.

How it works

SILK is a linear-prediction coder, but it departs from the classic CELP analysis-by-synthesis loop. It estimates a short-term LPC filter for the vocal-tract spectrum and a long-term predictor for pitch, then quantises and transmits the residual excitation with noise-shaping quantisation rather than searching a fixed codebook in a closed loop. This open-loop style keeps complexity down while letting the encoder shape quantisation noise under the perceptual masking curve.

Its defining trait is adaptivity:

  • Variable sample rate. SILK works in narrowband, mediumband, wideband and super-wideband modes (8 to 24 kHz sampled audio), switching as the endpoint and network allow.
  • Variable bitrate. Rates roughly span 6 to 40 kbps, adjusting continuously to packet loss, jitter and congestion signalled back from the far end.
  • Loss resilience. In-band forward error correction and packet-loss concealment let a decoder mask dropped packets, important for the best-effort IP paths it was built for.

When Skype donated SILK to the IETF, it was combined with Xiph’s CELT transform coder to create Opus (RFC 6716). Inside Opus, SILK handles speech at low bitrates, CELT handles music and high bitrates, and a hybrid mode runs SILK on the lower band with CELT extending the top — so a single Opus stream can move smoothly from a 6 kbps voice call to full-band stereo music.

Relevance to SDR

SILK is an internet-voice codec, not a land-mobile radio vocoder, so it does not appear inside P25, DMR, NXDN or TETRA — those use IMBE and AMBE+2 instead. Its relevance to SDR is indirect: whenever a software-radio or digital-voice project streams received audio over IP using Opus — reflectors, remote-receiver front ends, WebRTC-based SDR web receivers — SILK is doing the speech coding underneath at conversational bitrates. It sits alongside Speex as part of the open-codec lineage that culminated in Opus. GopherTrunk does not use SILK in its decode chain; it decodes the proprietary radio vocoders directly.

Sources

  1. SILK — Wikipedia, on Skype’s linear-predictive speech codec and its role inside Opus. 

See also