Every phone call you made on a 2G mobile network was not transmitted as audio. It was transmitted as a small set of numbers describing the shape of your vocal tract, updated every 20 milliseconds. At the receiving end, a synthesizer reconstructed your voice from those numbers by driving a filter that modeled your throat. The algorithm making this possible is linear predictive coding (LPC), and it has been in use since the first chip-based speech synthesizer appeared in 1978.
How the Human Voice Actually Works
To understand LPC, you need to understand the physics it exploits. Speech production has two separable components:
The source: your vocal folds vibrate as air flows past them, generating a roughly periodic signal at your fundamental pitch frequency. For unvoiced sounds like 's' or 'f', the folds stay open and turbulent airflow creates a broadband noise source instead.
The filter: the vocal tract - your throat, mouth, nasal cavity, and lips - resonates at certain frequencies that depend on its current shape. These resonances are called formants. The vocal tract filter shapes the source's energy into the characteristic timbre of a vowel or consonant.
This source-filter separation matters because the filter changes slowly. During a voiced vowel, the vocal tract shape stays nearly constant for 10 to 30 milliseconds at a time. The source (pitch period) changes more rapidly, but in most speech codecs it is transmitted separately. The filter is the expensive part to encode, and LPC is a highly efficient way to encode it.
Predicting the Next Sample
LPC starts from a specific observation: the output of the vocal tract filter at any moment is a weighted sum of the previous P output samples plus a contribution from the current excitation. If the vocal tract filter is an all-pole IIR of order P, then:
x[n] = a_1*x[n-1] + a_2*x[n-2] + ... + a_P*x[n-P] + e[n]
Where x[n] is the speech sample, the a_k are the prediction coefficients, and e[n] is the prediction error (the residual, which corresponds to the excitation).
The goal is to find the set of coefficients that minimizes the mean squared prediction error over a short frame of speech. This is the "linear prediction" in LPC: predict each sample as a linear combination of previous samples and minimize the error.
For speech, P is typically 10 to 16. A 10-coefficient filter can accurately represent 4 to 5 formants across the telephone bandwidth (300 to 3400 Hz), which is enough to reconstruct intelligible speech.
The Levinson Recursion
Finding the optimal a_k coefficients requires solving a system of P equations in P unknowns. Writing out the normal equations for the least-squares problem yields a matrix system where the matrix has a special structure: it is Toeplitz (each diagonal contains the same value). The Levinson-Durbin recursion exploits this Toeplitz structure to solve the system in O(P^2) operations rather than O(P^3) for Gaussian elimination.
In practice: for P = 12 coefficients and a 20ms frame at 8 kHz sampling (160 samples), the Levinson recursion takes fewer than 200 multiply-accumulate operations. Fast enough to run on a processor with no hardware multiply in 1978.
What Gets Transmitted
A complete LPC frame transmits:
- P prediction coefficients (typically encoded as line spectral pairs or reflection coefficients, a few bits each)
- Pitch period (5-7 bits)
- Voiced/unvoiced flag (1 bit)
- Frame gain (5 bits)
At 20ms frames, LPC-10 (US Federal Standard FS-1015) achieves intelligible speech at 2.4 kbps. That is the floor of human voice intelligibility over a digital channel. The US military used LPC-10 for secure voice communications for decades because a 2.4 kbps channel can be encrypted and transmitted over very narrow bandwidth radio links.
The synthesized speech at 2.4 kbps has a characteristic buzzy, robotic quality. This is because the voiced excitation is approximated as a pure pulse train at the detected pitch frequency, which is a rough approximation of real glottal airflow. The vocal tract filter shapes the pulses correctly, but the source quality is not realistic.
CELP: Fixing the Source
The robotic quality of basic LPC was identified early as its main limitation. The vocal tract model was good. The source model was the problem.
Manfred Schroeder and Bishnu Atal at Bell Labs proposed the solution in 1985: instead of synthesizing the excitation as a simple pulse train, search a pre-defined codebook of possible excitation vectors and find the one that minimizes the perceptually-weighted error between the original and the synthetic speech. Code-excited linear prediction (CELP) was born.
The improvement in quality was dramatic. The tradeoff: the original CELP algorithm required 150 seconds of Cray-1 supercomputer time to encode 1 second of speech. Schroeder and Atal's 1985 IEEE conference paper (ICASSP 1985) demonstrated the algorithm but could not claim it was practical.
By the mid-1990s, faster search algorithms and DSP hardware made CELP run in real time on embedded chips. G.729, the VoIP codec that carried most enterprise voice traffic in the 2000s, is a CELP-based codec at 8 kbps. AMR (Adaptive Multi-Rate), the codec used in 2G and 3G mobile phones, is also CELP-based, operating at bit rates from 4.75 to 12.2 kbps. The voice quality that made mobile phones socially acceptable in the late 1990s came from CELP.
The Speak & Spell and the Roots of Consumer LPC
The first commercial product to use LPC synthesis was not a phone but a toy. Texas Instruments released the Speak & Spell in June 1978. The TMS5100 chip inside it used a 10th-order LPC model to synthesize spoken words from a ROM-stored vocabulary. It was the first DSP chip designed for speech generation, recognized as an IEEE Milestone.
The Speak & Spell's voice is immediately recognizable: pitched, nasal, clearly synthetic but intelligible. That sound is LPC synthesis with a simple pulse train excitation and a carefully hand-parameterized vocal tract filter. Children learning to spell in the late 1970s were interacting with a real-time implementation of a 1968 algorithm.
The Source-Filter Model in Music
LPC as a synthesis algorithm connects directly to effects that audio engineers use without knowing the mathematics underneath.
The talk box, popularized by Peter Frampton on Frampton Comes Alive! (1976) and Joe Walsh on "Rocky Mountain Way" (1973), is not an LPC device, but it exploits the same source-filter separation. The guitar amplifier's speaker output (the source) travels through a plastic tube into the musician's mouth. The mouth then shapes the sound with the same vocal tract resonances that LPC models computationally. The difference: in a talk box, the filter is the musician's actual mouth geometry, not a digital approximation of it.
The LPC vocoder, a direct digital implementation, analyzes an input signal (typically speech) to extract the filter coefficients, then applies those coefficients to a different source. Replace the excitation with a pitch-shifted tone and the result is singing vowels synthesized from the original speaker's formants. This is the basis for formant synthesis, the LPC vocoder effect, and some modes of modern singing synthesis tools.
What LPC Gets Right
LPC works because human speech is not a random process. It has structure. The vocal tract changes slowly. The source is quasi-periodic. The model captures these constraints exactly: a slowly-varying all-pole filter driven by an impulse train or noise. Everything that falls outside the model - breathiness, lip movements, co-articulation between phonemes - becomes prediction error and either gets discarded (low-bitrate codecs) or encoded separately (high-quality codecs).
That 10-coefficient model from a 1968 paper in Tokyo is still inside your phone. The codec stack above it has grown more sophisticated, but the core idea - that a short frame of human speech is a filter shape plus an excitation - has held.
Further reading: Itakura and Saito, "Analysis synthesis telephony based upon the maximum likelihood method," 6th International Congress on Acoustics, Tokyo, 1968. Schroeder and Atal, "Code-excited linear prediction," IEEE ICASSP, 1985.