Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SPEECH CODING
Document Type and Number:
WIPO Patent Application WO/1989/006418
Kind Code:
A1
Abstract:
Input speech is processed to derive (2) LPC filter parameters and (5) parameters of a multipulse excitation which are quantised (10) prior to transmission along with the filter parameters to a decoder where the excitation is generated and drives an LPC filter to produce resynthesised speech. Prior to the quantisation the pulse amplitudes are multiplied by factors (fi) which depend only on their position in the sequence in which the pulses are derived.

Inventors:
HODGES MARTIN ROGER LESTER (GB)
Application Number:
PCT/GB1988/001152
Publication Date:
July 13, 1989
Filing Date:
December 29, 1988
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BRITISH TELECOMM (GB)
International Classes:
G10L19/10; H03M7/30; H04B14/04; G10L; (IPC1-7): G10L9/14
Other References:
ICASSP'84 IEEE International Conference on Acoustics, Speech and Signal Processing, 19-21 March 1984, San Diego US, vol. 1, IEEE (New York, US) M. Berouti et al.: "Efficient computation and encoding of the multipulse excitation for LPC", pages 10.1.1 - 10.1.4
IEEE Journal on Selected Areas in Communications, vol. SAC_3, no. 2, March 1985 IEEE (New York, US) R: Sharma: "Architecture design of a high-quality speech synthesizer based on the multipulse LPC technique", pages 377-383
Download PDF:
Claims:
CLAIMS
1. A speech coder comprising; means for deriving, from an input speech signal, parameters of a synthesis filter; means for generating a coded representation of an excitation consisting of a plurality of pulses within a time frame corresponding to a larger plurality of speech samples, being arranged in operation to select the amplitudes and timing of pulses so as to reduce the difference between the input speech signal and the response of the filter to the excitation by: deriving the amplitude and timing of a first pulse, which alone represents an excitation tending to reduce the said difference, and successively deriving one or more further pulses which in combination with the first and any intervening pulses represent an excitation tending to reduce the said difference; means for multiplying the pulse amplitudes by factors which depend only on their position in the derivation sequence; and a backward adaptive quantiser for quantising the products.
2. A speech coder according to claim 1 in which at least three pulses are derived.
3. A speech coder according to claim 2 in which the factors are unity for the first pulse and for each succeeding pulse in greater than unity and greater than or equal to the factor used for the preceding derived pulse.
4. A speech coder according to claim 3 in which the factors for the first three pulses in order of derivation are substantially 1, 8/5 and 8/3.
5. A speech coder according to any one of the preceding claims in which the deriving means are arranged in the or each derivation of the further pulses, to employ the values of the amplitudes of the first and any intervening pulses obtained from the quantiser output via a local decoder.
6. A speech coder substantially as herein described with reference to figure 1 or figure 2 of the accompanying drawings.
Description:
SPEECH CQPIWg

This invention is concerned with speech coding, and more particularly to systems in which a speech signal can be generated by feeding the output of an excitation source through a synthesis filter. The coding problem then becomes one of generating, from input speech, the necessary excitation and filter parameters. LPC (linear predictive coding) parameters for the filter can be derived using well-established techniques, and the present invention is concerned with the excitation source.

Systems in which a voiced/unvoiced decision on the input speech is made to switch between a noise source and a repetitive pulse source tend to give the speech output an unnatural quality, and it has been proposed to employ a single "multipulse" excitation source in which a sequence of pulses is generated, no prior assumptions being made as to the nature of the sequence. It is found that, with this method, only a few pulses (say 8 in 10ms frame) are sufficient for obtaining reasonable results. See B S Atal and J R Remde: "A New Model of LPC Excitation for producing Natural-sounding Speech at Low Bit Rates", Proc. IEEE ICASSP, Paris, pp.614, 1982.

