Abstract:
A speech compressor utilizing Trellis Encoding and Linear Prediction (TELP). A TELP speech compressor provides improved signal generation and search technique for a code-excited linear prediction (CELP) speech encoder. TELP is a frame oriented coding that breaks the quantized speech signals into frames of prescribed length N and each frame into subframes of prescribed length L, which are processed as dependent units utilizing an analysis-by-synthesis approach. The approach is based on constructing the best mean square linear predicting filter and searching the best exciting sequence for the filter in order to produce synthesized speech. A trellis encoder is used instead of a stochastic code book. The Q-ary analysis of a given subframe and previous excitations is proposed for a fast vector search in an adaptive code book. It simplifies the implementation of digital speech compression.

Description:
This is a continuation of application Ser. No. 08/097,712, filed Jul. 26, 1993, now abandoned. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention generally relates to speech coding at low bit rates, and more particularly, is directed to an improved technique for storing and searching the excitation code book of linear predictive speech coders. 
     2. Description of the Related Art 
     A goal of effective digital speech coding is to provide an acceptable quality of synthesized speech at low bit rates. The coding must also be fast enough to allow for real time implementation. These goals are achieved by methods based on the standard Linear Prediction (LP) technique. The characteristic features of these methods are described below. 
     The sampled and quantized speech signal is separated on frames and a LP (Linear Predicting) filter is constructed for each frame by conventional techniques. For each frame, the best excitation is determined, which being applied to the input of the LP filter, produces a synthesized signal close to the original speech signal on the frame. The best excitation is typically found through a look-up in a code book. One of the most effective approaches of this type is the Code Excited Linear Prediction (CELP) method which was disclosed in &#34;Predictive Coding of Speech at Low Bit Rates&#34;, Atal, B.S., IEEE Transactions on Communications, vol. COM-30, No. 4, (April 1982), 600-614. 
     The CELP speech encoding method provides high quality digital speech compression at low bit rates at the cost of extremely high complexity of the excitation search procedure. FIG. 1 illustrates how the best excitation for an LP filter such that the output of the filter closely approximates input speech is found in CELP. 
     In each frame the input speech signal is processed to estimate the linear predictive filter A(z) of a prescribed order. In order to find the excitation the frame is divided into several subframes (speech vectors) of length L. Each speech vector is perceptually predistorted by passing through the linear filter 100 with the transfer function W(z)=A(z)/A (γZ) for some γ, where 0.8&lt;γ&lt;1. The predistortion is known to be useful in improving the synthesized speech quality. The perceptually predistorted input speech vector u is approximated by the response b j  of the linear system comprising a decoder synthesis filter 1/A(γz) (called a short-term predictor) 104, a linear filter 103 called a long term predictor, and a multiplier 105 by the gain g j  which is excited by the code word c j  taken from the initially stored code book 102. In the CELP analysis method the best excitation for each subframe is found by searching the code word c j  and computing a gain factor g j  which jointly minimize the squared norm ∥d j  ∥ 2  of the error vector d j  =u--b j  g j  : 
     
         ∥d.sub.j ∥.sup.2 =(d.sub.j,d.sub.j)=d.sup.2.sub.j1 +. . .+d.sup.2.sub.jn, 
    
     obtained from the output of subtracter 101. For this purpose an exhaustive search in a code book is performed to find the maximal value of the match function 
     
         M.sub.j =(u,b.sub.j).sup.2 /(b.sub.j,b.sub.j).             (equation 1) 
    
     The optimal gain value for code word c j  is thereby computed as 
     
         gj=(u,b.sub.j)/(b.sub.j,b.sub.j).                          (equation 2) 
    
     In the search process each word from the code book is filtered by the decoder synthesis filter and the energy (b j ,b j ) and correlation (u, b j ) values from equations (1) and (2) should be computed. Moreover, a large code book is used in order to achieve high speech quality. Therefore, the code book search in CELP is an extremely time consuming process. 
     For the CELP method there exist various techniques of reducing computation complexity. Such techniques were reported in the following references: 
     Davidson, G., and Gersho, A., &#34;Complexity Reduction Methods for Vector Excitation Coding&#34;, IEEE-IECEI-ASJ International Conference on Acoustics, Speech and Signal Processing, vol. 4, (April 7-11, 1986), pp. 3055-3058; 
     P. Kroon, B. Atal, &#34;On Improving the Performance of Pitch Predictors in Speech Coding Systems&#34;, Abstracts of the IEEE Workshop on Speech Coding for Telecommunications, 1989, P.49-50; 
     J. P. Campbell, T. E. Tremain, V. C. Welch, &#34;The DOD 4.8 kbps Standard (Proposed Federal Standard 1016)&#34;, Advances in Speech Coding, Ch.4.1, Kluwer Academic Publishers, 1990. B. Atal, V. Cuperman, A. Gersho--Editors. 
     Federal Standard 1016, Telecommunications: Analog to Digital Conversion of radio voice by 4,800 bit/second Code Excited Linear Prediction (CELP). February, 1991. 
     Despite the foregoing prior techniques, the problem of reducing the time for the code book search and the effective size of the code book remain the most important factors for a real time implementation. In U.S. Pat. No. 4,817,157 Gerson a &#34;vector sum&#34; code book is described. The &#34;vector sum&#34; code book generation approach is a faster implementation of the code book search, but still requires approximately 2,600,000 multiply-accumulate (MAC) operations per second. This value does make possible a practical real time implementation using a single Digital Signal Processor (DSP). 
     A second concern is the storage requirements for the code book. The size of the code book is the product of the number of code words and the number of samples per code word. 
     The typical code book size is V s  =1024 code words of length L=40 samples. In U.S. Pat. No. 4,817,157 a code book storing system based on keeping log 2  V s  basis vectors of length L is proposed. Such a &#34;vector sum&#34; system requires L*log 2  V s  =40*10=400 ternary (+1, -1, 0) memory cells and is useful for search simplification. 
     The reduction of storage requirements and complexity for code excited linear prediction systems remains a key problem in practical implementation of digital speech coding. The principal object of the present invention is to provide a high quality speech coding at data rates of approximately 4800-9600 bit per second, that satisfies time and memory requirements of a realtime hardware implementation. 
     SUMMARY 
     An improved signal generation and search technique are described for a code-excited linear prediction (CELP) speech encoder using a trellis structure stochastic code book. The technique is termed Trellis Encoding with Linear Prediction (TELP). TELP is a frame oriented coding that breaks the quantized speech signals into flames of prescribed length N and each flame into subframes of prescribed length L, which are processed as dependent units. TELP uses a similar analysis-by-synthesis approach to that of CELP. It is based on constructing the best mean square linear predicting filter and searching the best exciting sequence for the filter in order to produce synthesized speech. 
     An important principle of the present invention is the replacement of a vector code book in a code excited linear predictive coder (CELP) of speech by a trellis code book which requires a much smaller memory size and reduced computational complexity for encoding than in CELP. The excitation code vectors of a subframe are generated according to the prescribed trellis structure specified by a selected trellis code. Compared with CELP, this fundamental difference simplifies the implementation of a digital speech compression system. 
     The speech encoder includes a linear prediction analyzer module for the converting of input speech to the sequence of linear predictive coding (LPC) parameters, a ringing removal and perceptual weighting module, a long term prediction analyzer for removing periodic components, a trellis decoder module for computing a trellis index of an excitation code vector and evaluating the optimal trellis gain for this trellis index. The trellis excitation gain and index, the long term prediction gain and index and also the LPC parameters are quantized and multiplexed at the analyzer output. 
     The present invention includes a trellis decoder for converting a decoder input signal into the trellis index and trellis gain parameters. In accordance with the technique, trellis decoding is performed by computing accumulated correlations and energies for all competing edges incoming to a given trellis state and making a decision on the surviving edge for this state by comparing the values of a match function computed for the competing edges. The decoder further embodies a fast technique for computation of filter responses on trellis edges in the decoding process. 
     The invention also comprises an implementation of a fast search in a long-term prediction analyzer to compute the adaptive code book gain and index. It provides a fast vector search in the adaptive code book on the base of the Q-ary analysis of a given subframe and previous excitations. 
     In the preferred embodiment of the speech compressor the LPC parameters are interpolated for subframes of a given frame to improve the synthesized speech quality. The speech coding system also includes quantizers of gains and LPC parameters. 
     The present invention further encompasses a corresponding speech synthesizer having a quantization and an interpolation module to restore the LPC parameters on successive subframes, a long term prediction module and trellis encoding module to restore the excitation from the received gains and indexes. 
    
    
     BRIEF DESCRIPTION OF THE FIGURES 
     FIG. 1 is a block diagram illustrating the computation of the perceptual error in a Code-Excited Linear Prediction (CELP) analyzer as performed in the prior art. 
     FIG. 2A is a block diagram of a speech analyzer utilizing Trellis Encoding and Linear Prediction (TELP) of the currently preferred embodiment of the present invention. 
     FIG. 2B is a block diagram of the perceptual weighting and ringing removal unit from the TELP speech analyzer of FIG. 2A of the currently preferred embodiment of the present invention. 
     FIG. 2C is a block diagram of a multiplexer used to multiplex the parameters of given frame. 
     FIG. 3A is a table illustrating the trellis edge subblocks. 
     FIG. 3B is a table illustrating the transition structure of the trellis. 
     FIG. 3C is an example of a trellis with the parameters M=3, n=3, information rate 1/3 (bit for a sample) as may be utilized in the currently preferred embodiment of the present invention. 
     FIG. 4A is a block diagram of the trellis decoder for speech compression unit of FIG. 2A of the currently preferred embodiment of the present invention. 
     FIG. 4B is a block diagram of an edge response generator illustrated in FIG. 4A as may be utilized in the currently preferred embodiment of the present invention. 
     FIG. 5A is a block diagram of the long-term prediction analyzer of FIG. 2A as may be utilized in the currently preferred embodiment of the present invention. 
     FIG. 5B is a block diagram of the Adaptive Code Book (ACB) index generator of FIG. 5A, which performs a fast search for a small size list of indexes as may be utilized in the currently preferred embodiment of the present invention. 
     FIG. 6 is a block diagram of a TELP speech synthesizer of the currently preferred embodiment of the present invention. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     A method and apparatus for Code Excited Linear Prediction (CELP) type speech encoding, utilizing Trellis Encoding with Linear Prediction (TELP), is described. In the following description, numerous specific details are set forth such as a description of CELP, in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known functionality such as analog to digital conversions, have not been shown in detail in order not to unnecessarily obscure the present invention. 
     The present invention has application wherever speech compression or synthesized speech is used. Speech compression may be used in voice communications. Speech synthesis may be used in toys, games, telephone answering devices and computer systems. A current constraint on the use of synthesized speech is the speed of decoding and the amount of memory needed to store such synthesized speech. In the currently preferred embodiment, a processor is used to perform the speech coding and encoding. The speech data will reside on a memory device external to the processor. However, it would be apparent to one skilled in the art to combine the processor and memory device onto a single integrated processor. 
     Further, in some embodiments of the present invention, the synthesized speech will be created on one system and reproduced on another. For example, a game or toy with predetermined audible responses would only decode synthesized speech. The foregoing embodiments are exemplary and not meant to be limiting. It would be apparent to one skilled in the art to use the present invention for any application requiring speech compression or synthesized speech. 
     The block diagram in FIG. 2A shows the implementation of the Trellis Encoding and Linear Prediction (TELP) speech analyzer. In FIG. 2A the details related to the analog to digital conversion are omitted. The digital speech signal which was sampled at a rate between 7 and 8 KHz is previously processed by a fixed digital pre-filter 200. The purpose of such prefiltering coupled with the corresponding postfiltering is to diminish the specific synthetic speech noise. Even using the simplest type of the first order prefilter 1-β.z -1  and post-filter 1/(1-β.z -1 ) with β lying between 0.7 and 0.9, some improvements in synthesized speech quality has been observed. 
     Pre-filtered speech is analyzed by the linear prediction analyzer 201 in order to produce a set of linear prediction coefficients (LPC) a 1 , . . . , a m  which define for a given frame the LP analysis filter (AF) of prescribed order m (the inverse to this filter is called a short-term prediction filter) 
     
         A(z)=1-a.sub.1 z.sup.-1 -a.sub.2 z.sup.-2 -. . . -a.sub.m z.sup.-m(equation 3) 
    
     Generally, a filter order m of not less then 10 is acceptable. The linear prediction analysis is performed for each speech frame of about 30 msec duration and is accomplished by the quantization of LP parameters. These parameters, found once in a frame, are transferred to the output of the analyzer among other data. The LP parameters for subframes are produced by well known interpolation technique from the quantized LP parameters for frames. 
     The frame consisting of N samples is partitioned to subframes of L samples each. Therefore the number of subframes in a frame is equal to N/L. The next speech analysis has been performed by subframes. In a typical implementation the number of subframes is equal to 4, 5 or 6. The filter coefficients, reflection coefficients and logarithmic cross-section area ratios could be chosen as a suitable basis for the filter interpolation for subframes. 
     The unit 202 consists of various filters and performs two functions. First, it removes ringing caused by the past subframe synthesized speech signals. This function results in the ability to process speech vectors for different subframes independently of each other. Second, module 202 performs the perceptual weighting of speech spectral components in order to decrease the format peaks in a speech signal. As in CELP, perceptual weighting is realized by passing the prefiltered speech signals through the weighting filter (WF) 
     
         W(z)=A(z)/A(γz),                                     (equation 4) 
    
     with a parameter γ taken from a range between 0.8 and 1.0. The main purpose of the perceptual weighting is to reduce the level of the synthesized speech noise components lying in the most audible spectral regions between speech formats. Another positive effect of this is in shortening the response of the Decoder Synthesis Filter (DSF), which is described in greater detail below. The trellis decoder input vector u=(u 1 , u 2 , . . . , u L ) is produced in the output of the adder 203 which removed the scaled periodic (pitch) component from the output of the unit 202. This pitch component is found by the analysis of the adaptive code book content in the long-term prediction analyzer 209 passed through the Perceptual Synthesis Filter (PSF) 210. The trellis decoder 204 uses the trellis code book memory 205 to construct the words of a trellis code and to search for an approximation of the input vector u by a zero-state response of the Decoder Synthesis Filter (DSF) excited by words of the trellis code. The transfer function of this filter could be chosen as 
     
         B(z)=1/A(γz)                                         (equation 5) 
    
     The best code word c i  is found by performing the decoding procedure in the trellis decoder 204. The optional parameter δ A  computed by the long-term prediction analyzer and some side information taken from the input vector analysis may be used to improve the decoder performance. The trellis index I T  =i of the found code word c i  as well as an optimal gain value g T  =g(u,c i ) are transferred into the decoder output. 
     A feedback loop, formed by the units 203, 204, 205, 206, 207, 208, 209, 210 and 211, removes the pitch component from perceptually predistorted speech and at the same time produces the subframe innovation for an adaptive code book in the long-term prediction analyzer 209. This innovation is produced in several steps. The trellis encoder 206 transforms the trellis index I T  into the code word c i , multiplier 207 multiplies c i  by the trellis gain factor g T  and the adder 208 sums the scaled code word g T  ·c i  and excitation vector pj, multiplied in the multiplier 211 by the adaptive code book gain factor g a , to produce the updating excitation e=g T  ·c i  +g A  ·pj for a given subframe. The scaled excitation vector g A  *pj is also applied to the PSF 210 in order to produce the scaled pitch vector for the current subframe. The excitation vector pj appears in analyzer 209 as a result of the joint analysis of the past excitation vectors stored in the memory (adaptive code book) and a given vector of perceptually predistorted speech. For the found vector p j , the adaptive code book index I A  =j and the gain g A  are calculated. The excitation vector e is additionally supplied to the unit 202 for ringing removal. 
     As it has been experimentally established, the long term prediction analysis could be ineffective in segments with the fast speech character changing. In these cases, an additional vocalization analysis performed by the long-term prediction analyzer 209, together with the appropriate changing of the trellis may be of use. For this purpose the optional parameter δ A  is introduced for indicating the effectiveness of the long term prediction for a given subframe that may be used to control the trellis code parameters. 
     The above mentioned parameters LPC, I T , g T , I A , g A , δ A  for a given frame are multiplexed by the multiplexer 212 and transmitted from the TELP analyzer into the channel or memory. 
     The perceptual weighting and ringing removal unit 202 of FIG. 2A is further described with reference to FIG. 2B. There are two synthesis filters 1/A(z) (SF) 221, 222 and two weighting filters (WF) 225, 226. The excitation vector e is applied to the filter 222 starting from the state achieved to the end of the previous subframe in order to produce the synthesized speech vector for the current subframe. The zero excitation vector is applied to the filter 221 starting from the state achieved by the filter 222 to the end of the previous subframe in order to produce the ringing vector for the current subframe. The output of the adder 224 is the approximation error vector. The output of the adder 223 is the speech vector without ringing. The approximation error vector is applied to the filter 226 starting from the state achieved to the end of the previous subframe. The filter 225 uses the same state as achieved by the filter 226 to the end of the previous subframe to produce the perceptually weighted speech vector without ringing for the current subframe. 
     Trellis Encoding 
     Trellis encoding of speech is now discussed in more detail. The trellis is usually defined as a directed graph comprising of a set of states (called trellis states) connected by edges. It has a periodical structure that repeats the same sets of states and transitions from level to level. A possible trellis structure is presented at FIGS. 3A, 3B, and 3C. The edges are labeled by sequences of code symbols of fixed length n which are called subblocks. The main trellis parameters are: the subblock length n, the number of states M, the number of different edges in a trellis and the number of edges k outgoing from a state. The information code rate is defined thereby as R=(log 2  k)/η bits per sample. 
     Any sequence of subblocks on the consecutive edges (in a path) of a trellis is called a code word and a set of all code words is called a trellis code. Any word of the trellis code is uniquely determined by the initial state of the trellis and by the sequence of edges which corresponds to the path in the trellis. For each subframe the trellis code word consists of the prescribed number l=L/n subblocks. We shall denote the initial state index by I o , I o  =0, . . . M-1, and the transition at a level t, t=1, . . . , l, by I t , I t  =0, . . . , k-1. Therefore, each code word could be identified by the sequence of indexes (I 0 , I 1 , . . . , I l ) or, equivalently, by some integer index I T  having been calculated from the sequence (I 0 , I 1 , . . . , I l ). 
     Now, the implementation of the trellis decoder is considered in more detail. The decoder input vector u is partitioned into I subblocks of length n 
     
         u=(u.sub.1,u.sub.2, . . . , u.sub.l), u.sub.t =(u.sub.t1,u.sub.t2, . . . , u.sub.tn),t=1, . . . l. 
    
     The subblocks u t  are processed at the trellis level t. Similar to the original CELP method, the trellis decoder searches for a code word c i  and a gain g i  that jointly minimize the squared Euclidean distance 
     
         D.sup.2 =∥u-g.sub.i b.sub.i ∥.sup.2      (equation 6) 
    
     between the decoder input vector u and the scaled by a factor g i  zero-state response b i  =(b i1 , . . . ,b iL ) of the decoder synthesis filter (DSF) B(z) excited by the trellis code word c i . Given vectors u and b i , the value g i  of the scale factor minimizing the distance D, may be expressed as follows 
     
         g.sub.i =(u,b.sub.i)/b.sub.i,b.sub.i).                     (equation 7) 
    
     Therefore the search problem can be reduced to the following: find the index i, which maximizes the match function 
     
         M.sub.i =(u,b.sub.i).sup.2 /(b.sub.i,b.sub.i),             (equation 8) 
    
     over all words c i  of the trellis code. Here we denote by (a,b) the inner product of two vectors a and b. 
     To avoid the exhaustive search over a whole trellis code book of a large size, the trellis decoding method is used wherein the decoder input vector u=(u 1 , . . . , u t , . . . , u l ) is processed by subblocks. The values of accumulated correlations AC ts  and energies AE ts , that will be discussed later, are computed for each trellis state 1&lt;s&lt;M, and each level t, 1&lt;t&lt;L The trellis decoding method for speech compression is similar to the general Viterbi decoding procedure, which is well known for error correcting trellis codes (see, e.g., G. C. Clark and J. B. Cain, &#34;Error-Correction Coding for Digital Communications&#34;, Plenum Press, NY-London, 1981). Starting from the zero level, the trellis decoder finds the best paths to the states at the level t+1, knowing the current subblock u t+1  and survived paths incoming to the states at the level t with their accumulated correlations AC ts  and energies AE ts . For this purpose it resets new correlations and energies for each state s at the level t+1 by choosing the edge between all edges incoming to s which maximizes the match function. 
     The following shows how the trellis decoder does this. Let Edges (t, s) be the set of all edges incoming to the state s at the trellis level t+1. The following procedure is used for determining the paths surviving to the level t+1. At first, the DSF generates the responses b j  of length n, 0&lt;j&lt;k-1, k=# Edges (t, s), for all subblocks corresponding to the edges from the set Edges (t,s). After that the energy 
     
         E.sub.j =b.sup.2.sub.j1 +b.sup.2.sub.j1 +. . . +b.sup.2.sub.jn(equation 9) 
    
     and the correlation 
     
         C.sub.j =b.sub.j1 ·u.sub.t1 +b.sub.j2 ·u.sub.t2 + . . . +b.sub.jn ·u.sub.tn                              (equation 10) 
    
     are evaluated for each j. Then the match function is computed as follows 
     
         M.sub.t+1,j =(AC.sub.ts&#39; +C.sub.j).sup.2 /(AE.sub.ts&#39; +E.sub.tj)(equation 11) 
    
     where s&#39; denotes the state from which the edge j is outgoing. That edge j from Edges (k,i) survives at the state s for which the maximum value of equation 11 is achieved. An index of the surveyed edge or the transition leading to state s is then stored in paths memory. The decoder assigns new values to accumulated correlations and energies 
     
         AC.sub.(t+1),s =AC.sub.ts&#39; +C.sub.j, AE.sub.(t+1),s =AE.sub.ts&#39; +E.sub.j,(equation 12) 
    
     where (s,s&#39;) is a pair of states connected by the survived edge j. Then it repeats this process till the end of subframe and completes calculations for the subframe by choosing the path that goes to such a state s at the final level l for which the match function 
     
         M.sub.ls =AC.sup.2.sub.ls /AE.sub.ls.                      (equation 13) 
    
     has a maximal value. The initial state for this survived path is uniquely determined by this path and the final state whereas the trellis index I T  is determined by the initial state and by survived edge indexes for the survived path stored in the path memory. In accordance the trellis gain is found as 
     
         g.sub.T =AC.sub.ls /AE.sub.ls                              (equation 14) 
    
     for the final state s. It goes to the output of the decoder together with the trellis index. 
     FIG. 4A illustrates the implementation of the trellis decoder for speech compression. The edge response generator 401, controlled by a transition index and the search/innovation control signal from the trellis search controller 402, generates the DSF responses b j , for the subblocks corresponding to the set Edges (t,s) for each state s on a given trellis level t+1. For each state s the transition index is combined from two indexes j and s&#39;, where s&#39; is the initial state for the edge j. The units 403 and 404 compute the energy E j  and correlation C j  for the subblocks taken from the unit 401. The edge energy accumulator 405 and the edge correlation accumulator 406 perform the computation of the accumulated energy AC ts&#39;  +C j  and the accumulated correlation AE ts&#39;  +E j  for edges from the decoded state s&#39; at the level t. The trellis arithmetic unit 407 uses the accumulated energy and correlation values to determine the survived transition. This transition is transferred to the unit 401 and also resets the values AC ts , AE ts  in the accumulators 405, 406 (see equation 12). The survived transition indexes are stored in the path memory unit 408. When the decoding of the subframe is completed the unit 408 produces the trellis path index I T  as its output. 
     In FIG. 4B the implementation of the edge response generator 401 is shown in greater detail. The decoder synthesis filter 410 prepares the zero-state responses for all different subblocks from the trellis code book before the speech subframe processing begins. Responses of length L generated in such a way are stored in the edge response memory 411. An initial content of the path response memory 414 is set up to all zeros. For each level t the generator 401 performs computation by successive switching of two modes. In the search mode it generates the synthesized subblocks which could be used for approximating of the current subblock u t  on the transitions of the trellis. In the innovation mode the path response memory 414 is innovated by the synthesized vectors for survived paths in each trellis state. Two modes are switched by a search/innovation (S/I) mode control signal incoming to switches 412, 415 and multiplexer 417 from the trellis search controller 402. 
     The decoder starts processing at the level t in the search mode. For each state s at the level t, 1&lt;s&lt;M, the trellis search controller 402 generates the edge j from the set Edges (t-1,s) and the outgoing trellis state s&#39;, dependent on the pair (j,s). Each edge index j is used as an address to the memory 411, while the state s&#39; is used as an address in the memory 414. In the adder 413 the content of the addressed memory cell from the unit 411 is added with the content of the addressed memory cell from the unit 414 to produce the synthesized subblock for the given edge. 
     After the search for all states at the level t is completed the arithmetic trellis unit 407 supplies the survived transition indexes to the unit 401 which is reset to the innovation mode. These indexes are used to address the memory 411 and 414 in the same way as in the search mode. The contents of the addressed memory cell from 411 is added with the contents of the addressed memory cell from 414 in the adder 416 to produce the survived synthesized vector of length L for the given state s at the level t. All these vectors are stored in the path response memory 414. 
     Referring now the FIG. 5A, the organization of long-term prediction analyzer 209 is presented in greater detail. The samples of updating excitation vectors e from past subframes are stored in the Adaptive Code Book (ACB) 500. The index generator 501 prepares a list of indexes of the corresponding ACB excitation vectors used in a search. For a given subframe, the search for the best ACB excitation vector could be optionally performed in two modes of the complete or fast search. In the complete search mode the unit 501 generates a list of indexes of the maximal size M A , where M A  denotes the overall number of vectors which could be generated by the ACB, for example, M A  =128. In the fast search mode the unit 501 generates the list of indexes of much smaller size than M A  (for example, 6 indexes) found by some preliminary analysis of the perceptually predistorted speech vector w and past excitation vectors stored in the ACB. The ACB excitation vector Pi is temporarily stored in the ACB output buffer and then passed through a zero state Perceptual Synthesis Filter (PSF) 502 to produce the filtered vector f i . For this vector the subframe ACB correlation (w,f i ) is computed in the block 503 as well as the subframe ACB energy (f i , f i ) is computed in the block 504. The arithmetic device 506 uses these correlation and energy values to find the best ACB index I A  =i, that maximizes the ACB match function 
     
         M.sub.i =(w,f.sub.i).sup.2 /(f.sub.i,f.sub.i)              (equation 15) 
    
     The optimal ACB gain value g A  is calculated for the best index i by the formula 
     
         g.sub.A =(w,f.sub.i)/(f.sub.i,f.sub.i)                     (equation 16) 
    
     The ACB arithmetic device 506 produces the control signal which is used for saving the best ACB excitation vector in the buffer 505 found throughout the search. At the end of the search the best ACB excitation vector p goes to the output of the buffer 505. 
     In the present invention the ACB arithmetic device 506 also computes the optional parameter δ A  which indicates the effectiveness of the long term prediction for the given subframe. If the long term prediction is found effective then the device 506 sets δ A  =1 and the output parameters  g  A, IA and excitation vector p are processed as previously described. If the long term prediction is detected as ineffective then it sets δ A  =0. In this case the excitation vector p found by the analyzer is replaced to a zero vector and the trellis code is replaced to another one having a higher information rate. The bits previously used for encoding of parameters  g  A, IA in this subframe and some additional bits are now used for a trellis decoding with a higher information rate and better characteristics. For example, the parameter δ A  may be used to select one of two trellises with different code rates, stored in the trellis code book 205. The parameter δ A  evaluation could be the following. Given the ACB index I A  =i, the arithmetic device 506 computes the normalized match function 
     
         μ.sub.i =(w,f.sub.i).sup.2 /((f.sub.i,f.sub.i)·(w,w)).(equation 17) 
    
     If the absolute value of μ i  does not exceed some level lying between 0.2 and 0.3 then δ A  =0, otherwise δ A  =1. 
     Referring now to FIG. 5B, the implementation of the ACB index generator 501 for the fast search mode is illustrated in greater detail. The sequence of samples stored in the ACB 500 is filtered by the zero-state Perceptual Synthesis Filter (PSF) 510 and quantized by a Q-ary quantizer 511 to produce the filtered and quantized ACB excitation which is stored in the Q-ary adaptive code book (QACB) 512. The index generator 513 supplies QACB with M A  indexes for generating the whole set of QACB vectors. Each QACB vector is weighted by some window in the weighting unit 514 to produce the weighted QACB vector f i  transferred to the energy (f i , f i ) evaluation in the unit 515 and the correlation (f i ,w) evaluation in the unit 516, where w is the quantized perceptually predistorted speech vector produced by the Q-ary quantizer 517. The QACB arithmetic unit 518 uses the values of correlation and energy for determining and storing in the index memory 519 the list of K ACB indexes (K&lt;6) which provide the highest values of the match function 
     
         M.sub.i =(w,f.sub.i).sup.2 /(f.sub.i,f.sub.i)              (equation 18) 
    
     Only one filtering of the whole content of ACB and K filterings of ACB excitation vectors corresponding to the chosen K indexes in the fast search mode instead of M A  filterings of ACB excitation vectors in the complete search mode are needed. Additional advantages in simplification are achieved from processing the Q-ary quantized instead real valued vectors. The simplest binary {-1,+1} quantization gives the fastest ACB index search without a significant loss of the long term prediction performances. The weighting unit 514 is used in the fast search mode to exclude the first components of QACB vectors influenced by the previous excitation. In the case of the binary {-1, +1} quantization the binary {0,1} weighting may be of use. 
     The block diagram in FIG. 6 shows the implementation of the Trellis Encoding and Linear Prediction (TELP) speech synthesizer. The structure of a synthesizer corresponds to that of the analyzer. Input data is passed through a demultiplexer 600 to obtain a set of linear prediction coefficients as well as trellis parameters I T , g T , and adaptive code book parameters I A , g A  for a given frame. An adaptive code book (ACB) 607 addressed by the ACB index I A  produces the excitation vector p which being multiplied in a multiplier 608 by the ACB gain g A , is transformed into the scaled ACB excitation vector g A  ·p. A trellis encoder 601 transforms the trellis index I T  into a trellis code word c, a multiplier 603 multiplies c by the trellis gain g T  and an adder 604 adds the scaled trellis code vector g T  ·c with the scaled ACB excitation vector to produce the excitation vector e=g T  ·c+g A  ·P for the processed subframe. The excitation vector e is transformed into the synthesized speech vector by a synthesis filter 605. This vector is also used for updating the content of the adaptive code book 607. If the pre-filter 200 is used in the speech analyzer then the postfiltering of the synthesized speech vector by the filter 606 is performed. The optional parameter δ A  is used for the selection of one of two trellises with different code rates stored in the trellis code book 602. 
     Performance and Memory Savings Benefits of Trellis Coding 
     Trellis Exalted Linear Predictive (TELP) speech coding provides an essential decrease of decoding time and complexity in comparison with known CELP techniques. Further, the memory requirements for the code book are significantly reduced. Most importantly TELP provides the quality of synthesized speech which is good enough for practical usage. 
     Table A provides a comparison between CELP and TELP in terms of the number of MACs (multiplication-accumulation operations) for a subframe in parallel for the following parameters: frame length N=240, subframe length L=40, filter order m=10, stochastic and trellis code size V S  =V T  =1024. Additional parameters for the trellis code are: the edge length n=4, number of states M=8, number of edges incoming to each state q=2. Further a comparison of memory need to store a code book in the respective technique is provided. 
     
                       TABLE A______________________________________CELP/TELP COMPARISON                  ComputationalCoding Memory size (bits)                  complexitytechnique  for storing the code book                  (MAC&#39;s per subframe)______________________________________CELP   L*log.sub.2 V.sub.s =40*10=400                  L*(m+2) * log.sub.2 V.sub.s +2*V.sub.s =6824TELP   M*q*n=8*2*4=64  m*L+2*q*M*(n+1)/n=1680______________________________________ 
    
     Referring to Table A, it is shown that the TELP technique will require less than twenty-five percent of the MAC operations required by CELP with a stochastic code book. Clearly, TELP provides a significant performance increase for speech coding. Further, the storage needed to store the code book is approximately sixteen percent of what is required by CELP.