Multi-pulse excited linear predictive speech coder

A multipulse excitation signal, as a better approximation than a single-pulse excitation signal, searches for a kth pulse which minimizes either a difference between a synthesized and a reference signal, or a distance between a multipulse excitation signal and a residual signal. The search uses an averaging function M.sub.k (n) of a weighted error signal.

The invention relates to a multi-pulse excited linear predictive speech 
coder, comprising a multi-pulse excitation signal generator, means for 
perceptually weighting the difference between a signal synthesized by 
means of a synthesizing operation from the multi-pulse excitation signal 
and the multi-pulse excitation signal itself, respectively, and the 
reference speech signal and a residual signal derived from the reference 
speech signal by means of an analysing operation which is the inverse of 
the said synthesizing operation, respectively, for generating a weighted 
error signal and means for controlling the multi-pulse excitation 
generator in response to the weighted error signal, in order to reduce the 
error signal. 
Such a speech coder is disclosed in the Proceedings of the ICASSP--82, 
Paris, April 1982, pages 614-617. 
FIG. 1 shows the block diagram of such a multi-pulse excited speech coder 
(vocoder), which functions in accordance with the analysis-by-synthesis 
principle. In response to a multi-pulse signal r(n) a linear-predictive 
speech synthesizer 1 (LPC-SNT) produces synthetic speech samples s(n) 
which, in a difference producer 2, are compared with the reference speech 
samples s(n) which are applied to an input terminal 3. The difference 
s(n)-s(n) is perceptually weighted in block 4 (PRC-WGH) and the result is 
a weighted error signal e(n). 
In response to the error signal e(n), block 5 (R-MN) effects a control of 
the multi-pulse excitation signal generator 6, which produces the 
multi-pulse signal r(n), such that the synthetic speech signal s(n) 
reproduces the reference speech signal s(n) to the best possible extent. 
The procedure followed in block 5 is called the error-minimizing 
procedure. 
Perceptually weighting the difference signal s(n)-s(n) in block 4 is 
effected by means of a transfer function denoted by W(z) in the 
Z-transform notation. This transfer function can be formed in such manner, 
that comparatively large errors are allowed in the formant areas as 
compared to the intermediate areas. 
Let A.sub.p (z) in the Z-transform notation represent the transfer function 
of the inverse LPC-filter. In terms of the inverse filter coefficients 
a.sub.p k the inverse filter transfer function is given by: 
##EQU1## 
A suitable choice for W(z) is given by: 
##EQU2## 
where 0.ltoreq..gamma..ltoreq.1 and q.ltoreq.p. 
The synthesizer 1 may be considered to be a filter having a transfer 
function S(z) which is given by S(z)=1/A.sub.p (z). The expression shown 
in FIG. 2a then hold for the combination of synthesizer 1 and the 
perceptual error weighting arrangement 4. They change into those of FIG. 
2b for the case in which the numerator function A.sub.p (z) is split-off 
from transfer function W(z) of block 4 and is shifted to the input side of 
difference producer 2 emerging as block 8 on the one hand and disappearing 
in the combination with the synthesizer function S(z)=1/A.sub.p (z) of 
block 1 on the other hand. In block 7 is left the transfer function 
G(z)=1/A.sub.q,.gamma. (z). 
In FIG. 2b the filtering operation on the reference speech signal s(n) by 
the inverse LPC-filter A.sub.p (z) produces the residual signal r(n). This 
signal is compared with the multi-phase model r(n) thereof in the 
difference producer 2 and the difference is weighted in block 7 in 
accordance with the filter function 1/A.sub.q,.gamma. (z). The result is 
the error signal .epsilon.(n) which has a strong correlation with the 
error signal e(n). 
The reproduced speech will increase in quality by the insertion of a pitch 
predictor filter 9 into the lead to difference producer 2 carrying the 
signal r(n) and having the transfer function 1/P(z) wherein 
P(z)=1-.beta.z.sup.-M. 
In the above transfer function 1/P(z) the factor .beta. has an absolute 
value smaller than 1 and M represents the distance between the pitch 
pulses in number of samples. These values may be calculated for segments 
of suitable length, say N from the speech correlation function: 
##EQU3## 
M is the value of k.noteq.0 for which r(k) reaches a maximum value and 
.beta. is proportional to r(M). The range of values of M at a sample 
frequency of 8 KHz is typically from 16 to 160. 
The effect of the inclusion of the inverse pitch predictor as represented 
by block 9 in FIG. 2b is shown in FIG. 6 wherein the signal-to-noise ratio 
of the reproduced speech is represented in dB versus time per segment of 
10 msec. for a sequence of such segments. The drawn line is without the 
pitch predictor and the dashed line with the pitch predictor. 
The FIGS. 1 and 2a represent the prior art as shown in the above-mentioned 
article or, as for the case represented in FIG. 2b, extensions thereof. 
In addition, the FIGS. 2a and 2b represent alternative methods of 
calculating a significant error signal e(n) or .beta.(n), the latter 
having the advantage if a simple structure. 
The complexity of the speech coder shown in FIG. 1 is determined to an 
important extent by the procedure represented by block 5, i.e. the error 
minimizing procedure, in accordance with which the position and the 
amplitude of the pulses in the multi-pulse excitation signal r(n) are 
determined. 
According to the prior art, in a given interval having a given number of 
possible pulse positions that position is determined, pulse for pulse, 
which minimizes a mean square error (m.s.e.) function or square distance 
function E.sub.k (b,l), where k is the number, b the amplitude and l the 
position of the pulse under consideration. The number of function 
calculations will then be approximately equal to the product of the number 
of pulses to be determined and the number of pulse positions possible in 
the given interval. 
The invention has for its object to provide a speech coder of the type 
specified in the preamble with a reduced complexity. 
According to the invention, the speech coder is characterized in that in 
order to determine the position of the k.sup.th pulse in a givn interval 
in the multi-pulse excitation signal an auxiliary function (M.sub.k (n)) 
is determined, which is a measure of the energy of the weighted error 
signal on the basis of a multi-pulse excitation signal of which (k-1) 
pulses have been determined, that means are present for determining the 
value n'.sub.k of n for which the auxiliary function (M.sub.k (n)) is the 
maximum, that means are present for determining a reduced interval shorter 
than the predetermined given interval, in the region of n'.sub.k, and 
means for determining the position of the k.sup.th pulse of the 
multi-pulse excitation signal in the reduced interval. 
The auxiliary function M.sub.k (n) can be chosen such that it can be 
calculated in a simple way. The number of distance functions to be 
calculated by means of the method according to the invention is equal to 
the product of the number of pulses of the excitation signal to be 
determined in the given interval and the number of possible pulse 
positions in the reduced interval. As the reduced interval can be of a 
much shorter length than the predetermined given interval, the number of 
necessary calculations is significantly reduced and thus the complexity of 
the speech coder is reduced.