According to the present invention there is provided a speech coder comprising means for deriving, from an input speech signal, parameters of a synthesis filter;, means for generating a coded representation of an excitation consisting of a plurality of pulses within a time frame corresponding to a larger plurality of speech samples, being arranged in operation to select the amplitudes and timing of pulses so as to reduce the difference between the input speech signal and the response of the filter to the excitation by:

deriving the amplitude and timing of a first pulse, which alone represents an excitation tending to reduce the said difference, and successively deriving one or more further pulses which in combination with the first and any intervening pulses represent an excitation tending to reduce the said difference; means for multiplying the pulse amplitudes by factors which depend only on their position in the derivation sequence; and a backward adaptive quantiser for quantising the products.

Some embodiments of the invention will now be described with reference to the accompanying drawings, in which:

Figure 1 is a block diagram of one embodiment of speech coder;

Figure 2 is a block diagram of a decoder for use with the coder of figure 1; and

Figure 3 is a block diagram of a second embodiment of coder.

In the coder of figure 1, input speech signals, in sampled (preferably digital) form at an input 1 are processed by a predictor 2 to produce an output (e.g. in the form of a set of filter coefficients) defining a synthesis filter having a spectral response akin to that of the speech signals. The predictor analysis can be any of those conventionally used in so-called LPC (linear predictive coding) speech coders. As is common in such systems, the analysis is performed on frames of speech into which the input samples are divided. Typically the frame length may be 20ms; hence a set of coefficients is produced every 20ms and supplied via lines 3 to an output multiplexer 4.

As well as the filter representation, the coder also produces a representation of an excitation which is to be

generated at the decoder to drive the synthesis filter in order to produce an approximation to the original speech. The coder of figure 1 has a multipulse derivation unit 5 which derives from the input speech samples and the LPC coefficients the amplitudes (on output 6)and positions (on output 7) of the pulses in a "multipulse" excitation frame as mentioned above. Whilst the typical sub-block (i.e portion of LPC frame) size of 10ms with eight pulses may be employed, the embodiment of figure 1 employs a sub-block duration of 4ms, with three pulses. This is preferred as introducing less delay into the coding process. The object of the multipulse derivation is to find the pulse positions and amplitudes which minimise the error between the decoded synthetic speech and the original speech.

If it is assumed that a sub-block consists of n speech samples, this represents n input speech samples s 0 ..s n . j and n synthesised samples s* 0 ...s' n .., which can be regarded as vectors s, s'. The excitation consists of pulses of amplitude a m which are, it is assumed, permitted to occur at any of the n possible time instants within the frame, but there are only a limited number of them (say k). Thus the excitation can be expressed as an n-dimensional vector a with components a 0 ....a n . 1 , but only k of them are non-zero. The objective is to find the 2k unknowns (k amplitudes, k pulse positions) which minimise the error:

