Low Bit Rate Speech Decoder and MASC 35000
The task of this project was to design and implement a low bit rate speech decoder that is able to operate at a number of sampling rates (8 kHz, 11.025 kHz, 16 kHz). The decoder decodes the speech that is compressed by an off-line coder. The coder is PC-based application that does not work in real-time. The off-line coded speech is stored in external memory (Flash ROM) and serially fetched to the DSP. This system is intended to be a digital audio and speech player that could support a number of coding/decoding algorithms.
The main constraint was imposed by the limitation of the data memory space. This application had to be downloaded into the data RAM, and then a part of the RAM reconfigured to the program memory. Total memory space for constants, dynamic data and program code must not exceed 4000 words of the RAM space.
The initial algorithm platform was 6.3 kbit/s G.723.1. The main disadvantage of this algorithm was very high demand for data memory space-especially constants. G.723.1 is defined only for 8 kHz sampling rate (telephone applications). Therefore this algorithm had to be modified but perceptual quality of the synthesized speech had to be maintained.
The basic characteristics of my work on this project were simulations and perceptual testing of modifications that were introduced on the initial algorithm. PC based C language and Matlab were simulation tools. The perceptual tests were carried out following the concept of the perceptual comparison of different speech coders (CELP-G.723.1 (5.3 and 6.3 kbit/s), CELP-G.728, CELP-FS 4800 bit/s and ADPCM were available). This modified coder is not compatible to G.723.1.
Here is the list of the modifications that were introduced on the initial 6.3 kbit/s G.723.1.
The pitch predictor quantized gain code-book was shortened and each entry was quantized to 10 bits.
The cosine table (512 entries) was removed and generation of the cosine function was introduced (Chebyshev polynomial is used, IEEE1986 : The Computation of Line Spectral Frequencies Using Chebyshev Polynomials, P. Kabal and R.P. Ramachandran.)
Entries of the LSP code-book were quantized to 10 bits so the two entries could be packed in one memory word
It was required to design the self-synchronizing decoder that obtain the information about the sampling rate from side information in the bit-stream. Start up synchronization and tracking words are included. Periodically, in the bit-stream, start up synchronization word is repeated to accommodate a fast-forward and rewind option of the decoder. The convergence properties of this algorithm were the subject of the perceptual testing. The forward prediction that is used in this algorithm provides very good convergence properties.
Resources required by the decoder on MASC 3500:
1500 words - constants
800 words - dynamic data
1700 words - program code
12 MIPS in the case of the 16 kHz sampling rate.