Speech decoder

Abstract: The voiced/unvoiced frame judging unit 170 derives a plurality of feature quantities from the speech signal that has been reproduced in the speech decoder unit 140 in the previous frame. Then, it checks whether the current frame is a voiced or unvoiced one, and outputs the result of the check to the second switch circuit 180. The second switch circuit 180 outputs the input data to the bad frame masking unit 150 for voiced frame if it is determined in the voiced/unvoiced frame judging unit 170 that the current frame is a voiced one. If the current frame is an unvoiced one, the second switch circuit 180 outputs the input data to the bad frame masking unit 160 for unvoiced frame.

Description: This invention relates to a speech decoder for high quality decoding a speech signal which has been transmitted at a low bit rate, particularly at 8 kb/sec. or below. A well-known speech decoder concerning frames with errors, is disclosed in a treatise entitled "Channel Coding for Digital Speech Transmission in the Japanese Digital Cellular System" by Michael J. McLaughlin (Radio Communication System Research Association, RC590-27, p-p 41-45). In this system, in a frame with errors the spectral parameter data and delay of an adaptive codebook having an excitation signal determined in the past are replaced with previous frame data. In addition, the past frame without errors amplitude is reduced in a predetermined ratio to use the reduced amplitude as the amplitude for the current frame. In this way, speech signal is reproduced. Further, if more errors than the predetermined number of frames are detected continuously, the current frame is muted. In this prior art system, however, the spectral parameter data in the previous frame, the delay and the amplitude as noted above are used repeatedly irrespective of whether the frame with errors is a voiced or an unvoiced one. Therefore, in the reproduction of the speech signal the current frame is processed as a voiced one if the previous frame is a voiced one, while it is processed as an unvoiced one if the previous frame is an unvoiced one. This means that if the current frame is a transition frame from a voiced to an unvoiced one, it is impossible to reproduce speech signal having unvoiced features. An object of the present invention is, therefore, to provide a speech decoder with highly improved speech quality even for the voiced/unvoiced frame. This object is achieved with the features of the claims. According to the present invention, there is provided a speech decoder as defined in claim 1. In the above speech decoder, in repeated use of the spectral parameter data in the past frame in the bad frame masking units for voiced and unvoiced frames, the spectral parameter data is changed by combining the spectral parameter data of the past frame and robust-to-error part of the spectral parameter data of the current frame with an error. When obtaining the gains of the obtained excitation and the excitation signal in the bad frame masking unit for voiced frame according to the pitch information for forming an excitation signal, gain retrieval is done such that the power of the excitation signal of the past frame and the power of the excitation signal of the current frame are equal to each other. According to the present invention, there is also provided a speech decoder as defined in claim 4. Other objects and features will be clarified from the following description with reference to the attached drawings. Fig. 1 is a block diagram showing a speech decoder embodying a first embodiment of the invention; Fig. 2 is a block diagram showing a structure example of a voiced/unvoiced frame judging unit 170 in the speech decoder according to the first embodiment of the invention; Fig. 3 is a block diagram showing a structure example of a bad frame masking unit 150 for voiced frame in the speech decoder according to the first embodiment of the invention; Fig. 4 is a block diagram showing a structure example of a bad frame masking unit 160 for unvoiced frame in the speech decoder according to the first embodiment of the invention; Fig. 5 is a block diagram showing a structure example of a bad frame masking unit 150 for voiced frame in a speech decoder according to a second embodiment of the invention; Fig. 6 is a block diagram showing a structure example of a bad frame masking unit 160 for unvoiced frame in the speech decoder according to the second embodiment of the invention; and Fig. 7 is a block diagram showing a structure example of a bad frame masking unit 150 for voiced frame according to a third embodiment of the invention. A speech decoder will now be described in case where a CELP method is used as a speech coding method for the sake of simplicity. Reference is made to the accompanying drawings. Fig. 1 is a block diagram showing a speech decoding system embodying a first embodiment of the invention. Referring to Fig. 1, a receiving unit 100 receives spectral parameter data transmitted for each frame (of 40 msec. for instance), delay of an adaptive codebook having an excitation signal determined in the past (corresponding to pitch information), an index of excitation codebook comprising an excitation signal, gains of the adaptive and excitation codebooks and amplitude of a speech signal, and outputs these input data to an error detection unit 110, a data memory 120 and a first switch circuit 130. The error detection unit 110 checks whether errors are produced in perceptually important bits by channel errors and outputs the result of the check to the first switch circuit 130. The first switch circuit 130 outputs the input data to a second switch circuit 180 if an error is detected in the error detection unit 110 while it outputs the input data to a speech decoder unit 140 if no error is detected. The data memory 120 stores the input data after delaying the data by one frame and outputs the stored data to bad frame masking units 150 and 160 for voiced and unvoiced frames, respectively. The speech decoder unit 140 decodes the speech signal by using the spectral parameter data, delay of the adaptive codebook having an excitation signal determined in the past, index of the excitation codebook comprising the excitation signal, gains of the adaptive and excitation codebooks and amplitude of the speech signal, and outputs the result of decoding to a voiced/unvoiced frame judging unit 170 and also to an output terminal 190. The voiced/unvoiced frame judging unit 170 derives a plurality of feature quantities from the speech signal that has been reproduced in the speech decoder unit 140 in the previous frame. Then, it checks whether the current frame is a voiced or unvoiced one, and outputs the result of the check to the second switch circuit 180. The second switch circuit 180 outputs the input data to the bad frame masking unit 150 for voiced frame if it is determined in the voiced/unvoiced frame judging unit 170 that the current frame is a voiced one. If the current frame is an unvoiced one, the second switch circuit 180 outputs the input data to the bad frame masking unit 160 for unvoiced frame. The bad frame masking unit 150 for voiced frame, interpolates the speech signal by using the data of the previous and current frames and outputs the result to the output terminal 190. The bad frame masking unit 160 for unvoiced frame interpolates the speech signal by using data of the previous and current frames and outputs the result to the output terminal 190. Fig. 2 is a block diagram showing a structure example of the voiced/unvoiced frame judging unit 170 in this embodiment. For the sake of simplicity, a case will be considered, in which two different kinds of feature quantities are used for the voiced/unvoiced frame judgment. Referring to Fig. 2, a speech signal which has been decoded for each frame (of 40 msec., for instance) is input from an input terminal 200 and output to a data delay circuit 210. The data delay circuit 210 delays the input speech signal by one frame and outputs the delayed data to a first and a second feature quantity extractors 220 and 230. The first feature quantity extractor 220 derives a pitch estimation gain representing the periodicity of the speech signal by using formula (1) and outputs the result to a comparator 240. The second feature quantity extractor 230 calculates the rms of the speech signal for each of sub-frames as divisions of a frame and derives the change in the rms by using formula (2), the result being output to the comparator 240. The comparator 240 compares the two different kinds of feature quantities that have been derived in the first and second feature quantity extractors 220 and 230 to threshold values of the two feature quantities that are stored in a threshold memory 250. By so doing, the comparator 240 checks whether the speech signal is a voiced or an unvoiced one, and outputs the result of the check to an output terminal 260. Fig. 3 is a block diagram showing a structure example of the bad frame masking unit 150 for voiced frame in the embodiment. Referring to Fig. 3, the delay of the adaptive codebook is input from a first input terminal 300 and is output to a delay compensator 320. The delay compensator 320 compensates the delay of the current frame according to the delay of the previous frame having been stored in the data memory 120 by using formula (3). The index of the excitation codebook is input from a second input terminal 310, and an excitation code vector corresponding to that index is output from an excitation codebook 340. A signal that is obtained by multiplying the excitation code vector by the gain of the previous frame that has been stored in the data memory 120, and a signal that is obtained by multiplying the adaptive code vector output from an adaptive codebook 330 with the compensated adaptive codebook delay by the gain of the previous frame that has been stored in the data memory 120, are added together, the resultant sum is output to a synthesis filter 350. The synthesis filter 350 synthesizes speech signal by using a previous frame filter coefficient stored in the data memory 120 and outputs the resultant speech signal to an amplitude controller 360. The amplitude controller 360 executes amplitude control by using the previous frame rms stored in the data memory 120, and it outputs the resultant speech signal to an output terminal 370. Fig. 4 is a block diagram showing a structure example of the bad frame masking unit 160 for unvoiced frame in the embodiment. Referring to Fig. 4, the index of the excitation codebook is input from an input terminal 400, and an excitation code vector corresponding to that index is output from an excitation codebook 410. The excitation code vector is multiplied by the previous frame gain that is stored in the data memory 120, and the resultant product is output to a synthesis filter 420. The synthesis filter 420 synthesizes speech signal by using a previous frame filter coefficient stored in the data memory 120 and outputs the resultant speech signal to an amplitude controller 430. The amplitude controller 430 executes amplitude control by using a previous frame rms stored in the data memory 120 and outputs the resultant speech signal to an output terminal 440. Fig. 5 is a block diagram showing a structure example of bad frame masking unit 150 for voiced frame in a speech decoder embodying a second embodiment of the invention. Referring to Fig. 5, the adaptive codebook delay is input from a first input terminal 500 and output to a delay compensator 530. The delay compensator 530 delays the delay of the current frame with previous delay data stored in the data memory 120 by using formula (3). The excitation codebook index is input from a second input terminal 510, and an excitation code vector corresponding to that index is output from an excitation codebook 550. A signal that is obtained by multiplying the excitation code vector by a previous frame gain stored in the data memory 120, and a signal that is obtained by multiplying the adaptive code vector output from an adaptive codebook 540 with the compensated adaptive codebook delay by the previous frame gain stored in the data memory 120, are added together, and the resultant sum is output to a synthesis filter 570. A filter coefficient interpolator 560 derives a filter coefficient by using previous frame filter coefficient data stored in the data memory 120 and robust-to-error part of filter coefficient data of the current frame having been input from a third input terminal 520, and outputs the derived filter coefficient to a synthesis filter 570. The synthesis filter 570 synthesizes speech signal by using this filter coefficient and outputs this speech signal to an amplitude controller 580. The amplitude controller 580 executes amplitude control by using a previous frame rms stored in the data memory 120, and outputs the resultant speech signal to an output terminal 590. Fig. 6 is a block diagram showing a structure example of bad frame masking unit 160 for unvoiced frame in the speech decoder embodying the second embodiment of the invention. Referring to Fig. 6, the excitation codebook index is input from a first input terminal 600, and an excitation code vector corresponding to that index is output from an excitation codebook 620. The excitation code vector is multiplied by a previous frame gain stored in the data memory 120, and the resultant product is output to a synthesis filter 640. A filter coefficient interpolator 630 derives a filter coefficient by using previous frame filter coefficient data stored in the data memory 120 and robust-to-error part of current frame filter coefficient data input from a second input terminal 610, and outputs this filter coefficient to a synthesis filter 640. The synthesis filter 640 synthesizes speech signal by using this filter coefficient, and outputs this speech signal to an amplitude controller 650. The amplitude controller 650 executes amplitude control by using a previous frame rms stored in the data memory 120 and outputs the resultant speech signal to an output terminal 660. Fig. 7 is a block diagram showing a structure example of a bad frame masking unit 150 in a speech decoder embodying a third embodiment of the invention. Referring to Fig. 7, the adaptive codebook delay is input from a first input terminal 700 and output to a delay compensator 730. The delay compensator 730 compensates the delay of the current frame with the previous frame delay that has been stored in the data memory 120 by using formula (3). A gain coefficient retrieving unit 770 derives the adaptive and excitation codebook gains of the current frame according to previous frame adaptive and excitation codebook gains and rms stored in the data memory 120 by using formula (4). The excitation code index is input from a second input terminal 710, and an excitation code vector corresponding to that index is output from an excitation codebook 750. A signal that is obtained by multiplying the excitation codebook vector by the gain obtained in a gain coefficient retrieving unit 770, and a signal that is obtained by multiplying the adaptive code vector output from an adaptive codebook 740 with the compensated adaptive codebook delay by the gain obtained in the gain coefficient retrieving unit 770, are added together, and the resultant sum is output to a synthesis filter 780. A filter coefficient compensator 760 derives a filter coefficient by using previous frame filter coefficient data stored in the data memory 120 and robust-to-error part of filter coefficient data of the current frame input from a third input terminal 720, and outputs this filter coefficient to a synthesis filter 780. The synthesis filter 780 synthesizes speech signal by using this filter coefficient and outputs the resultant speech signal to an amplitude controller 790. The amplitude controller 790 executes amplitude control by using the previous frame rms stored in the data memory 120, and outputs the resultant speech signal to an output terminal 800. Pitch estimation gain G is obtained by using a formula, G=10×log 10 〈x,x〉 〈x,x〉 - 〈c,x〉 2 〈c,c〉 where x is a vector of the previous frame, and c is a vector corresponding to a past time point earlier by the pitch period. Shown as 〈,〉 is the inner product. Denoting the rms of each of the sub-frames of the previous frame by rms 1 , rms 2 , ..., rms 5 , the change V in rms is given by the following formula. In this case, the frame is divided into five sub-frames. V=20×log 10 rms 3 +rms 4 +rms 5 rms 1 +rms 2 +rms 3 Using the previous frame delay Lp and current frame delay L, we have 0.95×L p < L < 1.05×L p If L meets formula (3), L is determined that the delay is of the current frame. Otherwise, L p is determined that the delay is of the current frame. A gain for minimizing the next error E I is selected with the following formula (4): E i = R p × G ap 2 +G ep 2 -R× G ai 2 +G ei 2 where R p is the previous frame rms, R is the current frame rms, G ap and G ep are gains of the previous frame adaptive and excitation codebooks, and G ai and G ei are the adaptive and excitation codebook gains of index i. It is possible to use this system in combination with a coding method other than the CELP method as well. As has been described in the foregoing, according to the first embodiment of the invention it is possible to obtain satisfactory speech quality with the voiced/unvoiced frame judging unit executing a check as to whether the current frame is a voiced or an unvoiced one and by switching the bad frame masking procedure of the current frame between the bad frame masking units for voiced and unvoiced frames. The second embodiment of the invention makes it possible to obtain higher speech quality by causing, while repeatedly using the spectral parameter of the past frame, changes in the spectral parameter by combining the spectral parameter of the past frame and robust-to-error part of error-containing spectral parameter data of the current frame. Further, according to the third embodiment of the invention, it is possible to obtain higher speech quality by executing retrieval of the adaptive and excitation codebook gains such that the power of the excitation signal of the past frame and that of the current frame are equal.