In the speech coder according to the invention which will be described 
hereafter the weighted error signal (.epsilon.(n)) will be calculated in 
accordance with the method as shown in FIG. 2b at first without block 9. 
Herein: 
EQU G(z)=1/A.sub.q,.gamma. (z) (4) 
and 
EQU W(z)=A.sub.p (z).multidot.G(z) (5) 
In block 5 (FIG. 1) a distance function d(r,r): 
##EQU4## 
is calculated between the residual signal r(n)--Fourier transform 
R(e.sup.j.theta.)--and the multi-pulse excitation signal r(n)--Fourier 
transform R(re.sup.j.theta.). 
The error minimizing procedure of block 5 controls excitation signal 
generator 6 in such manner, that the synthetic speech signal s(n) (FIG. 1) 
is obtained from a multi-pulse excitation signal m(n) for which the 
distance function d(r,r) is at a minimum. 
The error signal .epsilon.(n) (FIG. 2b) is given by: 
EQU .epsilon.(n)=(r(n)-r(n))*(g(n) (7) 
where g(n) is the impulse response of the filter 7 with the transfer 
function G(z) and * respresents the convolution operation. 
As is illustrated in FIG. 3, the multi-pulse excitation signal is divided 
into segments of the length L1. This length is less than or equal to the 
length L of the interval over which the distance function d(r,r) (6) is 
calculated (L1.ltoreq.L). The number of possible pulse positions within a 
segment of the length L1 is, for example, 80, whereas within each segment 
the positions and amplitudes of, for example, 8 pulses must be determined 
which minimize the distance function. 
According to the invention, the search for a suitable pulse position is 
always limited to a reduced interval or search interval of the length 
L.sub.l.sup.e which is less than the length L1(L.sub.l.sup.e .ltoreq.L1), 
preferably much less, comprising, for example, 5 to 10 possible pulse 
positions. The positons of the search intervals of the length 
L.sub.l.sup.e within an interval of the length L1 are generally different 
for different pulses of the multi-pulse excitation signal. The 
above-mentioned ratios are illustrated in FIGS. 4a and 4b. As is 
illustrated in FIG. 4b the positions of the search interval of the length 
L.sub.l.sup.e will be in the region of the minimum of the square of the 
distance function d(r,r). 
The invention is based on the recognition that there is a high degree of 
correlation between the local minimum of the distance function d(r,r) and 
the local concentration of energy in the error signal which is optimized 
by the preceding pulse determinations. The distance function of the 
k.sup.th pulse determination is indicated by d.sub.k (r,r). Instead of an 
energy calculation, use is made of an average magnitude auxiliary function 
M.sub.k (n) which is given by: 
##EQU5## 
where m is the length of the integration interval, k is the number of the 
pulse of the muli-pulse excitation signal r(n) and .epsilon..sub.k (n) is 
the weighted error signal in accordance with the method shown in FIG. 2b 
when k pulses of the multi-pulse excitation have been determined. 
FIGS. 5a and 5b, respectively show by way of illustration a typical error 
signal .epsilon..sub.k-1 (n) and a typical distance function d.sub.k (r,r) 
in a mutual relationship. 
The procedure for the determination of a pulse in the multi-pulse exitation 
signal is as follows. When M.sub.k-1 (n) reaches its maximum at 
n=n'.sub.k, then the distance function d.sub.k (r,r) is calculated for 
each available pulse position in the search interval, of the length 
L.sub.l.sup.e, which is situated in the region of n'.sub.k. The suitable 
value for L.sub.l.sup.e will depend on the length of m the integration 
interval and on the specific nature of the impulse response of the 
synthesis filter. In this example fixed-length search intervals are used. 
In the search interval the pulse position is then determined corresponding 
to the minimum of the distance function (FIG. 4b). 
This procedure is repeated until the desired number of pulse positions in 
the given interval of length L1 has been determined, whereafter a 
sub-sequent interval is proceeded to. 
The following details can be given by way of illustration: 
sample frequency: 8 KHz; 
L.sub.l.sup.e : 5 to 10 possible pulse positions; 
L1: 80 possible pulse positions; 
number of pulse positions to be determined within interval L1: 8 to 10; 
integration invertal, m=4. 
The position of the search interval of length L.sub.l.sup.e relative to the 
maximum of the auxiliary function M.sub.k (n) will adequately be such that 
it precedes this maximum with, optionally, a suitable shift (offset) 
relative to this maximum. 
The auxiliary function M.sub.k (n) can be released by an integrator to 
which the magnitude of the error signal .epsilon..sub.k (n) is applied and 
which integrates it over m pulse positions. 
As has been indicated with respect to FIG. 2b, the quality of the 
synthesized speech will considerably improve when a pitch predictor 9 is 
inserted in the lead for the multi-pulse excitation signal r(n). 
For the purpose of this specification the term multi-pulse excitation 
signal is considered generic for the multi-pulse excitation signal r(n) as 
indicated in the figures and the signal appearing at the output of the 
pitch predictor 9 in FIG. 2b when such predictor is in fact included and 
the multi-pulse excitation signal r(n) is applied thereto.