Digital coding of speech signals

Abstract: The object of the invention is a method, and a speech encoder and a decoder, respectively, for digital coding of a speech signal at low transmission rates. The method according to the invention applies linear prediction. The speech encoder according to the invention comprises several coding blocks. The speech encoder according to the invention can utilize simple algorithms to select the excitation and to provide a high speech quality.

Description: The invention relates to a method and apparatus for digital coding of speech signals at low transmission rates. In the last years good results have been obtained with the "analysis through synthesis" method in digital coding of a speech signal at low transmission rates. In encoders based on such analysis-synthesis methods the decoder operation is simulated already in the encoder and the synthesis result provided by each parameter combination is analyzed and the parameters representing the speech signal are selected according to which of the selectable combinations provided the best decoding result compared to the original speech signal. In the analysis-synthesis method the synthesizing parameters to be used are thus determined on the basis of the synthesized speech signal. Such a method is also called a closed system method, because the synthesis result directly controls the selection of the synthesis parameters. In speech coding closed system search can be applied only to the most critical parameters due to the complexity of the search, e.g. to code the excitation signal in encoders using a linear prediction model. These low transmission rate speech coding methods include Multi-Pulse Excitation Coding (MPEC) and Code Excitation Linear Prediction (CELP). The realization of both the multi-pulse excitation coding and the linear code excitation coding requires an extensive calculation process and causes a high power consumption, which in practice make them difficult to realize and utilize. With the aid of some simplifications it was recently possible to realize analysis-synthesis methods in real time using digital signal processors, but problems related to the above mentioned calculation load and the power and memory consumption make their extensive use inconvenient and in many applications prevent the use of them. Analysis-synthesis methods are explained for instance in the patent publications US 4,472,832 and US 4,817,157. For an efficient coding of the excitation signal also linear predictive coding methods based on an open system have been presented, in which a part of the samples are selected directly from the analysis-filtered signal (difference signal) to be transmitted by the decoder. This method typically produces a poorer result than the feed-back method, because in this method the synthesis result is not examined at all, and the excitation sample values are not selected on the basis of the sample signal value combination providing the best synthesized signal, as is made in the above described closed system encoders. In order to obtain a low transmission rate the number of samples must be reduced or selected, and this can be made e.g. by reducing the sampling frequency of the inverse filtered signal. A method of this kind is explained e.g. in the patent publication US 4,752,956. The problem is to obtain good speech quality using methods where the excitation signal is selected directly from the difference signal samples. When the excitation is selected only on the basis of the difference signal, and the actual synthesis result is not used to control the formation of the excitation, then the speech signal is easily distorted during coding and its quality is lowered. Prior art is described below with reference to the enclosed figure 1 showing an embodiment of the prior art solution. Figure 1 shows the block diagram of a prior art analysis-synthesis coding system of the CELP type. The coding in question is a code excited linear prediction coding. In the encoder the search for the excitation signal through synthesis is realized by testing all possible excitation alternatives contained in a so called code book 100, and by synthesizing in a synthesis filter 102 speech signal frames corresponding to the alternatives (in blocks of about 10 to 30 ms). The synthesized speech signal is compared with the speech signal 103 to be coded in the difference means 104, which generates a signal representing the error. The error signal can further be processed so that in the weighting block 105 some features of the human sense of hearing are taken into account in the error signal. The error calculation block 106 calculates the synthesis result obtained using each possible excitation vector contained in the code book. Thus we obtain information about the quality provided by the use of each tested excitation. The excitation vector providing the minimum error is selected to be transmitted through the control logic 101 to the decoder. To the decoder is transmitted the address of the code book memory position, where the best excitation signal contained in the code book was found. The excitation signal used in multi-pulse excitation coding is found by a corresponding testing procedure. The procedure tests different pulse positions and amplitudes and synthesizes a speech signal corresponding to them, and further compares the synthesized speech signal with the speech signal to be coded. Contrary to the above mentioned encoder of the CELP type, the MPEC method does not examine the quality of previously formed vectors stored in the code book when the speech signal is synthesized, but the excitation vector is formed by testing different pulse positions one by one. Then we transmit to the decoder the position and the amplitude of single excitation pulses, which were selected to form the excitation. The present invention aims to provide a method for digital coding of a speech signal, in which the above mentioned disadvantages and problems can be solved. To obtain this the invention is characterized in that the excitation signal is formed with the aid of several coding blocks, whereby in each block i sample values are selected from the signal supplied by the analysis filter K i in order to be used as partial excitation in the sample selection block, that each coding block generates with the aid of a synthesis filter a speech signal corresponding to the selected excitation, that the operation of the coding blocks is controlled by subtracting the partial excitation obtained in the preceding coding block from the speech signal to be coded before it is supplied for processing in the next coding block, and that the synthesis result obtained in each coding block is used to control the forming of the total excitation. The present invention is also directed to a speech encoder applying linear prediction, in which the signal used as excitation is coded so that a speech signal corresponding to the formed partial excitation is synthesized in connection with the optimization of the excitation samples, whereby the optimization of the total excitation is controlled by the synthesis results of the partial excitations. The speech encoder according to the invention comprises N coding blocks performing the coding. In each coding block a set of difference signal samples to be used as partial excitation are selected, by an algorithm described below, and transmitted to the decoder (analysis step), and with the aid of the selected excitation pulses a speech signal corresponding to them is synthesized in order to be used to control the selection of the total excitation (synthesis step). The method differs from the analysis-synthesis methods in that the speech signal synthesis does not utilize all total excitation alternatives, but it is made for each partial excitation. Below the invention is described in detail with reference to the enclosed figures, in which figure 1 shows the block diagram of a prior art analysis-synthesis coding method of CELP type, figure 2 shows the coding block of the encoder according to the invention, figure 3 shows an encoder according to the invention, figure 4 shows a decoder according to the invention, figure 5 shows an alternative embodiment of the encoder according to the invention. Figure 1 was described above. The solution according to the invention is described below with reference to figures 2 - 5 showing an embodiment of the solution according to the invention. Figure 2 shows the coding block of the encoder according to the invention. The method is based on speech signal coding in coding blocks 207, so that within each coding block 207 the speech signal 200 is analysis-filtered 201, partial excitation samples are selected 202, a speech signal is synthesized by the synthesis filter 203. Both the analysis-filtering 201 and the synthesis-filtering 203 are based on a linear filtering model, for which optimal coefficients a(1), ..., a(M) 206 are calculated from the speech signal s(n) 200. The analysis section performs on the speech signal an inverse filtering, whereby we obtain a difference signal or the optimal excitation signal required for the synthesis of the speech signal in the decoder's synthesis filter. Because the transmission of all sample values of the difference signal would require a high transmission capacity, the method within each speech coding block 207 in the sample selection block 202 reduces the number of samples transmitted to the decoder by selecting in each N speech coding block K i (i = 1, 2, ..., N) pulses to be transmitted to the decoder and to be used as a partial excitation 205. The speech signal 204 formed with the aid of the K i excitation pulses selected within each coding block 207 is synthesized with the synthesis filter 203 in each coding block 207, whereby we can make out the speech signal portion synthesized by each partial excitation 205. The analysis filter 201 A(z) is of the form: A(z) = 1 - j=1 Σ M a(j)z -j and the synthesis filter 203 S(z) is of the form: S(z) = 1 / A(z) The analysis and synthesis filters 201, 203 further can contain also a long term filtering, which models the periodicity of voiced sounds in the speech signal. According to the invention a speech encoder is formed by coding blocks 207 so that the speech signal 204 synthesized by the coding block 207 and obtained from the synthesis filter 203 of each coding block 207 is subtracted from the input speech signal before it is supplied to the next coding block 207. When the speech signal is coded with the aid of the coding blocks 207 it is possible to divide the coding process in two parts. On one hand the coding process in each speech block comprises an internal algorithm processing directly the difference signal and thus operating directly on the signal supplied by the analysis filter and selecting from it in each coding block 207 i in total K i excitation pulses to be used as the partial excitation 205. On the other hand the coding comprises synthesizing in the synthesis filter a speech signal 204, which corresponds to the partial excitation 205 and which is used to control the optimization of the total excitation. Figure 3 shows a speech encoder according to the invention. The speech signal 300 to be coded is LPC analyzed, i.e. in the LPC analyzer 301 a linear model is calculated separately for each speech frame containing I samples and having a length of about 10 to 30 ms. The linear prediction coefficients can be calculated by any method known in the art. The prediction coefficients are quantized in the quantizing block 302 and the quantization result 317 is suitably encoded in the block 303 and then supplied to the multiplexer 318 in order to be further transmitted to the decoder. The quantized coefficients are supplied to each coding block 304, 311, 313, ..., 315 to be used as filter coefficients by their analysis and synthesis filters. According to the invention the coded speech signal 300 is supplied to each of the N speech coding blocks 304, 311, 313, ..., 315 so that the effect of each partial excitation is subtracted from it in the difference means 305, 312, 314, ..., 316. The excitation pulse positions and amplitudes defined by the partial excitations and obtained from each coding block 304, 311, 313, ..., 315 are then transmitted to the block 306 performing the quantization and encoding to the channel and forming the total excitation's coded representation for the pulse positions b(1), ..., b(L) 309 and for the amplitudes d(1), ..., d(L) 310, which then are supplied to the multiplexer 318. The synthesis filters 203 of all coding blocks use as excitations naturally quantized pulse positions and amplitudes, so that the partial excitation synthesis process in the encoder corresponds to the synthesis process in the decoder, which uses this quantized excitation. For the sake of simplicity the figures do not particularly show how the quantized excitation parameters are supplied to the coding blocks, in which they are used to form the quantized partial excitation transmitted to the synthesis filter. When the output of the coding block 315 providing the last partial excitation is subtracted from the signal supplied to it from the preceding block we obtain the modeling error of the complete coding from the difference means 316. If desired, it is also possible to quantize and encode this signal in the vector quantizing block 307 and transmit the encoded quantizing result 308 further to the multiplexer 318. Figure 4 shows a decoder according to the invention. The decoder demultiplexer 409 provides the coding parameters, which are supplied to the decoding blocks 403, 404, 405. An excitation signal is formed and supplied to the synthesis filter 407 in accordance with the pulse positions and amplitudes 402 from the decoding block 405. Optionally it is furthermore possible in the summing means 406 to add to the excitation an additionai excitation provided by the vector decoding block 404, if the system also transmits the total prediction error 401 of the encoder modeling. The transmitted prediction coefficients 400 are decoded in block 403 and they are used in the synthesis filter 407. The synthesized speech signal 408 is obtained at the output of the synthesis filter 407. In the encoder according to the invention we can use the below described algorithm in the search block 202 to select the excitation within each block containing I samples, whereby each coding block i (i = 1, 2, ..., N) selects as partial excitations those K i samples provided by the analysis filter 201 whose sum of absolute values is highest during the input frame to be coded, in other words the term |e(n 1 )| + |e(n 2 )| + |e(n 3 )| + ... + |e(n ki )| is maximized so the distances |n 1 - n 2 |, |n 1 - n 3 |, |n 2 - n 3 |, ... etc. between the pulses is at least N samples (i.e. the number of coding blocks used in the encoder). In the term to be maximized the factor e(k) (k = 1, 2, ..., I) is the output from the analysis filter 201, i.e. the difference signal of the linear modeling. From this sequence containing I samples we thus select by the above mentioned algorithm K i pulses to be used as the partial excitation. The total excitation is obtained as the sum of the partial excitations. The algorithm for the search of the excitation pulses can be improved so that a filtering of low-pass type is added to it, whereby the difference signal is filtered before the term to be maximized is calculated. The frequency response of the applied low-pass filter observes the average distribution of the speech into different frequencies. Figure 5 shows an alternative embodiment of the speech encoder according to the invention. The alternative embodiment differs from the embodiment shown in figure 3 in that more filtering coefficients are calculated for the signal to be coded. In this embodiment each partial excitation is combined in a filter providing a different frequency response, whereby each coding block 504, 508, 512, ... contains analysis and synthesis filters that use coefficients, which are calculated to correspond to the signal supplied to the respective coding block 504, 508, 512. Thus each partial excitation through a different synthesis filter synthesizes its share of the speech signal. The decoder correspondingly uses N parallel synthesis filters, each of them receiving a corresponding decoded partial excitation, and the synthesized speech signal is obtained as the sum of signals synthesized by the partial excitations. Through the use of the invention we avoid the extensive computation process and high power consumption required in a closed system. Moreover, this method has an insignificant memory consumption. In an encoder according to the invention we can use comparatively simple excitation selection algorithms like the above described algorithms, and still obtain a high speech quality without the need for methods employing a complex and heavy calculation step for all possible total excitations. In view of the foregoing description it will be evident to a person skilled in the art that various modifications may be made within the scope of the invention as defined by the appended claims.