e 2 = (s - s') 2 (1)

The amount of computation required to do this is considerable and the procedure proposed by Atal and Remde was as follows:

(1) Find the amplitude and position of one pulse, alone, to give a minimum error.

(2) Find the amplitude and position of a second pulse which, in combination with this first pulse, give a minimum error; the positions and amplitudes of the pulse(s) previously found are fixed during this stage.

(3) Repeat for further pulses.

This method is employed in derivation unit 5 of figure 1; that the earlier derived pulses are taken into account in the later derivations within a sub-block is indicated in figure 1 by feedback paths 8, 9. Note that the sequence in which the pulses are derived is not related to their actual position within the sub-block.

The pulse amplitudes a,- are passed via a backward-adaptive quantiser 9, described below. First however they are multiplied (in a multipler 10) by a statistical factor f, . In practice it is found that the first pulse to be derived is generally the largest, and successively derived pulses tend to be progressively smaller, at least for the first few pulses. Although the pulse sizes vary, a statistical analysis on training sequences shows that on average this is so, and the multiplier 10 is supplied with factors such that on average the pulse amplitudes at the multiplier output tend to be the same irrespective of which pulse in the derivation sequence it is. For the case considered here of three pulses, the factors employed are: first pulse to be derived f 0 = 1 second pulse to be drived f t = 8/5 third pulse to be derived f 2 = 8/3 (the fourth to sixth pulses, if present, may be given the factors 8/3, 8/3 and 4) the object of this step is to make the adaptive quantisation more efficient and enable

either the quantisation noise or the number of bits used to encode the amplitudes (or both) to be reduced.

Where larger number of pulses are used, suitable factors can be derived by analysis of sample sequences of speech to find the average magnitudes of the pulses compared with that of the first derived pulse. The multiplicator factor is then the reciprocal of this. A simple (albeit non-optimum) approach for such a situation is to use a factor of unity for the first derived pulse, and 2 for the remainder.

The adaptive quantiser 9 is a 3-bit Jayant quantiser and has a optimum non-linear Max quantiser 11 having the following characteristic:

TABLE 1

The output code simply represents the values of the three output bits - the number before the "/" in the sign bit and the number 1 4 following signifies the binary number 0....11.

A scaling unit 12 provides a scale factor to a divider 13 at the quantiser input. The scale factor s (initially unity) is varied in that, depending on the quantiser codeword output for a given pulse amplitude value, the scale factor s is increased or decreased from its current value to a new value to be used for the next pulse amplitude, s k m = s k ... m k .ι Where k is given by:

Note that these factors are different from those proposed by Jayant; also that the scale factor is not reset at the end of a sub-block or frame.

An additional feature that may be employed for speeding up adaptation is that, if two consecutive output codes have the value 4, then the second occurrence results in an increase of scale factor by a factor of 2.25 (i.e. two increases of 1.5). This is illustrated in frame 1 by a delay 14 and 4,4 detector 15.

The output multiplexer received the quantised amplitudes from the quantiser 9 and the position information from the derivation unit 5, as well as the LPC coefficients and combines these into a single output 16.

A decoder is shown in figure 2, where a demultiplexer 26 separates the coefficients, amplitudes and position information and feeds the coefficients to update a synthesis filter 30. The pulse amplitudes codewords are passed via a "inverse quantiser" 21 which removes the nonlinearity introduced by the quantiser 11 - i.e. it converts the received codewords into the values given in the middle column of table 1. The scaling factor s is obtained from the amplitude codewords by units 22, 24, 25 in all respects identical to units 12, 14, 15 of figure 1 and the inverse quantiser output is multiplied by s in a multiplier 31. The factors f ; are then applied to a divider 32 whose output represents the original amplitudes (but with quantisation error) and is supplied along with

the pulse position information to an excitation generator 33.

The output of the excitation generator 33 is filtered by the filter 31 to produce decoded speech at an output 34.

It has already been mentioned that the multipulse derivation unit takes account, in the later pulse derivations, of the effect of the earlier derived pulses, via the feedback paths 8,9. It is preferable to take account of the actual effect of these pulses at the decoder and therefore the quantisation is preferably included within this loop. Thus, in the modified coder shown in figure 3, the pulse amplitudes are fed back from the output via a local decoder 40 which has an inverse quantise 21', ultipler 31' and divider 32'. The scale factor can be obtained from the quantiser 9, of course. The decoder of figure 2 may again be used with this coder.

Some multipulse coding schemes involving sequential pulse derivation involve reopti isation steps. This is because the earlier derived pulses are derived without reference to the nature of those derived later, and the results can be improved by applying a correction to the amplitudes and/or positions of the pulses. See, for example our UK patent applications nos. 8608031 and 8720604 (US 846854 and PCT/GBS7/00612).

In the case of figure 1, any of these techniques may be applied as in the past. In the case of figure 2, position reoptimisation may be used, if desired. However, in figure 3, where in-loop quantisation is employed this implies that quantisation of pulse i is carried out before pulse i+1 is derived, and further adjustment of pulse i may not then be possible without seriously affecting the quantisation process.