Method and device for speech signal pitch period estimation and classification in digital speech coders

Abstract: A method and a device for speech signal digital coding are provided where at each frame there is carried out a long-term analysis for estimating pitch period d and a long- term prediction coefficient b and gain G, and an a-priori classification of the signal as active/inactive and, for active signal, as voiced/unvoiced. Period estimation circuits (LT1) compute such period on the basis of a suitably weighted covariance function, and a classification circuit (RV) distinguishes voiced signals from unvoiced signals by comparing long-term prediction coefficient and gain with frame-by-frame variable thresholds.

Description: The present invention relates to digital speech coders and more particularly it concerns a method and a device for speech signal pitch period estimation and classification in these coders. Speech coding systems allowing obtaining a high quality of coded speech at low bit rates are more and more of interest in the technique. For this purpose linear prediction coding (LPC) techniques are usually used, which techniques exploit spectral speech characteristics and allow coding only the preceptually important information. Many coding systems based on LPC techniques perform a classification of the speech signal segment under processing for distinguishing whether it is an active or an inactive speech segment and, in the first case, whether it corresponds to a voiced or an unvoiced sound. This allows coding strategies to be adapted to the specific segment characteristics. A variable coding strategy, where transmitted information changes from segment to segment, is particularly suitable for variable rate transmissions, or, in case of fixed rate transmissions, it allows exploiting possible reductions in the quantity of information to be transmitted for improving protection against channel errors. An example of a variable rate coding system in which a recognition of activity and silence periods is carried out and, during the activity periods, the segments corresponding to voiced or unvoiced signals are distinguished and coded in different ways, is described in the paper "Variable Rate Speech Coding with online segmentation and fast algebraic codes" by R. Di Francesco et alii, conference ICASSP '90, 3- 6 April 1990, Albuquerque (USA), paper S4b.5. The invention provides a method for coding a speech signal as defined in claim 1. The inventions further provides a device for speech signal digital coding as defined in claim 9. The characteristics of the present invention will be made clearer by the following description, with reference to the annexed drawings in which: Figure 1 is a basic diagram of a coder with a-priori classification using the invention; Figure 2 is a more detailed diagram of some of the blocks in Figure 1; Figure 3 is a diagram of the voicing detector; and Figure 4 is a diagram of the threshold computation circuit for the detector in Figure 3. Figure 1 shows that a speech coder with a-priori classification can be schematized by a circuit TR which divides the sequence of speech signal digital samples x(n) present on connection 1, into frames made up of a preset number Lf of samples (e.g. 80 - 160, which at conventional sampling rate 8 KHz correspond to 10 - 20 ms of speech). The frames are provided, through a connection 2, to a prediction analysis unit AS which, for each frame, computes a set of parameters which provide information about short-term spectral characteristics (linked to the correlation between adjacent samples, which originates a non-flat spectral envelope) and about long-term spectral characteristics (linked to the correlation between adjacent pitch periods, from which the fine spectral structure of the signal depends). These parameters are provided by AS, through connection 3, to a classification unit CL, which recognizes whether the current frame corresponds to an active or inactive speech period and, in case of active speech, whether it corresponds to a voiced or unvoiced sound. This information is in practice made up of a pair of flags A, V, emitted on a connection 4, which can take up value 1 or 0 (e.g. A=1 active speech, A=0 inactive speech, and V=1 voiced sound, V=0 unvoiced sound). The flags are used to drive coding units CV and are transmitted also to the receiver. Moreover, as it will be seen later, the flag V is also fed back to the predictive analysis unit to refine the results of some operations carried out by it. Coding units CV generate coded speech signal y(n), emitted on a connection 5, starting from the parameters generated by AS and from further parameters, representative of information on excitation for the synthesis filter which simulates speech production apparatus; said further parameters are provided by an excitation source schematized by block GE. In general the different parameters are supplied to CV in the form of groups of indexes j 1 (parameters generated by AS) and j 2 (excitation). The two groups of indexes are present on connections 6, 7. On the basis of flags A, V, units CV choose the most suitable coding strategy, taking into account also the coder application. Depending on the nature of sound, all information provided by AS and GE or only a part of it will be entered in the coded signal; certain indexes will be assigned preset values, etc. For example, in the case of inactive speech, the coded signal will contain a bit configuration which codes silence, e.g. a configuration allowing the receiver to reconstruct the so-called "comfort noise" if the coder is used in a discontinuous transmission system; in case of unvoiced sound the signal will contain only the parameters related to short-term analysis and not those related to long-term analysis, since in this type of sound there are no periodicity characteristics, and so on. The precise structure of units CV is of no interest for the invention. Figure 2 shows in details the structure of blocks AS and CL. Sample frames present on connection 2 are received by a high-pass filter FPA which has the task of eliminating d.c. offset and low frequency noise and generates a filtered signal x f (n) which is supplied to a short-term analysis circuit ST, fully conventional, which comprises the units computing linear prediction coefficients a i (or quantities related to these coefficients) and a short-term prediction filter which generates short-term prediction residual signal r s (n). As usual, circuit ST provides coder CV (Figure 1), through a connection 60, with indexes j(a) obtained by quantizing coefficients a i or other quantities representing the same. Residual signal r s (n) is provided to a low-pass filter FPB, which generates a filtered residual signal r f (n) which is supplied to long-term analysis circuits LT1, LT2 estimating respectively pitch period d and long-term prediction coefficient b and gain G. Low-pass filtering makes these operations easier and more reliable, as a person skilled in the art knows. Pitch period (or long-term analysis delay) d has values ranging between a maximum d H and a minimum d L , e.g. 147 and 20. Circuit LT1 estimates period d on the basis of the covariance function of the filtered residual signal, said function being weighted, according to the invention, by means of a suitable window which will be later discussed. Period d is generally estimated by searching the maximum of the autocorrelation function of the filtered residual r f (n) Such a method for estimating the pitch period d is disclosed in European Patent Application EP-A-532255. This function is assessed on the whole frame for all the values of d. This method is scarcely effective for high values of d because the number of products of (1) goes down as d goes up and, if d H > Lf/2, the two signal segments r f (n+d) and r f (n) may not consider a pitch period and so there is the risk that a pitch pulse may not be considered. This would not happen if the covariance function were used, which is given by relation where the number of products to be carried out is independent from d and the two speech segments r f (n-d) and r f (n) always comprise at least one pitch period (if d H < Lf). Nevertheless, using the covariance function entails a very strong risk that the maximum value found is a multiple of the effective value, with a consequent degradation of coder performances. This risk is much lower when the autocorrelation is used, thanks to the weighting implicit in carrying out a variable number of products. However, this weigthing depends only on the frame length and therefore neither its amount nor its shape can be optimized, so that either the risk remains or even submultiples of the correct value or spurious values below the correct value can be chosen. Taking this into account, according to the invention, covariance R and is weighted by means of a window w and (d) which is independent of the frame length, and the maximum of weighted function R w(d) = w (d)· R (d,0) is searched for the whole interval of values of d. In this way the drawbacks inherent both to the autocorrelation and to the simple covariance are eliminated: hence the estimation of d is reliable in case of great delays and the probability of obtaining a multiple of the correct delay is controlled by a weighting function that does not depend on the frame length and has an arbitrary shape in order to reduce as much as possible this probability. The weigthing function, according to the invention, is: w (d) = d log 2 Kw where 0 < Kw < 1. This function has the property that w (2d)/ w (d) = Kw, that is the relative weighting between any delay d and its double value is a constant lower than 1. Low values of Kw reduce the probability of obtaining values multiple of the effective value; on the other hand too low values can give a maximum which corresponds to a submultiple of the actual value or to a spurious value, and this effect will be even worst. Therefore, value Kw will be a tradeoff between these exigences: e.g. a proper value, used in a practical embodiment of the coder, is 0.7. It should be noted that if delay d H is greater than the frame length, as it can occur when rather short frames are used (e.g. 80 samples), the lower limit of the summation must be Lf-d H , instead of 0, in order to consider at least one pitch period. Delay computed with (3) can be corrected in order to guarantee a delay trend as smooth as possible, with methods similar to those described in the European patent application EP-A-619574, published on 12 October 1994. This correction is based on the search for the local maximum of function Rw(d) also in a given neighbourhood (e.g. ± 15%) of the value obtained at the previous frame: if this local maximum is different from the actual maximum by an amount which is less than a certain limit, the value of d corresponding to the local maximum is used. This correction is carried out if in the previous frame the signal was voiced (flag V at 1) and if also a further flag S was active, which further flag signals a speech period with smooth trend and is generated by a circuit GS which will be described later. To perform this correction a search of the local maximum of (3) is done in a neighbourhood of the value d(-1) related to the previous frame, and a value corresponding to the local maximum is used if the ratio between this local maximum and the main maximum is greater than a certain threshold. The search interval is defined by values d L ' = max [(1-Θ s )d(-1), dL] d H ' = min [(1+Θ s )d(-1), d H ] where Θ s is a threshold whose meaning will be made clearer when describing the generation of flag S. Moreover the search is carried on only if delay d(0) computed for the current frame with (3) is outside the interval d L ' - d H '. Block GS computes the absolute value |Θ| = d m - d m-1 d m - 1 m = Ld + 1 . . . . 0 of relative delay variation between two subsequent frames for a certain number Ld of frames and, at each frame, generates flag S if |Θ| is lower than or equal to threshold Θ s for all Ld frames. The values of Ld and Θ s depend on Lf. Practical embodiments used values Ld = 1 or Ld = 2 respectively for frames of 160 and 80 samples; corresponding values of Θ s were respectively 0.15 and 0.1. LT1 sends to CV (Figure 1), through a connection 61, an index j(d) (in practice d-d L +1) and sends. through connection 31, pitch period value d to classification circuits CL and to circuits LT2 which compute long-term prediction coefficient b and gain G. These parameters are respectively given by the ratios: b = R ( d, 0) R ( d, d) G = 1/ (1 - b R ( d, 0) R ( 0, 0) ) where R and is the covariance function expressed by relation (2). The observations made above for the lower limit of the summation which appears in the expression of R and apply also for relations (7), (8). Gain G gives an indication of long-term predictor efficiency and b is the factor with which the excitation related to past periods must be weighted during coding phase. LT2 also transforms value G given by (8) into the corresponding logarithmic value G(dB) = 10log 10 G, it sends values b and G(dB) to classification unit CL (through connections 32, 33) and sends to CV (Figure 1), through a connection 62, an index j(b) obtained through the quantization of b. Connections 60, 61, 62 in Figure 2 form all together connection 6 in Figure 1. The appendix gives the listing in C language of the operations performed by LT1, GS, LT2. Starting from this listing, the skilled in the art has no problem in designing or programming devices performing the described functions. The classification unit comprises the series of two blocks RA, RV. The first has the task of recognizing whether or not the frame corresponds to an active speech period, and therefore of generating flag A, which is presented on a connection 40. Block RA can be of any of the types known in the art. The choice depends also on the nature of speech coder CV. For example block RA can substantially operate as indicated in the recommendation CEPT-CCH-GSM 06.32, and so it will receive from ST and LT1, through connections 30, 31, information respectively linked to linear prediction coefficients and to pitch period d. As an alternative, block RA can operate as in the already mentioned paper by R. Di Francesco et alii. Block RV, enabled when flag A is at 1, compares values b and G(dB) received from LT2 with respective thresholds b s , Gs and emits on a connection 41 flag V when b and G(dB) are greater than or equal to the thresholds. According to the present invention, thresholds bs, Gs are adaptive thresholds, whose value is a function of values b and G(dB). The use of adaptive thresholds allows the robustness against background noise to be greatly improved. This is of basic importance especially in mobile communication system applications, and it also improves speaker-independence. The adaptive thresholds are computed at each frame in the following way. First of all, actual values of b, G(dB) are scaled by respective factors Kb, KG giving values b' = Kb·b, G'= KG·G(dB). Proper values for the two constants Kb, KG are respectively 0.8 and 0.6. Values b' and G' are then filtered through a low-pass filter in order to generate threshold values b s (0), Gs(0), relevant to current frame, according to relations: b S (0) = (1-α)b' + αb S (-1) Gs(0) = (1-α)G' + αGs(-1) where b s (-1), Gs(-1) are the values relevant to the previous frame and α is a constant lower than 1, but very near to 1. The aim of low-pass filtering, with coefficient a very near to 1, is to obtain a threshold adaptation following the trend of background noise, which is usually relatively stationary also for long periods, and not the trend of speech which is typically nonstationary. For example coefficient value α is chosen in order to correspond to a time constant of some seconds (e.g. 5), and therefore to a time constant equal to some hundreds of frames. Values b s (0), Gs(0) are then clipped so as to be within an interval b s (L) - b s (H) and Gs(L) - Gs(H). Typical values for the thresholds are 0.3 and 0.5 for b and 1 dB and 2 dB for G(dB). Output signal clipping allows too slow returns to be avoided in case of limit situation, e.g. after a tone coding, when input signal values are very high. Threshold values are next to the upper limits or are at the upper limits when there is no background noise and as the noise level rises they tend to the lower limits. Figure 3 shows the structure of voicing detector RV. This detector essentially comprises a pair of comparators CM1, CM2, which. when flag A is at 1, respectively receive from LT2 the values of b and G(dB), compare them with thresholds computed frame by frame and presented on wires 34, 35 by respective thresholds generation circuits CS1, CS2, and emit on outputs 36, 37 signals which indicate that the input value is greater than or equal to the threshold. AND gates AN1, AN2, which have an input connected respectively to connections 32 and 33, and the other input connected to connection 40, schematize enabling of circuits RV only in case of active speech. Flag V can be obtained as output signal of an AND gate AN3, which receives at the two inputs the signals emitted by the two comparators and the output of which is connection 41. Figure 4 shows the structure of circuit CS1 for generating threshold b s ; the structure of CS2 is identical. The circuit comprises a first multiplier M1, which receives coefficient b present on wires 32', scales it by factor Kb, and generates value b'. This is fed to the positive input of a subtracter S1, which receives at the negative input the output signal from a second multiplier M2, which multiplies value b' by constant α. The output signal of S1 is provided to an adder S2, which receives at a second input the output signal of a third multiplier M3, which performs the product between constant a and threshold b s (-1) relevant to the previous frame, obtained by delaying in a delay element D1, by a time equal to the length of a frame, the signal present on circuit output 34. The value present on the output of S2, which is the value given by (9'), is then supplied to clipping circuit CT which, if necessary. clips the value b s (0) so as to keep it within the provided range and emits the clipped value on output 34. It is therefore the clipped value which is used for filterings relevant to next frames. It is clear that what described has been given only by way of non limiting example and that variations and modifications are possible without going out of the scope of the invention as defined in the appended claims.

Claims: A method for speech signal coding, in which the signal to be coded is divided into digital sample frames containing the same number of samples; the samples of each frame are submitted first to a predictive analysis for extracting from the signal parameters representative of short-term and long-term spectral characteristics and comprising at least a long-term analysis delay d, corresponding to a pitch period, and a long-term prediction coefficient b and gain G, and then to a classification for generating a first and a second flag indicating whether the frame corresponds to an active or inactive speech signal segment and, in case of active signal segment, whether the segment corresponds to a voiced or an unvoiced sound, a segment being considered as voiced if the prediction coefficient b and the gain G are both greater than or equal to respective thresholds; and an information on said parameters is provided to coding units; for possible insertion into a coded signal, together with said flags for selecting in said units different coding methods according to the characteristics of speech segment; characterized in that, during said long-term analysis, the delay is estimated by determining the maximum of the covariance function of the residual signal of the short-term analysis; weighted with a weighting function which reduces the probability that the period computed is a multiple of the actual period, inside a window with a length not lower than a maximum value admitted for the delay itself; and in that the thresholds for the prediction coefficient b and the gain G are thresholds which are adapted at each frame, in order to follow the trend of the background noise and not of the speech; the adaptation being enabled only in active speech signal segments. Method according to claim 1, characterized in that said weighting function, for each value admitted for the delay, is a function of the type w and(d) = d log 2 Kw , where d is the delay and Kw is a positive constant lower than 1. Method according to claim 1 or 2, characterized in that said covariance function is computed for an entire frame, if a maximum admissible value for the delay is lower than the frame length, or for a sample window with a length equal to said maximum delay and including the frame, if the maximum delay is greater than frame length. Method according to claim 3, characterized in that a signal indicative of pitch period smoothing is generated at each frame and, during long-term analysis, if the signal in the previous fraIne was voiced and had a pitch period smoothing, there is also carried out a search for a secondary maximum of the weighted covariance function in a neighbourhood of the value found for the previous frame, and the value corresponding to this secondary maximum is used as delay if it differs by a quantity lower than a preset quantity from the covariance function maximum in the current frame. Method according to claim 4, characterized in that for the generation of said signal indicative of pitch period smoothing the relative delay variation between two consecutive frames is computed for a preset number of frames which precede the current frame; the absolute values of these variations are estimated; the absolute values so obtained are compared with a delay threshold, and the indicative signal is generated if the absolute values are all lower than or equal to said delay threshold. Method according to claim 5, characterized in that the width of said neighbourhood is a function of said delay threshold. Method according to any of claims 1 to 6, characterized in that for computation of long-term prediction coefficient and gain thresholds in a frame, the prediction coefficient and gain values are scaled by respective preset factors; the thresholds obtained at the previous frame and the scaled values for both the coefficient and the gain are submitted to low-pass filtering, with a first filtering coefficient, able to originate a very long time constant compared with the frame duration, and respectively with a second filtering coefficient, which is the 1 - complement of the first; and the scaled and filtered values of the prediction coefficient and gain are added to the respective filtered threshold, the value resulting from the addition being the threshold updated value. A method according to claim 7, characterized in that the threshold values resulting from addition are clipped with respect to a maximum and a minimum value, and in that in the successive frame the values so clipped are submitted to low-pass filtering. A device for speech signal digital coding, comprising means (TR) for dividing a sequence of speech signal digital samples into frames made up of a preset number of samples; means for speech signal predictive analysis (AS), comprising circuits (ST) for generating at each frame parameters representative of short-term spectral characteristics and a residual signal of short-term prediction, and circuits (LT1, LT2) which obtain from the residual signal parameters representative of long-term spectral characteristics, comprising a long-term analysis delay or pitch period d, and a long-term prediction coefficient b and a gain G; means for a-priori classification (CL) for recognizing whether a frame corresponds to an active speech period or to a silence period and whether an active speech period corresponds to a voiced or an unvoiced sound. the classification means (CL) comprising circuits (RA, RV) which generate a first and a second flag (A, V) for respectively signalling an active speech period and a voiced sound, and the circuit (RV) generating the second flag (V) comprising means (CM1, CM2) for comparing the prediction coefficient and gain values with respective thresholds and emitting this flag when said values are both greater than the thresholds: a speech coding unit (CV), which generates a coded signal by using at least some of the parameters generated by the predictive analysis means, and is driven by said flags (A, V) in order to insert into the coded signal different information according to the nature of the speech signal in the frame; characterized in that the circuit (LT1) for delay estimation computes this delay by determining the maximum of the covariance function of said residual signal, computed inside a sample window with a length not lower than a maximum admissible value for the delay itself and weighted with a weighting function such as to reduce the probability that the maximum value computed is a multiple of the actual delay; and in that the comparison means (CM1, CM2) in the circuit (RV) generating the second flag (V) carry out the comparison with frame by frame variable thresholds and are associated to means (CS1, CS2) for threshold generation, the comparison and threshold generation means being enabled only in the presence of the first flag (A). A device according to claim 9, characterized in that said weighting function, for each admitted value of the delay, is a function of the type w and(d) = d log 2 Kw , where d is the delay and Kw is a positive constant lower than 1. A device according to claims 9 or 10, characterized in that the long-term analysis delay computing circuit (LT1) is associated to means (GS) for recognizing a frame sequence with delay smoothing, which means generate and provide said circuit (LT1) with a third flag (S) if, in said frame sequence, the absolute value of the relative delay variation between consecutive frames is always lower than or equal to a preset delay threshold. A device according to claim 11, characterized in that the delay computing circuit (LT1) carries out a correction of the delay value computed in a frame if in the previous frame the second and the third flags (V, S) were issued, and provides, as value to be used. the one corresponding to a secondary maximum of the weighted covariance function in a neighbourhood of the delay value computed for the previous frame, if this maximum is greater than a preset fraction of the main maximum. A device according to claims 9 or 10, characterized in that the circuits (CS1, CS2) generating the prediction coefficient and gain thresholds comprise: a first multiplier (M1) for scaling the coefficient or the gain by a respective factor; a low-pass filter (S1, M2, D1, M3) for filtering the threshold computed for the previous frame and the scaled value, respectively according to a first filtering coefficient corresponding to a time constant with a value much greater than the length of a frame and to a second coefficient which is the complement to 1 of the first one; an adder (S2) which provides the current threshold value as the sum of the filtered signals; a clipping circuit (CT), for keeping the threshold value within a preset value interval.

Inventors: CELLARIO LUCA, CELLARIO, LUCA
Applicants: TELECOM ITALIA SPA, TELECOM ITALIA S.P.A.
Application year: 1994
Main classification: G10L9
IPC codes: G10L19, G10L11