Claims: Digital speech coding method, comprising: a first coding cycle of; deriving a first set of prediction parameters a(i) corresponding to the short term spectrum of an input signal, inverse filtering the input signal in accordance with the set of prediction parameters a(i) for forming a first excitation signal, forming a first partial excitation signal by selecting excitation pulses (205)(Ki) of the excitation signal in accordance with a predetermined criterion, synthesis filtering the first partial excitation signal in accordance with the set of prediction parameters a(i) for forming a first output signal, subtracting the first output signal from the input signal for forming a first difference signal; and a second coding cycle of; inverse filtering the first difference signal in accordance with the set of prediction parameters a(i) for forming a second excitation signal, forming a second partial excitation signal by selecting excitation pulses (205)(Ki) of the second excitation signal in accordance with the predetermined criterion, synthesis filtering the second partial excitation signal in accordance with the set of prediction parameters a(i) for forming a second output signal; and forming a total excitation signal from the first and second partial excitation signals respectively generated during said first and second coding cycles. A digital speech coding method, comprising: a first coding cycle of; deriving a first set of prediction parameters a(1,i) corresponding to the short term spectrum of an input signal, inverse filtering the input signal in accordance with the set of prediction parameters a(1,i) for forming a first excitation signal, forming a first partial excitation signal by selecting excitation pulses (205)(Ki) of the first excitation signal in accordance with a predetermined criterion, synthesis filtering the first partial excitation signal in accordance with the first set of prediction parameters a(1,i) for forming a first output signal, subtracting the first output signal from the input signal for forming a first difference signal; and a second coding cycle of; forming a second set of prediction parameters a(2,i) corresponding to the short term spectrum of the first difference signal, inverse filtering the first difference signal in accordance with the second set of prediction parameters a(2,i) for forming a second excitation signal, forming a second partial excitation signal by selecting excitation pulses (205)(Ki) of the second excitation signal in accordance with the predetermined criterion, synthesis filtering the second partial excitation signal in accordance with the second set of prediction parameters a(2,i) for forming a second output signal; and forming a total excitation signal from the first and second partial excitation signals respectively generated during said first and second coding cycles. A method according to claim 1 or claim 2, wherein the predetermined criterion is that the excitation pulses (205) are selected to maximise the sum of their absolute values, and are separated by a distance of N samples from each other, where N is the number of coding cycles. A method according to any preceding claim, further comprising filtering the first and second excitation signals in accordance with the average frequency distribution of speech prior to selecting excitation pulses (205). A method according to any preceding claim, wherein the prediction parameters (a(i); a(1,i), a(2,i)) are calculated to replace the original speech signal and to individually correspond to each signal supplied to the different coding blocks (207), from which signal is subtracted the synthesized speech signal (204) produced by the partial excitations (205), whereby each partial excitation (205) is linked to synthesis filters, which possibly have different frequency behaviours. An encoder, comprising: a short term analyser (301) for receiving a first input signal (200; 300) and deriving parameters characteristic of the short term spectrum of the first signal (200; 300) for forming a set of prediction parameters a(i), a first coding block (207, 304) for forming from the first input signal a first set of partial excitation signals and a first output signal (204) in accordance with the set of prediction parameters a(i); a subtracting means (305, 311, 314, ..., 316) for subtracting the first output signal (204) from the first input signal (200; 300) for deriving a difference signal; a second coding block (207; 311, 313, ..., 315) coupled to the subtracting means (305, 312, 314, ..., 316) to receive the difference signal as a second input signal, and for deriving a further set of partial excitation signals (205); and buffer means (306) for receiving the and further sets of partial excitation signals for forming a total excitation signal (309, 310) wherein the first and second coding blocks comprise: an analysis filter (201) for forming excitation signals corresponding to an input signal in accordance with the set of prediction parameters a(i), selection means (202) for selecting a set of partial excitation signals (205) from the excitation signal in accordance with a predetermined criterion; and a synthesis filter (203) for forming an output signal (204) corresponding to the set of partial excitation signals (205) in accordance with the set of prediction parameters a(i). An encoder, comprising: a first short term analyser (501) for receiving a first input signal (200; 500) and deriving parameters characteristic of the short term spectrum of the first signal (200; 500) for forming a first set of prediction parameters a(1,i); a first coding block (207, 504) for forming from the first input signal a first set of partial excitation signals and a first output signal (204) in accordance with the first set of prediction parameters a(1,i); a subtracting means (513, 514 ..., 516) for subtracting the first output signal (204) from the first input signal (200; 500) for deriving a difference signal; a second short term analyser (505, 509, ..., 526) for receiving the difference signal and deriving parameters characteristic of the short term spectrum of the difference signal for forming a second set of prediction parameters a(2,i); a second coding block (207; 508, 512 ..., 515) coupled to the subtracting means (513, 514, ..., 516) to receive the difference signal as a second input signal and for deriving a further output signal (204) corresponding to a further set of partial excitation signals (205) in accordance with the second set of prediction parameters a(2,i); buffer means (519) for receiving the and further sets of partial excitation signals for forming a total excitation signal (520, 521) wherein the first and second coding blocks comprise: an analysis filter (201) for forming excitation signals corresponding to an input signal in accordance with the set of prediction parameters a(j,i), selection means (202) for selecting a set of partial excitation signals (205) from the excitation signal in accordance with a predetermined criterion, and a synthesis filter (203) for forming an output signal (204) corresponding to the set of partial excitation signals (205) in accordance with the set of prediction parameters a(j,i). An encoder according to claim 6 or claim 7 wherein the input signal (200; 300, 500) is a speech signal. An encoder according to claim 8, wherein the short term analyser (301; 501, 505, 509 ..., 526) is an LPC analyser, and further comprising quantizers (302, 306; 502, 506, 510, ..., 527, 519), a channel coding block (303; 503, 507, 511, ..., 528), a vector quantizer (307; 517), and a multiplexer (318; 521), so that the quantizer (302; 502, 506, 510, ..., 527) quantizes the prediction coefficients and supplies the quantizing result (317; 522, 523, 524, ..., 525) to the multiplexer (318; 521) to be further transmitted to a decoder, and supplies the quantized coefficients to each coding block (304, 311, 313, ..., 315; 504, 508, 512, ..., 515) to be used as respective filter coefficients in their analysis and synthesis filters, the speech signal (300; 500) to be coded is supplied to each coding block (304, 311, 313, ..., 315; 504, 508, 512, ..., 515) so that the effect of each partial excitation is subtracted from it in the difference means (305, 312, 314, ..., 316; 513, 514, ..., 516), the pulse positions and amplitudes of the excitation pulses defined by the partial excitation and obtained from each coding block (304, 311, 313, 315; 504, 508, 512, ..., 515) are supplied to the quantizer (306; 519), the quantizer forms the coded representation of the pulse positions (309; 520) and the pulse amplitudes (310; 321) of the total excitation to be supplied to the multiplexer (318; 521). An encoder according to claim 9, wherein the signal from the difference means (316; 516) is coded in the vector quantization block (307; 517) and further transmitted to a decoder (308; 518). An encoder according to any of claims 6 to 10, wherein the analysis filter (201) A(z) is of the form: A(z) = 1- j=1 Σ M a(j)z -j and the synthesis filter (203) S(z) is of the form: S(z) = 1/A(z) An encoder according to any of claims 6 to 11, wherein the analysis filter (201) and the synthesis filter (203) further comprise respective filters which model the periodicity of voiced sounds in the input signal (200).

Inventors: JARVINEN KARI JUHANI, JARVINEN, KARI JUHANI
Applicants: NOKIA MOBILE PHONES LTD, NOKIA NETWORKS OY, NOKIA MOBILE PHONES LTD.
Application year: 1993
Main classification: G10L19
IPC codes: G10L19