# Mutual Information, the Linear Prediction Model, and CELP Voice Codes
## 2 Code-Excited Linear Prediction (CELP)  
Block diagrams of a code-excited linear prediction (CELP) encoder and decoder are shown in Figures 1 and 2, respectively [1; 2].  
Figure 1: Code-excited linear prediction (CELP) encoder.  
We provide a brief description of the various blocks in Figures 1 and 2 to begin. The CELP encoder is an implementation of the Analysis-by-Synthesis (AbS) paradigm [1]. CELP, like most speech codecs in the last 45 years, is based on the linear prediction model for speech, wherein the speech is modeled as  
\[s(k)=\sum_{i=1}^{N}a_{i}s(k-i)+Gw(k), \tag{1}\]  
where we see that the current speech sample at time instant \(k\) is represented as a weighted linear combination of \(N\) prior speech samples plus an excitation term at the current time instant. The weights, \(a_{i}\), \(i=1,2,...\), \(N\), are called the linear prediction coefficients. The synthesis filter in Figure 1 has the form of this linear combination of past outputs and the fixed and adaptive codebooks model the excitation, \(w(k)\). The LP analysis block calculates the linear prediction coefficients, and we see that the block also quantizes the coefficients so that encoder and decoder use exactly the same coefficients.  
The adaptive codebook is used to capture the long-term memory due to the speaker pitch and the fixed codebook is selected to be an algebraic codebook, which has mostly zero values and only a relatively few nonzero pulses. The pitch analysis block calculates the adaptive codebook long-term memory. The process is AbS in that for a block of (say) \(M\) input speech samples, the linear prediction coefficients and long-term memory are calculated and a perceptual weighting filter is constructed using the linear prediction coefficients. Then, for every length \(M\) sequence (codevector) in the fixed codebook, (say) there are \(L\) code vectors in the fixed codebook, a synthesized sequence of speech samples are produced. This is the fixed codebook search block. The best codevector out of the \(L\) in the fixed codebook in terms of the length \(M\) synthesized sequence that best matches the input block of length \(M\) based on minimizing the perceptually weighted squared error is chosen and transmitted to the CELP decoder along with the long-term memory, the predictor coefficients, and the codebook gains. These operations are represented by the parameter encoding block in Figure 1[1; 10].  
The CELP decoder uses these parameters to synthesize the block of \(M\) reconstructed speech samples presented to the listener as shown in Figure 2. There is also post-processing, which is not shown in the figure.  
The quality and intelligibility of the synthesized speech is often determined by listening tests that produce mean opinion scores (MOS), which for narrowband speech vary from 1 up to 5[11; 12]. A well-known codec such as G.711 is usually included to provide an anchor score value with respect to which other narrowband codecs can be evaluated [13; 14; 15].  
Figure 2: CELP Decoder.  
It would be helpful to be able to associate a separate contribution to the overall performance by each of the main components in Figure 2, namely the fixed codebook, the adaptive codebook, and the synthesis filter. Signal to quantization noise ratio (SNR) is often used for speech waveform codecs, but CELP does not attempt to follow the speech waveform, so SNR is not applicable. One characteristic of CELP codecs that is well known is that those speech attributes not captured by the short-term predictor must be accounted for, as best as possible, by the excitation codebooks, but an objectively meaningful measure of the individual component contributions is yet to be advanced.  
In the next section, we propose a decomposition in terms of the mutual information and conditional mutual information with respect to the input speech provided by each component in the CELP structure, that appears particularly useful and interesting for capturing the performance and the trade-offs involved.