Claims: A speech decoder comprising: a receiving unit (100) for receiving parameters of spectral data, pitch data corresponding to a pitch period, and index data and gain data of an excitation signal for each frame having a predetermined length of a speech signal and outputting them; a speech decoder unit (140) for reproducing a speech signal by using said parameters; a data memory (120) for storing the input data after delaying the data by one frame; an error correcting unit for correcting an error in said speech signal; an error detecting unit (110) for detecting an error frame incapable of correction in said speech signal; a voiced/unvoiced frame judging unit (170) for judging whether said error frame detected by said error detecting unit is a voiced frame or an unvoiced frame based upon a plurality of feature quantities of said speech signal which has been reproduced in said speech decoder unit in a past frame; a bad frame masking unit (150) for voiced frames for reproducing a speech signal of the error frame detected by said error detecting unit and judged as a voiced frame by using said spectral data, said pitch data and said gain data of the past frame and said index data of said error frame; a bad frame masking unit (160) for unvoiced frames for reproducing a speech signal of the error frame detected by said error detecting unit and judged as an unvoiced frame by using said spectral data and said gain data of the past frame and said index data of said error frame; and a switching unit (180) for outputting the input data to either said bad frame masking unit (150) for voiced frames or to said bad frame masking unit (160) for unvoiced frames according to the judge result in said voiced/unvoiced frame judging unit. The speech decoder according to claim 1, wherein in repeated use of said spectral data in the past frame in the process of said bad frame masking units for voiced or unvoiced frames, said spectral data is changed based upon a combination of said spectral data of the past frame and robust-to-error part of said spectral data of the error frame. The speech decoder according to claim 1, wherein gains of the obtained excitation based upon said pitch data and said excitation signal in the process of said bad frame masking unit for voiced frame are retrieved such that the power of said excitation signal of the past frame and the power of said excitation signal of the error frame are equal to each other. A speech decoder comprising: a receiving unit (100) for receiving spectral data transmitted for each frame, delay of an adaptive codebook having an excitation signal determined in the past corresponding to pitch data, an index of excitation codebook constituting an excitation signal, gains of the adaptive and excitation codebooks and amplitude of a speech signal, and outputting these input data; an error detection unit (110) for checking whether an error of the frame based upon said input data is produced in perceptually important bits by errors; a data memory (120) for storing the input data after delaying the data by one frame; a speech decoder unit (140) for decoding, when no error is detected by said error detection unit, the speech signal by using the spectral data, delay of the adaptive codebook having an excitation signal determined in the past, index of the excitation codebook comprising the excitation signal, gains of the adaptive and excitation codebooks and amplitude of the speech signal; a voiced/unvoiced frame judging unit (170) for deriving a plurality of feature quantities from the speech signal that has been reproduced in said speech decoder unit in the previous frame and judging whether the current frame is a voiced or unvoiced one; a bad frame masking unit (150) for voiced frames for interpolating, when an error is detected and the current frame is unvoiced, the speech signal by using the data of the previous and current frames and; a bad frame masking unit (160) for unvoiced frames for interpolating, when an error is detected and the current frame is voiced, the speech signal by using data of the previous and current frames; and a switching unit (180) for outputting the input data to either said bad frame masking unit (150) for voiced frames or to said bad frame masking unit (160) for unvoiced frames according to the judge result in said voiced/unvoiced frame judging unit.

Inventors: NOMURA TOSHIYUKI, OZAWA KAZUNORI, NOMURA, TOSHIYUKI, OZAWA, KAZUNORI
Applicants: NIPPON ELECTRIC CO, NEC CORPORATION
Application year: 1993
Main classification: G10L11
IPC codes: G10L11, G10L19