Speech coding system

Abstract: This invention provides a novel speech coding system which recursively executes filter-applied "Toeplitz characteristic" by causing the "drive signal utilizing to be converted into the "Toeplitz matrix" when detecting such a pitch period in which which distortion of the input vector and the vector sub­ sequent to the application of filter-applied computation to the drive signal vector in the pitch forecast called either "closed loop" or "compatible code book" is mini­ mized. The vector quantamization method substantially making up the speech coding system of the invention characteristically used a by the system.

Description: The present invention relates to a vector quantamization system made available for compression and transmission of data of digital signals like speech signal for example. More particularly, the invention relates to a speech coding system using vector quantamization process for quantamizing vector by splitting into data related to gain and index. Today, the vector quantamization system is one of the most important technologies attracting keen attention of the concerned, which is substantially a means for effectively encoding either speech signal or image signal by effectively compressing it. In particular, in the speech coding field, either the "code excited linear production (CELP)" system or the "vector excited coding (VXC)" system is known as the one to which the vector quantamization system is applied. Further detail of the CELP system is described by M.R. Schroeder and B.S. Atal, in the technical papers cited below. "Code excited linear production (CELP)" "High-quality speech at very low bit rates", in Proc., ICASSP, 1985, on pages 937 through 939. The conventional method of vector quantamization is described below. The conventional vector quantamization process is hereinafter sequentially described by applying a code vector or a vector n1 = (u i (1), u i (2), ..., u i (L)) (i = 1, 2, ... Ns) generated from a code vector against a target vector u = (u(1), u(2), ... u(L) composed of L pieces of sample and also by applying NG pieces of gain quantamization value Gq (q = 1,2, ...., NG) stored in gain table TG. Next, using index I and gain code Q of the finally selected code vector based on the above vector quantamization the quantamized vector of the target vector u is expressed by equation (B1) shown below. û = G Q ·U I Next, based on a conventional vector quantamization process, a method of selecting index I and gain code Q is described below. Fig. 15 presents a schematic block diagram of a conventional vector quantamization unit based on the the CELP system. Code book 50 is substantially a memory storing a plurality of code vectors. When the stored code vector C(i) is delivered to a filter 52, vector u(i) is generated. Using the vector u(i) generated by the filter 52 and the target vector in, the vector quatamization unit 54 selects an optimal index I and gain code G so that error can be minimized. Error E Between the target vector in and the prospective vector for making up the quantamized vector is expressed by equation (B2) shown below. i = 1, 2, ..., N s ; q = 1, 2, ..., N G When solving the above equation (B2), it is suggested that the optimal values of i and q can be selected with minimum error by detecting a combination of these values i and q when the error E is minimum subsequent to the detection of error E from all the combinations of i and q. Nevertheless, since this method detects minimum error E, computation of the above equation (B2) and comparative computations must be executed by N S × N G rounds. Although depending on the values of N S and N G , normally, a huge amount of cornputations must be executed. To compensate for this, conventionally, the following method is made available. The above equation (B2) is rewritten into the following equation (B3). i = 1, 2, ..., N S ; where Gl designates an optical gain for minimizing the value of E i in the above equation (B3) against each index i. The value of Gl can be determined by assuming that the both sides of the above equation (B3) is zero by partially differentiating the both sides with G i . Concretely, the following equation (B4) can be solved by applying Gi so that still further equations (B5), (B6), and (B7) can be set up. Furthermore, by permuting the above equations (B6) and (B7), the equation (B5) can be developed into (B8). G i = A i B i By substituting the above equation (B8) into the preceding equation (B3), the following equation (B9) can be set up. As a result, when the optimal gain G i is available, the optimal index capable of minimizing the error Ei is substantially the index which minimizes [A i ] 2 /B i . Based on this principle, any conventional vector quantamization system initially selects index 1 capable of minimizing the value [A i ] 2 /B i from all the prospective indexes, and then selects the quantamized value of the optimal gain G i (which is to be computed based on the above equation (B8) against the established index 1) from the gain quantamizing value Gq (q = 1, 2, .... N G ) before eventually determining the gain code Q. This makes up a feature of the conventional vector quantamization process. This conventional system dispenses with the need of directly computing error E i , and yet, makes it possible to select the index I and the gain Q according to the number of computation which is dependent on the number of the prospective indexes dispensing with computation of all the combinations of i and q. Fig. 16 presents a flowchart designating the procedure of the computation mentioned above. Step 31 shown in Fig. 16 computes power B i of vector u i generated from the prospective index i by applying the above equation (B7), and also computes an inner product A i of the vector u i and the target vector u by applying the above equation (B6). Step 32 determines the index 1 maximizing the assessed value [A i ] 2 /B i by applying the power B i and the inner product A i , and then holds the selected index value. Step 33 quantamizes gain using the power B i and the inner product A i based on the quantamization output index determined by the process shown in the preceding step 32. To compare the indexes i and j in the course of the above step 32, it is known that the following equation (B10) can be used for executing comparative computations without applying division. Δ fj = [A i ] 2 ·B j - [A j ] 2 ·B i In the above equation (B10), if Δij were positive, then the index i is selected. Conversely, if Δij were negative, then the index j is selected. After completing comparison of the predetermined number of indexes, the ultimate index is selected, which is called the "quantamization output index". The conventional system related to the vector quantamization described above can select indexes and gains by executing relatively less number of computations. Nevertheless, any of these conventional systems has problem in the performance of quantamization. More particularly, since the conventional system assumes that no error is present in the quantamized gain when selecting an index, in the event that substantial error in the quantamized gain later on, the error E(i,q) of the above equation B2 expands beyond negligible range. The detail is described below. While executing those processes shown in Fig. 16, it is assumed that the index I is established after completing executing of step 32. It is also assumed that quantamization of an optimal gain G i of the index I is completed by executing computations as per the preceding equation (B8) in step 33, and then the quantamized value G I is entered. The error δ of the quantamized gain can be expressed by the following equation (B11). δ = G I - G I In this case, the error E I between the target vector and the quantamized vector yielded by applying the index I and the quantamized gain GI can be expressed by the following equation (B12) by substituting the preceding equations (B6) through (B8) and (B11) into the preceding equation (B3). The right side of the above equation (B12) designates the overall error of the gain quantamization when taking the error δ of the quantamized gain into consideration. The conventional system selects the index I in order to maximize only the value of A I 2 /B I in the second term of the right side of the above equation (B12) without considering the influence of the error δ of the quantamized gain on the overall error of quantamized vector. As a result, when there is substantial error of the quantamized gain, in other words, when the value of the optimal gain GI is apart from the value of the preliminarily prepared gain table, the value of δ 2 B I can grow beyond the negligible range in the actual quantamization process. If this occurs, since the overall error of the quantamized vector is extremely large, any conventional vector quantamization process cannot provide quantamization of stable vector at all. As just mentioned above, any conventional vector quantamization system selects indexes without considering adverse influence of the error of the quantamized gain on the overall error of the quantamized vector. In consequence, when the error grows itself beyond the negligible range after execution of subsequent quantamization of the gain, overall error of the quantamized vector significantly grows. As a result, any conventional system cannot provide quantamization of stable vector. The following description refers to a conventional CELP system mentioned earlier. Fig. 7 presents the principle structure of a conventional CELP system. In Fig. 7, first, speech signal is received from an input terminal 1, and then block-segmenting section 2 prepares L units of sample values per frame basis, and then these sample values are output from an output port 3 as speech signal vectors having length L. Next, these speech signal vectors are delivered to an LPC analyzer 4. Based on the "auto correlation method", the LPC analyzer 4 analyzes the received speech signal according to the LPC method in order to extract LPC forecast parameter (ai) (i = 1, ..., p). P designates the prediction order. The LPC forecast residual vector is output from an output port 18 for delivery to the ensuing pitch analyzer 21. Using the LPC forecast residual vector, the pitch analyzer 21 analyzes pitch which is substantially the long-term forecast of speech, and then extracts "pitch period" TP and "gain parameter" b. These LPC forecast parameter, pitch period" and gain parameter extracted by the pitch analyzer are respectively utilized when generating synthesis speech by applying an LPC synthesis filter 14 and a pitch synthesizing filter 23. Next, the process for generating speech is described below. The code book 17 shown in Fig. 7 contains n units of white noise vector of K units of the dimensional number (the number of vector elements), where K is selected so that L/K can generally become integer. The j-th white noise vector of the code book 17 is multiplied by the gain parameter 22, and then the product is filtered through the pitch synthesizing filter 23 and the LPC synthesis filter 14. As a result, the synthesis speech vector is output from an Output port 24. The transfer function P(Z) of the pitch synthesizing filter 23 and the transfer function A(Z) of the LPC synthesis filter 14 are respectively formulated into the following equations (1) and (2). P(Z) = 1/(1 + bZ -TP ) The generated synthesis speech vector is delivered to the square error calculator 19 to gather with the target vector composed of the input speech vector. The square error calculator 19 calculates the Euclidean distance E j between the synthesis speech vector and the input speech vector. The minimum error detector 20 detects the minimum value of E j . Idential processes are executed against n units of white noise vectors, and as a result, number "j" of the white noise vector providing the minimum value i8 selected. In other words, the CELP system is characterized by quantamizing vectors by applying the code book to the signal driving the synthesis filter in the course of synthesizing speech. Since the input speech vector has length 1, the speech synthesizing process is repeated by L/K rounds. The weighting filter 5 shown in Fig. 7 is available for diminishing distortion perceivable by human ears by forming spectrum of error signal. The transfer function is formulated into the following equations (3) and (4). W(Z) = H(Z/γ) H(Z) H(Z) = A(Z)·P(Z) When the CELP system is actually made available for the encoder itself, those LPC forecast parameters, pitch period, gain parameter of the pitch, code book number, and the code book gain, are fully encoded before being delivered to the decoder. Fig. 8 illustrates the functional block diagram of a conventional CELP system apparatus performing those functional operations identical to those of the apparatins shown in Fig. 7. Compared to the position in the loop available for detecting a conventional code book, the weighting filter 5 shown in Fig. 8 is installed to an outer position. Based on this structure, P(Z) of the pitch synthesizing filter 23 and A(Z) of the LPC synthesis filter 14 can respectively be expressed to be P(Z/γ) and A(Z/γ). It is thus clear that the weighting filter 5 can diminish the amount of calculation while preserving identical function. It is so arranged that the initial memory available for the filtering operation of the pitch synthesizing filter 23 and the LPC synthesis filter 14 does not affect detection of the code book relative to the generation of synthesis speech. Concretely, another pitch synthesizing filter 25 and another LPC synthesis filter 7 each containing an initial value of memory are provided, which respectively subtract "zero-input vector" delivered to an output port 8 from weighted input speech vector preliminarily output from an output port 6 so that the resultant value from the subtraction can be made available for the target vector. As a result, the initial values of memories of the pitch synthesizing filter 23 and the LPC synthesis filter 14 can be reduced to zero. At the same time, it is possible for this system to express generation of synthesis speech, in other words, filter operation of such synthesis filters receiving code book in terms of the code vector and the product of trigonometric matrix below the ensuing K × K. A small character "K" shown in the above equation (5) designates dimensional number (number of elements) of code vector of the code book 17. "h(i) i = 1, ..., K" designates impulse response of the length K when the initial value of memory of H(Z/γ) is zero. Next, the square error calculator 19 calculates error Ej from the following equation (6), and then the minimal distortion detector 20 calculates the minimal value (distortion value). E j = X - γ j HC j (j = 1, 2, ··· n) where X designates the target input vector, C j the j-th code vector, and γ j designates the optimal gain parameter against the j-th code vector, respectively. Fig. 9 presents a flowchart designating the procedure in which the value E j is initially calculated and the vector number "j" giving the minimum value of E j is calculated. To execute this procedure, first, the value of HC j must be calculated against each "j" by applying multiplication by K(K+1)/2·n rounds. When K = 40 and n = 1024 according to conventional practice, as many as 839,680 rounds of multiplication must be executed. Assume that L/K = 4 in the total flow of computation, then as many as 1,048,736 rounds per frame of multiplication must be executed. In other words, when using L = 160 of the number of samples 1 per frame and 8 KHz of sampling frequency of input speech, as many as 52 × 10 6 rounds per second of multiplication must be executed. To satisfy this requirement, at least three units of DSP each having 20MIPS of multiplication capacity are needed. To improve the speech quality of the CELP system, such a system called "formation of closed loop for pitch forecast" or "compatible code book" is conventionally known. Detail of this system is described by W.B. Kleijin, D.J. Krasinski, and R. H. Ketchum, in the publication "Improved Speech Quality and Efficient Vector Quantization in CELP", in Proc., ICASSP, 1988, on pages 155 through 158. Next, referring to Fig. 10, the CELP system called either "formation of closed loop for pitch forecast" or "compatible code book" is briefly explained below. Fig. 10 is a schematic block diagram designating principle of the structure. Only the method of analyzing pitch makes up the difference between the CELP system based on either the above "formation of closed loop for pitch forecast" or the "compatible code book" and the CELP system shown in Fig. 7. When analyzing pitch according to the CELP system shown in Fig. 7, pitch is analyzed based on the LPC forecast residual signal vector output from the output port 18 of the LPC analyzer. On the other hand, the CELP system shown in Fig. 10 features the formation of closed loop for analyzing pitch like the case of detecting the code book. When operating the CELP system shown in Fig. 10, the LPC synthesis filter drive signal output from the output 18 of the LPC analyzer goes through a delay unit 13 which is variable throughout the pitch detecting range and generates drive signal vectors corresponding to the pitch period "j". The drive signal vector is assumedly stored in a compatible code book 12. Target vector is composed of the weighted input vector free from the influence of the preceding frames. The pitch period is detected in order that the error between the target vector and the synthesis signal vector can be minimized. Simultaneously, an estimating unit 26 applying square-distance distortion computes error Ej as per the equation (7) shown below. E j = X - γ j HB j (a ≦ j ≦ b) where X designates the target vector, Bj the drive signal vector when the pitch period "j" is present, γ j the optimal gain parameter against the pitch period "j", H is given by the preceding equation (5), and "H(i) i = 1, ... , K" designates impulse response of the length K when the initial value of memory of A(Z/γ) is zero, respectively. "t" shown in Fig. 11 designates the number of sub-frame composed by input process. When executing this process, the value of HBj must be computed against each "t" and "j". The CELP System shown in Fig. 11 needs to execute multiplication by K(K+l)/2·(b - a + l)·L/K rounds. Furthermore, when K = 40, L = 160, a = 20, and b = 147 in the conventional practice, the CELP system to execute multiplication by 461,312 rounds. Accordingly, when using 8 KHz of input-speech sampling frequency, the CELP system needs to execute as many as 23 × 10 6 rounds per second of multiplication. This in turn requires at least two units of DSP (digital signal processor) each having 20MIPS of multiplication capacity. As is clear from the above description, when detecting pitch period by applying "detection of code book" and "closed loop or compatible code book" under the conventional CELP system, a huge amount of multiplication is needed, thus raising critical problem when executing real-time data processing operations with a digital signal processor DSP. The object of the invention is to provide a speech coding system which is capable of fully solving those problems mentioned above by minimizing the amount of computation to a certain level at which real-time data processing operation can securely be executed with a digital signal processor. The second object of the invention is to provide a vector quantization system which is capable of securely quantizing stable and quality vector notwithstanding the procedure of quantizing gain after selecting an optimal index. The invention provides a speech coding system as defined in Claims 1 and 5. The invention of Claim 1 provides a novel speech coding system which recursively executes filter-applied "Toeplitz characteristic" by causing the drive signal utilized to be converted into the "Toeplitz matrix" when detecting such a pitch period in which tte distortion of the input vector and the vector subsequent to the application of filter-applied computation to the drive signal vector in the pitch forecast called either "closed loop" or "compatible code book" is minimized. The vector quantization system substantially makina up the speech coding system of the invention preferably uses a vector quantization system comprising the following; a means for generating power of vector from the prospective indexes; a means for computing the inner product values of the above vector and the target vector; a means for limiting the prospective indexes based on the inner product value of the power of vector and the critical value of the preliminarily set code vector; a means for selecting the quantized output index by applying the vector power and the liner product value based on the limited prospective indices and a means for quantizing the gain by applying the vector power and the inner product value based on the selected index. When executing the pitch-forecasting process called "closed loop" or "compatible code book", the system converts the drive signal matrix into "toeplitz matrix" to utilize the "Toeplitz characteristic" so that the filter-applied computation can recursively be accelerated, thus making it possible to sharply decrease the rounds of multiplication. The second function of the preferred system is to cause the speech coding system to identify whether the optimal gain exceeds the critical value or not by applying the vector power generated from the prospective index, the inner product value of the target vector, and the critical value of the gain of the preliminarily set vector. Based on the result of this judgement, the speech coding system specifies the prospective indexes, and then selects an optimal index by eliminating such prospective indexes containing substantial error of the quantized gain. As a result, even when quantizing the gain after selecting an optimal index, stable and quality vector quantamization can be provided. This invention can be more fully understood from the following detailed description when taken in conjunction with the accompanying drawings, in which: Fig. 1 is a schematic block diagram designating principle of the structure of the speech coding system applying the pitch parameter detection system according to an embodiment of the invention; Fig. 2 is a chart designating vector matrix explanatory of an embodiment of the invention; Fig. 3 is a flowchart explanatory of computing means according to an embodiment of the invention; Fig. 4 is a chart designating vector matrix explanatory of an embodiment of the invention; Fig. 5 is another flowchart explanatory of computing means according to an embodiment of the invention; Fig. 6 is a schematic block diagram of another embodiment of the speech coding system of the invention; Fig. 7 is a schematic block diagram explanatory of a conventional speech coding system; Fig. 8 is a schematic block diagram explanatory of another conventional speech coding system; Fig. 9 is a flowchart explanatory of a conventional computing means; Figs. 10 and 11 are respectively flowcharts explanatory of conventional computing means; Fig. 12 is a flowchart designating the procedure of vector quantamization according to the first embodiment of the invention; Fig. 13 is a flowchart designating the procedure of vector quantamization according to the second embodiment of the invention; Fig. 14 is a flowchart designating the procedure of vector quantamization according to a modification of the first embodiment of the invention; Fig. 15 is a simplified block diagram of an example of vector quantamization system incorporating filters; and Fig. 16 is a flowchart designating the procedure of a conventional vector quantamization system. Referring to Fig. 1, a line of speech signals are delivered from an input terminal 101 to a block segmenting section 102, which then generates L units of sample values and puts them together as a frame and then outputs these sample values as input signal speech vectors having length 1 for delivery to an LPC analyzer 104 and a weighting filter 105. Applying the "auto-correlation method" for example, the LPC analyzer 104 analyzes the received speech signal according to the longitudinal parity checking before extracting an LPC forecast parameter (a i ) (i = 1, ..., P). The character P designates the prediction order. The extracted LPC forecast parameter is made available for those LPC synthesis filters 107, 109, and 114. In order to execute weighting against the input signal vector, the weighting filter 105 is set to a position outer from the original code-book detecting and pitch-period detecting loop so that the weighting can be executed by the LPC forecast parameter extracted from the LPC analyzer 104. By converting A(Z) into (Z/γ) in the LPC synthesis filters 107, 109, and 114, the amount of the needed computation can be decreased by forming spectrum of error signal while preserving function to diminish distortion perceivable by human ears. The transfer function W(Z) of the weighting filter 105 is given by the equation (8) shown below. W(Z) = A(Z/γ)/A(Z) (0 ≦ γ ≦ 1) A (Z) of the above equation (8) is expressed by equation (9). It is so arranged in the speech coding system of the invention that the initial value of memory cannot affect the detection of the pitch period or the code book during the generation of synthesis speech while the computation is performed by the LPC synthesis filters 109 and 114. Concretely, another LPC synthesis filter 107 having memory 108 containing the initial value zero is provided for the system, and then, zero-input response vector is generated from the LPC synthesis filter 107. Then, the zero-input response vector is substracted from the weighted input speech vector preliminarily output from an adder 106 in order to reset the initial value of the LPC synthesis filter 107 to zero. At the same time, by allowing the LPC synthesis filter receiving the drive signal vector to execute computation for detecting the pitch period or another LPC synthesis filter receiving the code vector to also execute computation for detecting the code book, the speech coding system of the invention can express the filtering by the product of the drive signal vector or the code vector and the trigonometric matrix below the following K × K. The character "K" shown in the above equation (10) designates the dimensional number (number of elements) of the drive signal vector and the code vector. Generally, "K" is selected so that L/K can become integer. "j(i), i = 1, ..., K designates the impulse response having length "K" when the initial value of memory of A (Z/γ) is zero. When the pitch period detection is entered, first, a signal "e" for driving the LPC synthesis filters output from the adder 118 is delivered to a switch 115. If the pitch period "j" as the target of the detection had a value more than the dimensional number K of the code vector, the drive signal "e" is then delivered to a delay circuit 116. Conversely, if the target pitch period "j" were less than the dimensional number K, the drive signal "e" is delivered to a waveform coupler 130, and as a result, a drive signal vector against the pitch period "j" is prepared covering the pitch-detecting range "a" through "b". Next, a counter 111 increments the pitch period "j" all over the pitch detecting range "a" through "b", and then outputs the incremented values to a drive signal code-book 112, switch 115 and the delay circuit 116, respectively. If the pitch period "j" were in excess of the dimensional number "K", as shown in Fig. 2-1, drive signal vector B j is generated from the past drive signal vector "e" yielded by the delay circuit 116. These are composed of the following equations (11) and (12). e = (e(-b), e(-b+1), ···, e(-1)) t B j = (b j (1), b j (2), ···, b j (k)) t = (e(-j), e(-j+1), ···, e(-j+k-1) t (j = k, k+1,···, b) The symbol B j designates the drive signal vector when the pitch period "j" is present. The character "t" designates transposition. If the pitch period "j" were less than the dimensional number "K", the system combines the past drive signal (e(-p), e(-p+l), ..., e(-l)) used for the pitch period "P" of the last sub-frame stored in register 110 with the past drive signal vector "e" to rename the combined unit as e', and then, a new drive signal vector is generated from the combined unit e'. This is formulated by the equation (13) shown below. B j = (e(-j), e(-j+1), ···, e(-1)e(-P)e(-P+1) ···, e(-P+K-j-1) t (j = a, a+1, ···, K-1) According to the equation (13), when expressing each component of the drive signal vector B j by way of (b j (1), b j (2), ..., b j (k)), these can in turn be expressed by the function by way of b j (m) = b j-1 (m - l) (a-1 ≦ j ≦ b, 2 ≦ m ≦ k). It is also possible for the system to express the drive-signal matrix B making up matrix vector with the drive signal vector B j in terms of a perfect Toeplitz matrix shown in the following equation (14). According to the invention, the pitch period capable of minimizing error is sought by applying the target vector composed of weighted input vector free from influence of the last frame output from the adder 106. Distortion E i arose from the square distance of error is calculated by applying the equation (15) shown below. E j = X t - γ j HB j (a ≦ j ≦ b) The symbol X t designates the target vector, B j the drive signal vector when the pitch period "j" is present, γ j the optimal gain parameter against the pitch period "j", and H is given by the preceding equation (10). When computing the above equation (15), computation of HB i , in other words, the filtering operation can recursively be executed by utilizing those characteristics that the drive signal matrix is based on the Toeplitz matrix, and yet, the impulse response matrix of the weighted filter and the LPC synthesis filter is based on downward trigonometric matrix and the Toeplitz matrix as well. This filtering operation can recursively be executed by applying the following equations (16) and (17). V j (l) = h(l)e(-j) V j (m) = V j-l (m-l) + h(m)e(-j) (2 ≦ m ≦ K)(a+l ≦ j ≦ b) where (V i (1), V i (2), ..., V, (K)) t designates the element of HB i . According to the flowchart shown in Fig. 3, only HB a can be calculated by applying conventional matrix-vector product computation, whereas HB j (a+l ≦ j ≦ b) can recursively be calculated from HB j-i , and in consequence, the round of needed multiplication can be reduced to {K(K+1)/2 + (b-a)}· L/K. When k = 40, L = 160, a = 20, and b = 147 as per conventional practice, a total of 23,600 rounds of multiplication is executed. A total of 65,072 rounds of multiplication are executed covering the entire flow. This in turn corresponds to about 14% of the rounds of multiplication needed for the conventional system shown in Fig. 9. When applying 8 KHz of the input speech sampling frequency, the need of multiplication is at 3.3 × 10 6 aounds per second. Gain parameter σ j and the pitch period "j" are respectively computed so that E j shown in the above equation (15) can be minimized. Concrete method of computation described later on. Referring to Fig. 1, when the optimal pitch period "j" is determined, the synthesis speech vector based on the optimal pitch period "j" output from the LPC synthetic filter 109 is subtracted from the weighted input speech vector (free from the influence of the last frame output from from the adder 106, and then the weighted input speech vector free from the influence of the last frame and the pitch is output. Next, synthesis speech is generated by means of code vector of the code book 117 in reference to the target vector composed of the weighted input speech vector (free from the influence of the last frame and the pitch) output from the adder 131. A code vector number "j" is selected, which minimizes distortion E j generated by square distance of error. The process of this selection is expressed by the following equation (18). E j = X t - σ j Hc j (1 ≦ j ≦ n ) (1 ≦ t ≦ L/K) where X designates the weighted input speech vector free from the influence of the last frame and the pitch, C j the j-th code vector, γ j the optimal gain parameter against the j-th code vector, and n designates the number of the code vector. A huge amount of computation is needed to computer E j when C j is composed of independent white noise, an optimal code number for minimizing the value of E j , and HC j shown in the above equation (18). To decrease the rounds of the needed computation, the speech coding system of the invention shifts C j by one sample lot from the rear of a white noise matrix u of length n+k = 1 and then cuts out sample having length "k" as shown in Fig. 4. As is clear from Fig. 4, there is a specific relationship expressed by C j = ... C j-1 (m-1) (2 ≦ j ≦ n, 2 ≦ m ≦ k), the code-book matrix composed of code vector C j aligned in respective vector matrixes is characteristically the Toeplitz matrix itself. W j (l) = h(l)U(n+l-j) (2 ≦ m ≦ K) W j (m) = W j-l (m-l) + h(m)U(n+l-j) (2 ≦ j ≦ n) When this condition is present in which each element of HC j is composed of (W j (1), W j (2), ..., W j (k) t ), the following relation is established so that HC j can recursively be computed. According to the flowchart shown in Fig. 5, only HCl can be calculated by a conventional matrix-vector product computation, whereas HC i (2 ≦ j ≦ n) can recursively be calculated from HC j-l . As a result, the round of the needed computation is reduced to {K·(K+1)/2 + K·(n-1)}. When applying K = 40 and n = 1024 as per the conventional practice, a total of 41,740 rounds of computation are needed. A total of 2,507,964 rounds of computation are performed in the entire flow. This corresponds to 24% of the total rounds of computation based on the system related to the flowchart shown in Fig. 8. In consequence, when applying 8 KHz of the input speech sampling frequency, the speech coding system of the invention merely needs to execute 12.5 × 10 6 rounds per second of multiplication. Conversely, it is also possible for the speech coding system of the invention to shift the code vector by one sample lot from the forefront of the white noise matrix having n+K-l of length. In this case, in order to recursively compute the number of CH j against each unit of "j", the speech coding system needs to execute multiplication by K(K=l)/2+(2K-l)(N-l) rounds. This obliges the system to execute additional multiplications by (K-l)(n-l) rounds, compared to the previous multiplication described above. Not only the CELP system called "formation of closed loop" or "comptatible code-hook" available for the pitch forecast shown in Fig. 1, when detecting the content of the code book based on the above system, in particular, even when applying the CELP system shown in Fig. 7, the content of the code book can be detected by replacing h(i) of H of the above equation (10) with H(Z/γ) of the above equation (4). It is also possible for the system shown in Fig. 1 to compute the pitch period delivered from the register 110 based on the frame unit by applying any conventional method like "auto correlation method" before delivery to the waveform coupler 130. Fig. 6 is a block diagram designating the principle of the structure of the speech coding system related to the above embodiment. The speech coding system according to this embodiment can produce the drive signal vector bY combining zero vector with the past drive signal vector "e" for facilitating the operation of the waveform coupler 130 when the pitch period "j" is less than "K". By execution of this method, the total rounds of computation can be reduced furthermore. As is clear from the above description, as the primary effect of the invention, when executing pitch forecast called either the "closed loop" or the "compatible code-book", the speech coding system of the invention can recursively compute filter operation by effectively applying characteristic of the Toeplitz-matrix formation of the drive signals. Furthermore, when detecting the content of the code book, the speech coding system of the invention can recursively execute filter operation by arranging the code-book matrix into the Toeplitz matrix, thus advantageously decreasing the total rounds of computing operations. Next, the methods of computing the gain parameter r j shown in the above equation (15) pertaining to the detection of the pitch, the gain parameter r j shown in the above equation (18) pertaining to the pitch period "j" and the detection of the content of the code book, and the code-book index "j", are respectively described below. The speech coding system of the invention can detect the pitch and the content of the code book by applying the identical method, and thus, assume that the following two cases are present. u j = v j , Gj = γi; Case: pitch u j = w j , G j = γi; Case: Code book Step 21a shown in Fig. 12 computes power B i of the vector u i generated from the prospective index i by applying the equation (B7) shown below. If the power B i could be produced from "off-line", it can be stored in a memory (not shown) for reading as required. Step 62 shown in Fig. 14 computes the inner product value A i of the vector ui and the target vector X t by applying the equation (B6) shown below. Step 22 checks to see if the optimal gain G i is out of the critical value of the gain, or not. The critical value of the gain consists of either the upper or the lower limit value of the predetermined code vector of the gain table, and yet, the optimal gain G i is interrelated with the power B i , the inner product value A i , and the equation (B8) shown below. Only the index corresponding to the gain within the critical value is delivered to the following step 23. G i = A i B i When step 23 is entered, by applying the power B i and the inner product value A i , the speech coding system executes detection of the index containing the assessed maximum value A i /B i against the index i specified in the last step 22 before finally selecting the quantamized output index. When step 24 is entered, by applying the power and the inner product value based on the quantamized output index selected in the last step 23, the speech coding system of the invention quantamizes the gain pertaining to the above equation (B8). Not only the method described above, but the speech coding system of the invention also quantamizes the gain in step 24 by sequentially executing steps of directly computing error between the target value and the quantamized vector by applying the quantamized value of the gain table for example, followed by detection of the gain quantamized value capable of minimizing error, and finally selects this value. Those steps shown in Fig. 13 designated by those reference numerals identical to those of Fig. 12 are of the identical content, and thus the description of these steps is deleted. When step 13 is entered, the speech coding system detects the index and the quatamized gain output value capable of minimizing error of quantamized vector against the specific index i determined in process of step 22 before eventually selecting them. The speech coding system of this embodiment detects an ideal combination of a specific index and a gain capable of minimizing error in the quantamized vector against the combination of the index i and q by applying all the indexes i' and all the quantamized gain values Gq in the critical value of the gain in the gain table, and then converts the combination of the detected index value i and q into the quantamized index output value and the quantamized gain output value. The embodiment just described above relates to a speech coding system which introduces quantamization of the gain of vector. This system collectively executes common processes to deal with indexes entered in each process, and then only after completing all the processes needed for quantamizing vector, the system starts to execute the ensuing processes. However, according to the process shown in Fig. 12 for example, modification of process into a loop cycle is also practicable. In this case, step 62 shown in Fig. 14 computes the inner product value A i of the vector u i and the target vector X t against index i by applying the above equation (6), and then after executing all the processes of the ensuing steps 64 and 65, the index i is incremented to allow all the needed processes to be executed against the index i+1 in the same way as mentioned above. When introducing the modified embodiment, the speech coding system detects and selects the quantamized output index in step 65 for comparing the parameter based on the presently prospective index i to the parameter based on the previously prospective index i-l, and thus, the initial-state-realizing step 61 must be provided to enter the parameter available for the initial comparison. As the secondary effect of the invention, the speech coding system initially identifies whether the value of the optimal gain exceeds the critical value of the gain, or not and then, based on the identified result, prospective indexes are specified. As a result, the speech coding system can select the optimal index by eliminating such indexes which cause the error of the quantamized gain to expand. Accordingly, even if the gain is quantamized after selection of the optimal index, the speech coding system embodied by the invention can securely provide stable and quality vector quantamization.

Claims: A speech coding system comprising means (102) for receiving an input speech signal and outputting the input speech signal in the form of an input speech vector having one frame of length, and analyzing means (104) for analyzing the input speech vector by means of a linear predictive coding method and extracting a predictive parameter from the input speech vector, characterized by weighting means (105) for weighting the input speech vector with the predictive parameter from said analyzing means, and for outputting a first weighted input speech vector; a first synthesis filter (107) for filtering a zero-input speech vector; a first subtraction means (106) for producing a difference between the first weighted input speech vector and the zero-input speech vector; an excitation signal vector generating means (115, 116, 118, 130) for generating a first excitation signal vector when a target pitch period exceeds a predetermined value, and for generating a second excitation signal vector when the target pitch period is below the predetermined value; a computing means (111, 112, 119, 120a) for recursively executing one or more operations using a drive signal matrix using one of the first and second excitation signal vectors in the form of a first Toeplitz matrix when executing the one or more operations to determine an optimal pitch period at which an error between the first weighted input speech vector and a synthesized vector obtained by using the one of the first and second excitation signal vectors is at a minimum; a second synthesis filter (109a) for generating a synthesis speech vector corresponding to the optimal pitch period; a third synthesis filter (114); a codebook (117) for generating a code vector for input to the third synthesis filter (114), the code vector being expressible in terms of a second Toeplitz matrix; a second subtraction means (131) for producing a difference between the output of said first subtraction means (106) and the synthesis speech vector corresponding to the optimal pitch period; thus removing the influence of a last frame and influence of a pitch from the first weighted input speech vector; a third subtraction means (132) for producing a difference between the output of said second subtraction means (131) and said third synthesis filter (114) and a selection means (119b, 120b) for selecting from said codebook (117) an optimal code vector used to provide stable quality vector quantization such that the difference between the output from said third synthesis filter (114) and a second weighted input speech vector is minimized. The speech coding system according to claim 1, wherein said excitation signal vector generating means includes: a delay circuit (116) and a waveform coupling means (130) which synthesize a predetermined speech waveform and speech waveforms preliminarily stored in a storage means (110) for storing a previous speech waveform; and wherein said excitation signal vector generating means (116, 130) is connected to a switching means (115) which, in accordance with a predetermined condition switches the destination of the excitation signal vector delivered from said excitation signal vector generating means (118) either to said delay circuit (116) or to said waveform coupling means (130). The speech coding system according to claim 2, wherein, if the optimal pitch period exceeds a dimensional number of the code vector, said switching means (115) provides an excitation signal vector from said excitation signal vector generating means (118) to said delay circuit (116), whereas if the pitch period is less than the dimensional number of the code vector, said switching means (115) provides an excitation signal vector from said excitation signal vector generating means (118) to said waveform coupling means (130); wherein said delay circuit (116) delays the pitch period by a predetermined amount and said waveform coupling means (130) couples a zero-vector with a previous excitation signal vector so as to produce a new excitation signal vector. The speech coding system according to claim 2, further comprising a pitch analyzing means (103) which is connected to said analyzing means (104) for executing pitch analysis for implementing long-term speech forecast by applying a forecast parameter extracted from said analyzing means (104) and also applying a forecast residual signal vector designating a predictive error, and wherein said pitch analyzing means (103) extracts a pitch period resulting from said pitch analysis and an optimal gain parameter suited for the pitch period, and outputs the value of the optimal gain parameter to said waveform coupling means (130). A speech coding system comprising an input speech means (102) which, upon receipt of an input speech signal, generates an input speech vector, characterized by a weighting means (105) which weights the input speech vector by means of a predetermined parameter and generates a weighted input speech vector; an excitation signal vector generating means (118, 115, 116, 130) which extracts and generates an excitation signal vector from a filter excitation signal for driving a linear predictive coding check filter which outputs a synthesized vector; a computing means (111, 112, 119, 120) for recursively executing operations by using a drive signal matrix having the excitation signal vector represented by a Toeplitz matrix when executing the operations to determine an optimal code vector such that an error between the weighted input speech vector and the synthesized vector is at a minimum; and output generating means (109) for outputting a speech vector corresponding to the optimal code vector. The speech coding system according to claim 5, wherein said excitation signal vector generating means (118) includes means for generating the excitation signal vector including a first excitation signal vector generated when a pitch period exceeds a predetermined value and a second excitation signal vector produced when the pitch period is below the predetermined value. The speech coding system according to claim 1 or 5, characterized in that said computing means comprises: a filter coefficient table (121, 122) having coefficients in terms of a Toeplitz matrix H; a code table (112, 117) having vectors B i or C i designating a predetermined number N of L-dimensional vectors each having L sample elements, the sample elements of the L-dimensional vectors (B=B a , B a+1 ,- - - B b or C=C 1 , C 2 ,- - -, C N ) having an overlapped relation of B j (m) = B i (m-k) or C j (m) = C i (m-k), where 1 ≦ i, j ≦ N, 1 ≦ m ≦ L, 1 ≦ k < L, B j (m) or C j (m) = mth element of the vector B j or C j ; a LPC synthesis filter (109, 114) for obtaining a target vector, using data of said filter coefficient table and said code table by means of a recursively calculation so that multiplication of H · B j or H · C j is performed on the basis of the calculation result of H · B i or H · C i . The speech coding system according to claim 1 or 5, characterized in that said computing means comprises: a filter coefficient table (121, 122) having coefficients in terms of a Toeplitz matrix H; a code table (112, 117) having vectors B i or C i , the term B i or C i designating a predetermined number N of L-dimensional vectors each having L sample elements, the sample elements of the L-dimensional vectors having an overlapped relation of B i (m) = B i-1 (m-k) or C i (m) = C i-1 (m-k), where 2 ≦ i ≦ N, 1 ≦ m ≦ L, 1 ≦ k < L, B i (m) or C i (m) = mth element of the vector B i or C i , and a LPC synthesis filter (109, 114) for obtaining a target vector, using data of said filter coefficient table and said code table by means of a recursively calculation so that multiplication of H · B i or H · C i is performed on the basis of the calculation result of H · B i-1 or H · C i-1 . The speech coding system according to claim 1 or 5 characterized in that said computing means comprises: a filter coefficient table (121, 122) having coefficients in terms of a Toeplitz matrix H; a code table (112, 117) having vectors B i or C i , the term B i or C i designating a predetermined number N of L-dimensional vectors having L sample elements, the sample elements of the L-dimensional vectors having an overlapped relation of B j (m) = B i (m-k) or C j (m) = C i (m-k), where 1 ≦ i, j ≦ N, 1 ≦ m ≦ L, 1 ≦ k < L, B j (k) or B j (m) = mth element of the vector B i or C i ; and a LPC synthesis filter (109, 114) including means for storing a result of multiplication of H · B i or H · C i , means for multiplying B j or C j with the matrix H after setting N-k elements of B j or C j to zero so that B j (m) or C j (m) = 0, k+1 ≦ m ≦ L and means for adding the multiplication result of said multiplying means and the multiplication result stored in said storing means after shifting it by k samples, to obtain an addition result. The speech coding system according to claim 1 or 5, characterized in that said computing means comprises: a filter coefficient table (121, 122) having coefficients in terms of a Toeplitz matrix H; a code table (112, 117) having vectors B i or C i , the term B i or C i designating a predetermined number N of L-dimensional vectors each having L sample elements, the sample elements of the L-dimensional vectors having an overlapped relation of B j (m) = B i (m-k) or C j (m) = C i (m-k), where 1 ≦ i, j ≦ N, 1 ≦ m ≦ L, 1 ≦ k < L, B j (m) or C i (m) = mth element of the vector B j or C j ; a LPC synthesis filter (109, 114) including means for storing a result of multiplication of H · B j or C j , means for multiplying B j or C j with the matrix H after setting elements of a L-k columns of H to zero so that H (i, j) = 0, 1 ≦ i ≦ L, k+1 ≦ j ≦ L and means for adding the multiplication result of said multiplying means and the multiplication result stored in said storing means after shifting it by k samples, to obtain and store an addition result. The speech coding system according to claim 1 or 5, characterized in that said computing means comprises: a filter coefficient table (121, 122) having coefficients in terms of a Toeplitz matrix H; a code table (112, 117) having vectors B i or C i , the term B i or C i designating a predetermined number N of L-dimensional vectors having L sample elements, the sample elements of the L-dimensional vectors having an overlapped relation of B i (m) = B i-1 (m-k) or C i (k) = C i-1 (m-k), where 2 ≦ i ≦ N, 1 ≦ m ≦ L, 1 ≦ k < L, B i (m) or C i (m) = mth element of the vector B i or C i ; a LPC synthesis filter (109, 114) including means for storing a result of multiplication of H · B i-1 or H · C i-1 , means for multiplying B j or C j (2 ≦ j ≦ N) with the matrix H after setting N-k elements of B j or C j to zero so that B j (m) or C j (m) = 0, k+1 ≦ m ≦ L, and means for adding a multiplication result of said multiplying means and the multiplication result stored in said storing means after shifting it by k samples, to obtain and store an addition result. The speech coding system according to claim 1 or 5, characterized in that said computing means comprises: a filter coefficient table (121, 122) having coefficients in terms of a Toeplitz matrix H; a code table (112, 117) having vectors B i or C i , the term B i or C i designating a predetermined number N of L-dimensional vectors having L sample elements, the sample elements of the L-dimensional vectors having an overlapped relation of B i (m) = B i-1 (m-k) or C i (k) = C i-1 (m-k), where 2 ≦ i ≦ N, 1 ≦ m ≦ L, 1 ≦ k < L, B i (m) or C i (m) = mth element of the vector B i or C i ; a LPC synthesis filter (109,114) including means for storing a result of multiplication of H · B i-1 or H · C i-1 , means for multiplying B j or C j (2 ≦ j ≦ N) with the matrix H after setting elements of L-k columns of H to zero so that H(i, j) = 0, 1≦i≦L, k+1≦j≦L and means for adding the multiplication result stored in said storing means after shifting it by k samples, to obtain and store an addition result.

Inventors: AKAMINE MASAMI, MISEKI KIMIO, OKUDA YUJI, AKAMINE, MASAMI, MISEKI, KIMIO, OKUDA, YUJI, AKAMINE, MASAMI, C/O INTELLECTUAL PROPERTY DIV., MISEKI, KIMIO, C/O INTELLECTUAL PROPERTY DIV., OKUDA, YUJI, C/O INTELLECTUAL PROPERTY DIV.
Applicants: TOSHIBA KK, KABUSHIKI KAISHA TOSHIBA
Application year: 1990
Main classification: G10L9
IPC codes: G10L19