Efficient calculation of autocorrelation coefficients for CELP vocoder adaptive codebook
First Claim
1. A method for CELP coding speech employing autocorrelation coefficients of vectors of an adaptive codebook of vector length N wherein analysis initially utilizes a subset of samples M<
- N with a speech analysis frame of length L, comprising;
calculating autocorrelation coefficients Uk (m) of a first vector Ck (n) of length M, where k=1 and m is an autocorrelation lag index and n is an index of the successive samples in the codebook vector, according to, ##EQU18## for m=0 to T<
M;
calculating the autocorrelation coefficients Uk (m) of the remaining codebook vectors incrementally where k≧
2 according to,
space="preserve" listing-type="equation">U'"'"'.sub.k (m)=[U'"'"'.sub.k-1 (m)+C.sub.k (M+k-1)C.sub.k (M+k-1+m)](3) ##EQU19## for m=0 to T<
M;
repeating the second calculating step until (M+k-1)=L; and
using the above-determined autocorrelation coefficients in determining which of the codebook vectors Ck (n) produces the least error when compared to input speech.
3 Assignments
0 Petitions
Accused Products
Abstract
A new way of determining autocorrelation coefficients for adaptive codebook vectors for CELP coding of speech simplifies and improves the accuracy of the autocorrelation coefficient determination for the situation where the codebook vector length being analyzed is less than a speech frame length. This is important in synthesizing short pitch period speech. Copy-up of the shortened codebook vector to equal the frame length is not needed and autocorrelation coefficient errors associated with copy-up are avoided. The improved system relies on calculating autocorrelation coefficients of the first (shortest) vector and then obtaining subsequent autocorrelation coefficients for successive vectors of increasing length by a simple end correction technique until the vector length equals the frame length. The autocorrelation coefficients are scaled by multiplying them by the ratio of the frame length to the vector length.
26 Citations
14 Claims
-
1. A method for CELP coding speech employing autocorrelation coefficients of vectors of an adaptive codebook of vector length N wherein analysis initially utilizes a subset of samples M<
- N with a speech analysis frame of length L, comprising;
calculating autocorrelation coefficients Uk (m) of a first vector Ck (n) of length M, where k=1 and m is an autocorrelation lag index and n is an index of the successive samples in the codebook vector, according to, ##EQU18## for m=0 to T<
M;
calculating the autocorrelation coefficients Uk (m) of the remaining codebook vectors incrementally where k≧
2 according to,
space="preserve" listing-type="equation">U'"'"'.sub.k (m)=[U'"'"'.sub.k-1 (m)+C.sub.k (M+k-1)C.sub.k (M+k-1+m)](3) ##EQU19## for m=0 to T<
M;
repeating the second calculating step until (M+k-1)=L; andusing the above-determined autocorrelation coefficients in determining which of the codebook vectors Ck (n) produces the least error when compared to input speech. - View Dependent Claims (2, 3, 4, 5)
- N with a speech analysis frame of length L, comprising;
-
6. A method for CELP coding speech employing autocorrelation coefficients of vectors of an adaptive codebook identified by an index k, wherein analysis by synthesis initially utilizes M<
- L codebook values where L is the speech analysis frame length and m is an index running from 0 to M-1 describing the autocorrelation lag, comprising;
calculating m=0 to m-1 autocorrelation coefficients of a first codebook vector k having n=1 to M values therein where n is an index of the code vector values; placing the m=0 to M-1 calculated autocorrelation coefficients in a temporary store; scaling the coefficients in the temporary store by a multiplying factor L/M and transferring the result to an output; multiplying codebook values for n=M+j where j=1 by codebook values for n=M+j down to n=1 and adding the products to the m=0 to M-1 autocorrelation coefficients, respectively, from the temporary store to produce a result; replacing the autocorrelation coefficients in the temporary store by the result; scaling the coefficients in the temporary store by a multiplying factor L/(M+j) and transferring the result to the output; repeating the multiplying, replacing, scaling and transferring steps for j=2 to j=k-1 and k=(L+1-M); and using the autocorrelation coefficients transferred to the output to determining which of the codebook vectors provides better CELP coding of speech.
- L codebook values where L is the speech analysis frame length and m is an index running from 0 to M-1 describing the autocorrelation lag, comprising;
-
7. An apparatus for CELP coding of speech employing autocorrelation coefficients of vectors of an adaptive codebook wherein analysis initially utilizes a subset of samples M in connection with a speech analysis frame of length L>
- M, comprising;
means for determining autocorrelation coefficients Uk'"'"' (m) of a first vector Ck (n) of length M, where k=1 and m is an autocorrelation lag index and n is an index of successive samples in the codebook vector, according to, ##EQU20## for m=0 to T<
M;
means for determining autocorrelation coefficients Uk (m) of remaining codebook vectors incrementally where k≧
2 according to,
space="preserve" listing-type="equation">U'"'"'.sub.k (m)=[U'"'"'.sub.k-1 (m)+C.sub.k (M+k-1)C.sub.k (M+k-1+m)](2)for m=0 to T<
M until (M+k-1)=L;means for scaling the result of Eq. (1) according to ##EQU21## and scaling the result for Eq. (2) according to ##EQU22## for m=0 to T<
M to produce a result for each m and each k; and
means for using the result to evaluate which codebook vector provides a least error compared to input speech. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
- M, comprising;
Specification