A multi-rate speech codec supports a plurality of encoding bit rate modes
by adaptively selecting encoding bit rate modes to match communication
channel restrictions. In higher bit rate encoding modes, an accurate
representation of speech through CELP (code excited linear prediction) and
other associated modeling parameters are generated for higher quality
decoding and reproduction. To achieve high quality in lower bit rate
encoding modes, the speech encoder departs from the strict waveform
matching criteria of regular CELP coders and strives to identify
significant perceptual features of the input signal. To support lower bit
rate encoding modes, a variety of techniques are applied many of which
involve the classification of the input signal. For each bit rate mode
selected, pluralities of fixed or innovation subcodebooks are selected for
use in generating innovation vectors. The speech encoder also utilizes an
adaptive weighting factor in the selection of a current pitch lag value
from a plurality of pitch lag candidates. For example, if the speech
encoder identifies an integer multiple timing relationship between any two
pitch lag candidates, the pitch lag candidate with the smallest timing
value is favored through adjustment of the weighting factor. Similarly, if
a pitch lag candidate exhibits timing that corresponds to that of previous
pitch lag values, the weighting factor is adjusted to favor that
candidate.