EP0801790B1 - Speech coding method using synthesis analysis - Google Patents
Speech coding method using synthesis analysis Download PDFInfo
- Publication number
- EP0801790B1 EP0801790B1 EP96901010A EP96901010A EP0801790B1 EP 0801790 B1 EP0801790 B1 EP 0801790B1 EP 96901010 A EP96901010 A EP 96901010A EP 96901010 A EP96901010 A EP 96901010A EP 0801790 B1 EP0801790 B1 EP 0801790B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- frame
- filter
- term
- sub
- short
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 60
- 238000003786 synthesis reaction Methods 0.000 title claims abstract description 44
- 230000015572 biosynthetic process Effects 0.000 title claims abstract description 43
- 238000000034 method Methods 0.000 title claims description 29
- 230000004044 response Effects 0.000 claims abstract description 42
- 230000005284 excitation Effects 0.000 claims abstract description 41
- 230000001419 dependent effect Effects 0.000 claims abstract description 4
- 238000012546 transfer Methods 0.000 claims description 12
- 238000001228 spectrum Methods 0.000 claims 5
- 239000002131 composite material Substances 0.000 claims 3
- 230000007774 longterm Effects 0.000 description 33
- 239000013598 vector Substances 0.000 description 28
- 230000001934 delay Effects 0.000 description 27
- 238000004364 calculation method Methods 0.000 description 20
- 238000011002 quantification Methods 0.000 description 20
- 239000011159 matrix material Substances 0.000 description 19
- 238000013139 quantization Methods 0.000 description 18
- 238000012360 testing method Methods 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 238000000354 decomposition reaction Methods 0.000 description 8
- 230000003111 delayed effect Effects 0.000 description 8
- 238000005457 optimization Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 230000003044 adaptive effect Effects 0.000 description 6
- 230000003595 spectral effect Effects 0.000 description 5
- 101100176198 Caenorhabditis elegans nst-1 gene Proteins 0.000 description 4
- 230000000717 retained effect Effects 0.000 description 4
- 230000001755 vocal effect Effects 0.000 description 4
- 101100148606 Caenorhabditis elegans pst-1 gene Proteins 0.000 description 3
- 241000135309 Processus Species 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 150000001875 compounds Chemical class 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 239000006185 dispersion Substances 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 230000017105 transposition Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- UWNXGZKSIKQKAH-UHFFFAOYSA-N Cc1cc(CNC(CO)C(O)=O)c(OCc2cccc(c2)C#N)cc1OCc1cccc(c1C)-c1ccc2OCCOc2c1 Chemical compound Cc1cc(CNC(CO)C(O)=O)c(OCc2cccc(c2)C#N)cc1OCc1cccc(c1C)-c1ccc2OCCOc2c1 UWNXGZKSIKQKAH-UHFFFAOYSA-N 0.000 description 1
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 241000897276 Termes Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001575 pathological effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L19/083—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being an excitation gain
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L19/10—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L2019/0001—Codebooks
- G10L2019/0003—Backward prediction of gain
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L2019/0001—Codebooks
- G10L2019/0011—Long term prediction filters, i.e. pitch estimation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L2019/0001—Codebooks
- G10L2019/0012—Smoothing of parameters of the decoder interpolation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/03—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
- G10L25/24—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being the cepstrum
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/93—Discriminating between voiced and unvoiced parts of speech signals
Definitions
- the present invention relates to speech coding using synthetic analysis.
- a linear prediction of the speech signal is carried out to obtain the coefficients of a short-term synthesis filter modeling the transfer function of the vocal tract. These coefficients are transmitted to the decoder, as well as parameters characterizing an excitation to be applied to the short-term synthesis filter.
- further research is carried out on the longer-term correlations of the speech signal in order to characterize a long-term synthesis filter accounting for the pitch of the speech.
- the excitation indeed has a predictable component which can be represented by the past excitation, delayed by TP samples of the speech signal and affected by a gain g P.
- the remaining, unpredictable part of the excitation is called stochastic excitation.
- CELP Code Excited Linear Prediction
- MPLPC Multi-Pulse Linear Prediction Coding
- the stochastic excitation comprises a certain number of pulses whose positions are sought by the coder.
- CELP coders are preferred for low transmission rates, but they are more complex to implement than MPLPC coders.
- the excitement (predictable and stochastic) is typically determined once per 5ms subframe, while the parameters spectral are once per 20 ms frame.
- the complexity and the frequency of the closed-loop search for excitement make it the most critical step in how quickly calculations required in a speech coder.
- a main object of the invention is to propose a speech coding method of reduced complexity with respect to concerns the closed-loop analysis (s).
- the invention thus provides an analysis coding method by synthesizing a speech signal digitized in frames successive subdivided into subframes with a number determined of samples, in which one performs for each frame a linear prediction analysis of the speech signal to determine the coefficients of a synthesis filter at short term, and an open loop analysis to determine a degree of voicing of the frame, and we perform for each subframe at least one closed loop analysis to determine an excitation sequence which, subject to the short-term synthesis, produces a representative synthetic signal of the speech signal.
- Each closed loop analysis uses the impulse response of a filter composed of the filter short-term summary and a weighting filter perceptual. During each closed loop analysis, we uses said impulse response by truncating it to a truncation length at most equal to the number of samples by subframe and dependent on energy distribution of said response and the degree of voicing of the frame.
- the length of truncation will be as much larger than the frame is seen. We can thus reduce significantly the complexity of closed loop analyzes without lose in quality of coding, thanks to an adaptation to signal voicing characteristics.
- a speech coder implementing the invention is applicable in various types of speech transmission and / or storage systems using a digital compression technique.
- the speech coder 16 is part of a mobile radio station.
- the speech signal S is a digital signal sampled at a frequency typically equal to 8 kHz.
- the signal S comes from an analog-digital converter 18 receiving the amplified and filtered output signal from a microphone 20.
- the converter 18 puts the speech signal S in the form of successive frames themselves subdivided into nst sub-frames of 1st samples.
- the speech signal S can also be subjected to conventional shaping treatments such as Hamming filtering.
- the speech coder 16 delivers a binary sequence with a significantly lower bit rate than that of the speech signal S, and addresses this sequence to a channel coder 22 whose function is to introduce redundancy bits into the signal in order to allow detection and / or a correction of any transmission errors.
- the output signal from the channel encoder 22 is then modulated on a carrier frequency by the modulator 24, and the modulated signal is transmitted on the air interface.
- the speech coder 16 is a synthesis analysis coder.
- the coder 16 determines on the one hand parameters characterizing a short-term synthesis filter modeling the speaker's vocal tract, and on the other hand an excitation sequence which, applied to the short-term synthesis filter, provides a synthetic signal constituting an estimate of the speech signal S according to a perceptual weighting criterion.
- the short-term synthesis filter has a function transfer form 1 / A (z), with:
- the coefficients a i are determined by a module 26 for short-term linear prediction analysis of the speech signal S.
- the a i are the linear prediction coefficients of the speech signal S.
- the order q of the linear prediction is typically of the order of 10.
- the methods applicable by module 26 for short-term linear prediction are well known in the field of speech coding.
- Module 26, for example, implements the Durbin-Levinson algorithm (see J. Makhoul: "Linear Prediction: A tutorial review", Proc. IEEE, Vol.63, N ° 4, April 1975, p. 561-580 ).
- the coefficients a i obtained are supplied to a module 28 which converts them into spectral line parameters (LSP).
- the representation of the prediction coefficients a i by LSP parameters is frequently used in speech coders with analysis by synthesis.
- LST t (nst-1) LSP t for sub -frames 0,1,2, ..., nst-1 of the frame t.
- the coefficients a i of the filter 1 / A (z) are then determined, sub-frame by sub-frame from the interpolated LSP parameters.
- the non-quantified LSP parameters are supplied by the module 28 to a module 32 for calculating the coefficients of a perceptual weighting filter 34.
- the coefficients of the perceptual weighting filter are calculated by the module 32 for each subframe after interpolation of the LSP parameters received from the module 28.
- the perceptual weighting filter 34 receives the speech signal S and delivers a perceptually weighted SW signal which is analyzed by modules 36, 38, 40 for determine the excitation sequence.
- the excitation sequence of the short-term filter consists of an excitation predictable by a long-term synthetic filter modeling the pitch of the speech, and an excitement unpredictable stochastic, or innovation sequence.
- Module 36 performs long-term prediction (LTP) in open loop, i.e. it does not contribute directly to the minimization of the weighted error.
- LTP long-term prediction
- the weighting filter 34 intervenes in upstream of the open loop analysis module, but it could otherwise: module 36 could operate directly on the speech signal S or on the signal S cleared of its short-term correlations by a filter transfer function A (z).
- modules 38 and 40 operate in a closed loop, i.e. they directly contribute to minimizing the error perceptually weighted.
- Long-term prediction lag is determined in two steps.
- the analysis module 36 Open loop LTP detects voiced frames from the speech signal and determines, for each voiced frame, a degree of voicing MV and a delay search interval long-term prediction.
- the search interval is defined by a central value represented by its quantification index ZP and by a width in the field of quantification indexes, depending on the degree of voicing MV.
- the module 30 operates the quantization of the LSP parameters which have previously been determined for this frame.
- This quantization is for example vectorial, that is to say it consists in selecting, from one or more predetermined quantization tables, a set of quantized parameters LSP Q which has a minimum distance from the set of parameters LSP provided by the module 28.
- the quantification tables differ according to the degree of voicing MV provided to the quantization module 30 by the open-loop analyzer 36.
- a set of quantization tables for a degree of voicing MV is determined, during prior tests, so as to be statistically representative of frames having this degree MV. These sets are stored both in the coders and in the decoders implementing the invention.
- the module 30 delivers the set of quantized parameters LSP Q as well as its index Q in the applicable quantification tables.
- the speech coder 16 further comprises a module 42 for calculating the impulse response of the compound filter short-term summary filter and weighting filter perceptual.
- This compound filter has the function of transfer W (z) / A (z).
- module 42 takes for the weighting filter perceptual W (z) that corresponding to the LSP parameters interpolated but not quantified, i.e. the one whose coefficients were calculated by module 32, and for the synthesis filter 1 / A (z) the one corresponding to the parameters Quantified and interpolated LSP, i.e. the one that will actually reconstructed by the decoder.
- the TP delay index is ZP + DP.
- closed-loop LTP analysis consists in determining, in the search interval for long-term prediction delays T, the delay TP which maximizes, for each sub-frame of a voiced frame, the normalized correlation : where x (i) denotes the weighted speech signal SW of the subframe from which the memory of the weighted synthesis filter has been subtracted (i.e. the response to a zero signal, due to its initial states, of the filter whose impulse response has been calculated by module 42), and y T (i) denotes the convolution product: u (jT) designating the predictable component of the delayed excitation sequence of T samples, estimated by the well-known technique of the adaptive codebook.
- the missing values of u (jT) can be extrapolated from the previous values.
- Fractional delays are taken into account by oversampling the signal u (jT) in the adaptive repertoire.
- An oversampling of a factor m is obtained by means of polyphase interpolating filters.
- the gain g P of long-term prediction could be determined by the module 38 for each sub-frame, by applying the known formula: However, in a preferred version of the invention, the gain g P is calculated by the stochastic analysis module 40.
- the stochastic excitation determined for each subframe by the module 40 is of the multi-pulse type.
- the positions and gains calculated by the analysis module 40 stochastics are quantified by a module 44.
- a module 48 is thus provided in the encoder which receives the different parameters and which adds to some of them redundancy bits to detect and / or correct any transmission errors.
- redundancy bits are added to this parameter by module 48.
- bit rate per 20 ms frame is for example that indicated in table I.
- the channel coder 22 is that used in the pan-European system of radiocommunication with mobiles (GSM).
- GSM pan-European system of radiocommunication with mobiles
- This channel coder described in detail in Recommendation GSM 05.03, was developed for a 13 kbit / s speech coder of RPE-LTP type which also produces 260 bits per 20 ms frame. The sensitivity of each of the 260 bits was determined from listening tests.
- the bits from the source encoder have been grouped into three categories. The first of these categories IA groups 50 bits which are coded convolutionally on the basis of a generator polynomial giving a half redundancy with a constraint length equal to 5. Three parity bits are calculated and added to the 50 bits of the category IA before convolutional coding.
- the second category (IB) has 132 bits which are protected at a rate of a half by the same polynomial as the previous category.
- the third category (II) contains 78 unprotected bits. After application of the convolutional code, the bits (456 per frame) are subjected to interleaving.
- a mobile radio station capable of receiving the speech signal processed by the source encoder 16 is shown schematically in Figure 2.
- the radio signal received is first processed by a demodulator 50 then by a channel 52 decoder which performs dual operations of those of modulator 24 and channel encoder 22.
- the decoder channel 52 provides the speech decoder 54 with a binary sequence which, in the absence of transmission errors or when any errors have been corrected by the decoder channel 52, corresponds to the binary sequence delivered by the scheduling module 46 at the coder 16.
- the decoder 54 includes a module 56 which receives this binary sequence and which identifies the parameters relating to the different frames and subframes.
- the module 56 also performs some checks on the parameters received. In particular, module 56 examines the redundancy bits introduced by the encoder module 48, to detect and / or correct the errors affecting the parameters associated with these bits of redundancy.
- a module 58 of the decoder receives the degree of voicing MV and the index of Q for quantizing the LSP parameters.
- the module 58 finds the quantized LSP parameters in the tables corresponding to the value of MV, and, after interpolation, converts them into coefficients a i for the short-term synthesis filter 60.
- a pulse generator 62 receives the positions p (n) of the np pulses of the stochastic excitation.
- the generator 62 delivers pulses of unit amplitude which are each multiplied by 64 by the associated gain g (n).
- the output of amplifier 64 is addressed to the long-term synthesis filter 66.
- This filter 66 has an adaptive directory structure.
- the output samples u of the filter 66 are stored in the adaptive directory 68 so as to be available for the subsequent subframes.
- the delay TP relative to a sub-frame, calculated from the quantization indices ZP and DP, is supplied to the adaptive repertoire 68 to produce the signal u suitably delayed.
- the amplifier 70 multiplies the signal thus delayed by the gain g P of long-term prediction.
- the long-term filter 66 finally comprises an adder 72 which adds the outputs of amplifiers 64 and 70 to provide the excitation sequence u.
- the excitation sequence is addressed to the short-term synthesis filter 60, and the resulting signal can also, in known manner, be subjected to a post-filter 74 whose coefficients depend on the synthesis parameters received, to form the signal of synthetic speech S '.
- the output signal S 'of the decoder 54 is then converted into analog by the converter 76 before being amplified to control a loudspeaker 78.
- the module 36 also determines, for each sub-frame st, the entire delay K st which maximizes the open-loop estimation P st (k) of the long-term prediction gain on the sub-frame st, excluding the delays k for which the autocorrelation c st (k) is negative or smaller than a small fraction E of the energy R0 st of the subframe.
- step 94 the degree of voicing MV of the current frame is taken equal to 0 in step 94, which in this case ends the operations performed by the module 36 on this frame. If on the contrary the threshold S0 is exceeded in step 92, the current frame is detected as voiced and the degree MV will be equal to 1, 2 or 3. The module 36 then calculates, for each subframe st , a list I st containing candidate delays to constitute the ZP center of the search interval for long-term prediction delays.
- the module 36 determines the basic delay rbf in full resolution for the rest of the processing. This basic delay could be taken equal to the integer K st obtained in step 90. The fact of finding the basic delay in fractional resolution around K st however makes it possible to gain in precision.
- Step 100 thus consists in finding, around the integer delay K st obtained in step 90, the fractional delay which maximizes the expression C st 2 / G st.
- This search can be carried out at the maximum resolution of the fractional delays (1/6 in the example described here) even if the entire delay K st is not in the domain where this maximum resolution applies.
- the autocorrelations C st (T) and the delayed energies G st (T) are obtained by interpolation from the values stored in step 90 for the whole delays.
- the basic delay relating to a sub-frame could also be determined in fractional resolution from step 90 and taken into account in the first estimation of the overall prediction gain on the frame.
- step 102 the address j in the list I st and the index m of the submultiple are initialized to 0 and 1, respectively.
- a comparison 104 is made between the submultiple rbf / m and the minimum delay rmin. The submultiple rbf / m is to be examined if it is greater than rmin.
- step 110 If P st (r i) ⁇ SE st , the delay r i is not taken into account, and we go directly to step 110 of incrementing the index m before performing the comparison 104 again the next submultiple. If test 108 shows that P st (r i ) ⁇ SE st , the delay r i is retained and step 112 is executed before incrementing the index m in step 110. In step 112, we stores the index at address j in the list I St , we give the value m to the integer m0 intended to be equal to the index of the smallest submultiple retained, then we increment by one the unit address j.
- the examination of the sub-multiples of the basic delay is finished when the comparison 104 shows rbf / m ⁇ rmin.
- We then examine the multiple delays of the smallest rbf / m0 of the submultiples previously selected according to the process illustrated in FIG. 5. This examination begins with an initialization 114 of the index n of the multiple: n 2.
- a comparison 116 is made between the multiple n.rbf / m0 and the maximum delay rmax. If n.rbf / m0> rmax, test 118 is carried out to determine whether the index m0 of the smallest sub-multiple is an integer multiple of n.
- step 120 the delay n.rbf / m0 has already been examined when examining the sub-multiples of rbf, and we go directly to step 120 of incrementing the index n before carrying out again comparison 116 for the next multiple. If test 118 shows that m0 is not an integer multiple of n, the multiple n.rbf / m0 is to be examined. We then take for the integer i the value of the index of the quantized delay r i closest to n.rbf / m0 (step 122), then we compare, at 124, the estimated value of the prediction gain P st ( r i ) at the selection threshold SE st .
- step 120 If P st (r i ) ⁇ SE st , the delay r i is not taken into account, and we go directly to step 120 of incrementing the index n. If test 124 shows that p st (r i ) ⁇ SE st , the delay r i is retained and step 126 is executed before incrementing the index n in step 120. In step 126, we stores the index i at address j in the list I st , then the address j is incremented by one.
- the list I st contains j candidate delay index. If we wish to limit the maximum length of the list I st to jmax for the following steps, we can take the length j st of this list equal to min (j, jmax) (step 128) and then, in step 130, order the list I st in the order of gains C st 2 (r Ist (j) ) / G st 2 (r Ist (j) ) decreasing for 0 ⁇ j ⁇ j st so as to keep only the j st delays providing the largest gain values.
- the value of jmax is chosen according to the compromise sought between the efficiency of the search for LTP delays and the complexity of this search. Typical values of jmax range from 3 to 5.
- the analysis module 36 calculates a quantity Ymax determining a second open-loop estimate of the prediction gain at long term over the entire frame, as well as indexes ZP, ZP0 and ZP1 in a phase 132, the progress of which is detailed in FIG. 6.
- This phase 132 consists in testing search intervals of length N1 to determine which one maximizes a second estimate of the overall prediction gain on the frame. The intervals tested are those whose centers are the candidate delays contained in the list I st calculated during phase 101.
- Phase 132 begins with a step 136 where the address j in the list I st is initialized to 0.
- step 138 it is checked whether the index I st (j) has already been encountered by testing a previous interval centered on I st , (j') with st ' ⁇ st and 0 ⁇ j' ⁇ j st ' , in order d '' Avoid testing the same interval twice. If test 138 reveals that I st (j) already appeared in a list I st ' with st' ⁇ st, we directly increment the address j in step 140, then we compare it to the length j st of the list I st . If the comparison 142 shows that j ⁇ j st , we return to step 138 for the new value of the address j.
- the quantity Y determining the second estimate of the overall prediction gain for the interval centered on I st (j) is calculated according to: then compared to Ymax, where Ymax represents the value to be maximized.
- This value Ymax is for example initialized to 0 at the same time as the index st in step 96. If Y ⁇ Ymax, we go directly to step 140 for incrementing the index j. If the comparison 150 shows that Y> Ymax, step 152 is executed before incrementing the address j in step 140. At this step 152, the index ZP is taken equal to I st (j) and the indices ZP0 and ZP1 are respectively taken equal to the smallest and the largest of the indices i st ' determined in step 148.
- the index st is incremented by one (step 154) then compared, in step 156, to the number nst of subframes per frame. If st ⁇ nst, we return to step 98 to perform the operations relating to the following sub-frame.
- the index ZP denotes the center of the search interval that will be provided to the module 38 closed loop LTP analysis
- ZP0 and ZP1 are index whose difference is representative of the dispersion of optimal delays per subframe in the interval centered on ZP.
- Gp 20.log 10 (RO / RO-Ymax).
- Two other thresholds S1 and S2 are used. If Gp ⁇ S1, the degree of voicing MV is taken equal to 1 for the current frame.
- Gp> S2 the dispersion of the optimal delays for the different sub-frames of the current frame is examined. If ZP1-ZP ⁇ N3 / 2 and ZP-ZP0 ⁇ N3 / 2, an interval of length N3 centered on ZP is sufficient to take into account all the optimal delays and the degree of voicing is taken equal to 3 (if Gp> S2) . Otherwise, if ZP1-ZP ⁇ N3 / 2 or ZP-ZPO> N3 / 2, the degree of voicing is taken equal to 2 (if Gp> S2).
- ZP + DP index of TP delay ultimately determined may therefore in some cases be more small than 0 or larger than 255.
- This allows analysis LTP in closed loop to also carry on some delays TP smaller than rmin or larger than rmax.
- Reducing the delay search interval for very closely spaced frames reduces the complexity of the closed loop LTP analysis performed by the module 38 by reducing the number of convolutions y T (i) to be calculated according to formula (1).
- Another possibility is to provide a parity bit for the delay TP and / or the gain g P , making it possible to detect possible errors affecting these parameters.
- the first optimizations carried out in step 90 relative to the different sub-frames are replaced by a single optimization relating to the entire frame.
- the autocorrelations C (k) and the delayed energies G (k) for the entire frame are also calculated:
- nz basic delays K 1 ', ..., K nz ' in full resolution.
- the voiced / unvoiced decision (step 92) is taken on the basis of that of the basic delays K i 'which provides the greatest value for the first open-loop estimate of the long-term prediction gain.
- the basic delays in fractional resolution are determined by the same process as in step 100, but only allowing the quantized delay values. Examination 101 of the sub-multiples and multiples is not performed. For the phase 132 of calculating the second estimate of the prediction gain, the nz basic delays previously determined are taken as candidate delays. This second variant makes it possible to dispense with the systematic examination of the submultiples and of the multiples which are generally taken into account by virtue of the subdivision of the domain of possible delays.
- phase 132 is modified in that, in the optimization steps 148, the index i st , which maximizes C st ' 2 (r i ) / G st ' (r i ) for I st (j) -N1 / 2 ⁇ i ⁇ I st (j) + N1 / 2 and 0 ⁇ i ⁇ N, and on the other hand, during the same maximization loop, the index k st , which maximizes this same quantity over a reduced interval I st (j) -N3 / 2 ⁇ i ⁇ I st (j) + N3 / 2 and 0 ⁇ 1 ⁇ N.
- Step 152 is also modified: the indexes ZP0 and ZP1 are no longer stored, but a quantity Ymax 'defined in the same way as Ymax but with reference to the reduced length interval:
- Gp' 20.log 10 [R0 / (R0-Ymax ')].
- the sub-frames for which the prediction gain is negative or negligible can be identified by consulting the nst pointers. If necessary, the module 38 is deactivated for the corresponding sub-frames. This does not affect the quality of the LTP analysis since the prediction gain corresponding to these subframes will be almost zero anyway.
- Another aspect of the invention relates to the module 42 for calculating the impulse response of the weighted synthesis filter.
- the closed loop LTP analysis module 38 needs this impulse response h over the duration of a subframe to calculate the convolutions y T (i) according to formula (1).
- the stochastic analysis module 40 also needs it to calculate convolutions as will be seen below.
- the operations performed by the module 42 are for example in accordance with the flowchart of FIG. 7.
- the truncated energies of the impulse response are also calculated:
- the coefficients a k are those involved in the perceptual weighting filter, i.e. the linear prediction coefficients interpolated but not quantified
- the coefficients a k are those applied to the synthesis filter, i.e. the quantized and interpolated linear prediction coefficients.
- the module 42 determines the shortest length L ⁇ such that the energy Eh (L ⁇ -1) of the impulse response truncated at L ⁇ samples is at least equal to a proportion ⁇ of its total energy Eh (pst-1) estimated over pst samples.
- a typical value of ⁇ is 98%.
- the number L ⁇ is initialized to pst in step 162 and decremented by unit as 166 as Eh (L ⁇ -2)> ⁇ .Eh (pst-1) (test 164).
- the length L ⁇ sought is obtained when test 164 shows that Eh (L ⁇ -2) ⁇ .Eh (pst-1).
- a term corrector ⁇ (MV) is added to the value of L ⁇ which has been obtained (step 168).
- This corrector term is preferably an increasing function of the degree of voicing.
- ⁇ (0) - 5
- ⁇ (3) + 7.
- the truncation length Lh of the impulse response is taken equal to L ⁇ if L ⁇ nst and to nst otherwise.
- a third aspect of the invention relates to the module 40 of stochastic analysis used to model the unpredictable part of the excitement.
- the stochastic excitation considered here is of the multi-pulse type.
- the stochastic excitation relating to a subframe is represented by np pulses of positions p (n) and of amplitudes, or gains, g (n) (1 ⁇ n ⁇ np).
- the gain g P of long-term prediction can also be calculated during the same process.
- the excitation sequence relating to a sub-frame comprises nc contributions associated respectively with nc gains.
- the contributions are lst sample vectors which, weighted by the associated and summed gains correspond to the excitation sequence of the short-term synthesis filter.
- np vectors comprising only 0 except an impulse of amplitude 1.
- the vectors F p (n) are simply constituted by the vector of the impulse response h shifted by p (n) samples. Truncating the impulse response as described above therefore makes it possible to significantly reduce the number of operations useful for calculating the scalar products involving these vectors F p (n) .
- the gains g nc-1 (i) are the selected gains and the minimized quadratic error E is equal to the energy of the target vector e nc-1 .
- the decomposition of Cholesky and the inversion of the matrix M n however require to carry out divisions and calculations of square roots which are operations demanding in terms of computation complexity.
- Different constraints can be brought to the domain of maximization of the quantity above included in the interval [0, lst [.
- the maximization is carried out in step 182 on the set of possible positions excluding the segments in which the positions p (1), ..., p (n have been found respectively) -1) pulses during previous iterations.
- the module 40 proceeds to the calculation 184 of the line n of the matrices L, R and K involved in the decomposition of the matrix B, which makes it possible to complete the matrices L n , R n and K n defined above.
- the column index j is first initialized at 0, in step 186.
- the variable tmp is first initialized at the value of component B (n, j), that is:
- step 188 the integer k is also initialized to 0.
- a comparison 190 is then made between the integers k and j. If k ⁇ j, we add the term L (n, k). R (j, k) to the variable tmp, then we increment the whole k by one unit (step 192) before re-performing the comparison 190.
- step 196 If j ⁇ n, the component R (n, j) is taken equal to tmp and the component L (n, j) to tmp.K (j) in step 196, then the column index j is incremented d 'a unit before returning to step 188 to calculate the following components.
- K (n) is taken equal to 1 / tmp if tmp ⁇ 0 (step 198) and to 0 otherwise.
- the calculation 184 requires at most one division 198, to obtain K (n).
- any singularity of the matrix B n does not cause instabilities since we avoid divisions by 0.
- the inversion 200 then begins with an initialization 202 of the column index j 'at n-1.
- the term Linv (j ') is initialized to -L (n, j') and the integer k 'to j' + 1.
- a comparison 206 is then carried out between the integers k ′ and n.
- the inversion 200 is followed by the calculation 214 of the reoptimized gains and of the target vector E for the following iteration.
- the computation of the reoptimized gains is also very simplified by the decomposition retained for the matrix B.
- One can indeed compute the vector g n (g n (0), ..., g n (n)) solution of g n .
- B n b n according to: and
- g n (i ') g n-1 (i') + L -1 (n, i ').
- the calculation 214 is detailed in FIG. 11.
- b (n) serves as the initialization value for the variable tmq.
- index i is also initialized to 0.
- the comparison 218 is then carried out between the integers i and n. If i ⁇ n, we add the term b (i). Linv (i) to the variable tmq and we increment i by one unit (step 220) before returning to the comparison 218.
- Step 226 also includes the incrementation of the index i 'before returning to the comparison 224.
- Segmental pulse search significantly decreases the number of pulse positions to be evaluated during steps 182 of the search for stochastic excitation. It also allows efficient quantification of the positions found.
- ns> np also has the advantage that good robustness to transmission errors can be obtained with regard to the positions of the pulses, by virtue of a separate quantification of the sequence numbers of the occupied segments and of the relative positions pulses in each occupied segment.
- the possible binary words are stored in a quantification table in which the reading addresses are the quantization indexes received.
- the order in this table, determined once for all, can be optimized so that an error of transmission affecting a bit of the index (the error case the more frequent, especially when interlacing is used work in the channel encoder 22) has, on average, minimal consequences according to a neighborhood criterion.
- the neighborhood criterion is for example that a word of ns bits does not can be replaced only by words "neighbors", distant a Hamming distance at most equal to an np-2 ⁇ threshold, so as to keep all the pulses except ⁇ of them at valid positions in case of transmission error the single-bit index.
- Other criteria would be usable in substitution or in addition, for example that two words are considered neighbors if the replacement of one by the other does not change the order of assignment of gains associated with pulses.
- the order in the table word quantification can be determined from arithmetic considerations or, if this is insufficient, in simulating error scenarios on a computer (so exhaustive or by statistical sampling of the type Monte-Carlo according to the number of possible error cases).
- the scheduling module 46 can thus put in the minimum protection category, or in the unprotected category, a certain number nx of the bits of the index which, if affected by a transmission error, give rise to a wrong word but checking the neighborhood criterion with a probability deemed satisfactory, and putting the other bits of the index in a more protected category. This procedure calls for a different ordering of the words in the quantification table.
- This scheduling can also be optimized by means of simulations if it is desired to maximize the number nx of the bits of the index assigned to the least protected category.
- quantification index word of occupation of the segments decimal natural binary natural binary decimal 0 000 0011 3 1 001 0101 5 2 010 1001 9 3 011 1100 12 4 100 1010 10 5 101 0110 6 (6) (110) (1001 or 1010) (9 or 10) (7) (111) (1100 or 0110) (12 or 6)
- One possibility is to start by constituting a list of words of ns bits by counting in Gray code from 0 to 2nS-1, and to obtain the ordered quantification table by deleting from this list the words not having a weight of Hamming of NP.
- the table thus obtained is such that two consecutive words have a Hamming distance of np-2. If the indexes in this table have a binary representation in Gray code, any error on the least significant bit causes the index to vary by ⁇ 1 and therefore causes the replacement of the actual occupancy word by a neighboring word in the sense of the np-2 threshold on the Hamming distance, and an error on the i-th least significant bit also varies the index by ⁇ 1 with a probability of approximately 2 1-i .
- nx By placing the nx least significant bits of the index in Gray code in an unprotected category, a possible transmission error affecting one of these bits leads to the replacement of the busy word by a neighboring word with a probability at least equal. to (1 + 1/2 + ... + 1/2 nx-1 ) / nx. This minimum probability decreases from 1 to (2 / nb) (1-1 / 2 nb ) for nx increasing from 1 to nb.
- the errors affecting the nb-nx most significant bits of the index will most often be corrected thanks to the protection applied to them by the channel coder.
- the value of nx is in this case chosen according to a compromise between robustness to errors (small values) and a reduced size of the protected categories (large values).
- the possible binary words for represent the occupation of the segments are arranged in order growing in a search table.
- An indexing table associates with each address the serial number, in the table of quantization stored at the decoder, of the binary word having this address in the lookup table.
- the content of the table search and index table is given in the table III (in decimal values).
- the quantification of the occupation word of the segments deduced from the np positions provided by the stochastic analysis module 40 is carried out in two stages by the quantization module 44.
- a dichotomous search is first carried out in the search table to determine the address in this table of the word to be quantified.
- the quantization index is then obtained at the address determined in the indexing table and then supplied to the bit scheduling module 46.
- Address Search table Indexing table 0 3 0 1 5 1 2 6 5 3 9 2 4 10 4 5 12 3
- the module 44 also performs the quantification of the gains calculated by the module 40.
- the quantization bits of Gs are placed in a category protected by the channel 22 encoder, as well as most significant bits of the gain quantification indexes relative.
- the relative gain quantization bits are ordered to allow assignment to impulses associated belonging to the segments localized by the word of occupation. Segmental research according to the invention also allows effective protection of positions relative pulses associated with the largest values gain.
- the decoder 54 To reconstruct impulse contributions of excitation, the decoder 54 first locates the segments by means of the occupation word received; he then assigns the associated earnings; then he assigns the positions relative to pulses based on the order of importance of the gains.
- the 13 kbit / s speech coder requires order 15 million comma instructions per second (Mips) fixed. So we typically do this by programming a commercial digital signal processor (DSP) as well as the decoder which requires only about 5 Mips.
- DSP digital signal processor
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Measurement Of Mechanical Vibrations Or Ultrasonic Waves (AREA)
- Investigating Or Analysing Materials By The Use Of Chemical Reactions (AREA)
Abstract
Description
La présente invention concerne le codage de la parole utilisant l'analyse par synthèse.The present invention relates to speech coding using synthetic analysis.
La demanderesse a notamment décrit de tels codeurs de parole qu'elle a développés dans ses demandes de brevet européen 0 195 487, 0 347 307 et 0 469 997.The Applicant has in particular described such coders of speech that she developed in her patent applications European 0 195 487, 0 347 307 and 0 469 997.
Dans un codeur de parole à analyse par synthèse, on
effectue une prédiction linéaire du signal de parole pour
obtenir les coefficients d'un filtre de synthèse à court terme
modélisant la fonction de transfert du conduit vocal. Ces
coefficients sont transmis au décodeur, ainsi que des paramètres
caractérisant une excitation à appliquer au filtre de
synthèse à court terme. Dans la plupart des codeurs actuels,
on recherche en outre les corrélations à plus long terme du
signal de parole pour caractériser un filtre de synthèse à
long terme rendant compte de la hauteur tonale de la parole.
Lorsque le signal est voisé, l'excitation comporte en effet
une composante prédictible pouvant être représentée par
l'excitation passée, retardée de TP échantillons du signal
de parole et affectée d'un gain gP. Le filtre de synthèse à
long terme, également reconstitué au décodeur, a alors une
fonction de transfert de la forme 1/B(z) avec B(z)=1-gP.z-TP.
La partie restante, non prédictible, de l'excitation est
appelée excitation stochastique. Dans les codeurs dits CELP
("Code Excited Linear Prediction"), l'excitation stochastique
est constituée par un vecteur recherché dans un dictionnaire
prédéterminé. Dans les codeurs dits MPLPC ("Multi-Pulse
Linear Prediction Coding"), l'excitation stochastique
comporte un certain nombre d'impulsions dont les positions
sont recherchées par le codeur. En général, les codeurs CELP
sont préférés pour les bas débits de transmission, mais ils
sont plus complexes à mettre en oeuvre que les codeurs MPLPC.In a speech coder with synthesis analysis, a linear prediction of the speech signal is carried out to obtain the coefficients of a short-term synthesis filter modeling the transfer function of the vocal tract. These coefficients are transmitted to the decoder, as well as parameters characterizing an excitation to be applied to the short-term synthesis filter. In most of the current coders, further research is carried out on the longer-term correlations of the speech signal in order to characterize a long-term synthesis filter accounting for the pitch of the speech. When the signal is voiced, the excitation indeed has a predictable component which can be represented by the past excitation, delayed by TP samples of the speech signal and affected by a gain g P. The long-term synthesis filter, also reconstituted at the decoder, then has a transfer function of the
Pour déterminer le retard de prédiction à long terme, on utilise fréquemment une analyse en boucle fermée contribuant directement à minimiser l'écart pondéré perceptuellement entre le signal de parole et le signal synthétique. L'inconvénient de cette analyse en boucle fermée est qu'elle est exigeante en volume de calculs, car la sélection d'un retard implique l'évaluation d'un certain nombre de retards candidats et chaque évaluation d'un retard nécessite des calculs de produits de convolution entre l'excitation retardée et la réponse impulsionnelle du filtre de synthèse pondéré perceptuellement. L'inconvénient ci-dessus existe aussi pour la recherche de l'excitation stochastique, qui est également un processus en boucle fermée où interviennent des produits de convolution avec cette réponse impulsionnelle. L'excitation varie plus rapidement que les paramètres spectraux caractéristiques du filtre de synthèse à court terme. L'excitation (prédictible et stochastique) est typiquement déterminée une fois par sous-trame de 5ms, tandis que les paramètres spectraux le sont une fois par trame de 20 ms. La complexité et la fréquence de la recherche en boucle fermée de l'excitation en font l'étape la plus critique quant à la rapidité des calculs nécessaires dans un codeur de parole.To determine the long-term prediction lag, we frequently use a closed loop analysis contributing directly to minimize the perceptually weighted deviation between the speech signal and the synthetic signal. The downside of this closed loop analysis is that it is demanding in terms of volume of calculations, because the selection of a delay implies the evaluation of a certain number of delays candidates and each delay assessment requires calculations of convolutional products between delayed excitation and the impulse response of the weighted synthesis filter perceptually. The above disadvantage also exists for looking for stochastic excitement, which is also a closed loop process involving products of convolution with this impulse response. The excitement varies faster than spectral parameters characteristics of the short-term synthesis filter. The excitement (predictable and stochastic) is typically determined once per 5ms subframe, while the parameters spectral are once per 20 ms frame. The complexity and the frequency of the closed-loop search for excitement make it the most critical step in how quickly calculations required in a speech coder.
Un but principal de l'invention est de proposer un procédé de codage de parole de complexité réduite en ce qui concerne la ou les analyses en boucle fermée.A main object of the invention is to propose a speech coding method of reduced complexity with respect to concerns the closed-loop analysis (s).
L'invention propose ainsi un procédé de codage à analyse par synthèse d'un signal de parole numérisé en trames successives subdivisées en sous-trames comportant un nombre déterminé d'échantillons, dans lequel on effectue pour chaque trame une analyse par prédiction linéaire du signal de parole pour déterminer les coefficients d'un filtre de synthèse à court terme, et une analyse en boucle ouverte pour déterminer un degré de voisement de la trame, et on effectue pour chaque sous-trame au moins une analyse en boucle fermée pour déterminer une séquence d'excitation qui, soumise au filtre de synthèse à court terme, produit un signal synthétique représentatif du signal de parole. Chaque analyse en boucle fermée utilise la réponse impulsionnelle d'un filtre composé du filtre de synthèse à court terme et d'un filtre de pondération perceptuelle. Lors de chaque analyse en boucle fermée, on utilise ladite réponse impulsionnelle en la tronquant à une longueur de troncature au plus égale au nombre d'échantillons par sous-trame et dépendant de la distribution énergétique de ladite réponse et du degré de voisement de la trame.The invention thus provides an analysis coding method by synthesizing a speech signal digitized in frames successive subdivided into subframes with a number determined of samples, in which one performs for each frame a linear prediction analysis of the speech signal to determine the coefficients of a synthesis filter at short term, and an open loop analysis to determine a degree of voicing of the frame, and we perform for each subframe at least one closed loop analysis to determine an excitation sequence which, subject to the short-term synthesis, produces a representative synthetic signal of the speech signal. Each closed loop analysis uses the impulse response of a filter composed of the filter short-term summary and a weighting filter perceptual. During each closed loop analysis, we uses said impulse response by truncating it to a truncation length at most equal to the number of samples by subframe and dependent on energy distribution of said response and the degree of voicing of the frame.
En général, la longueur de troncature sera d'autant plus grande que la trame est voisée. On peut ainsi réduire sensiblement la complexité des analyses en boucle fermée sans perdre en qualité de codage, grâce à une adaptation aux caractéristiques de voisement du signal.In general, the length of truncation will be as much larger than the frame is seen. We can thus reduce significantly the complexity of closed loop analyzes without lose in quality of coding, thanks to an adaptation to signal voicing characteristics.
D'autres particularités et avantages de l'invention apparaítront dans la description ci-après d'exemples de réalisation préférés, mais non limitatifs, en référence aux dessins annexés, dans lesquels :
- la figure 1 est un schéma synoptique d'une station de radiocommunication incorporant un codeur de parole mettant en oeuvre l'invention ;
- la figure 2 est un schéma synoptique d'une station de radiocommunication apte à recevoir un signal produit par celle de la figure 1 ;
- les figures 3 à 6 sont des organigrammes illustrant un processus d'analyse LTP en boucle ouverte appliqué dans le codeur de parole de la figure 1 ;
- la figure 7 est un organigramme illustrant un processus de détermination de la réponse impulsionnelle du filtre de synthèse pondéré appliqué dans le codeur de parole de la figure 1 ;
- les figures 8 à 11 sont des organigrammes illustrant un processus de recherche de l'excitation stochastique appliqué dans le codeur de parole de la figure 1.
- FIG. 1 is a block diagram of a radiocommunication station incorporating a speech coder implementing the invention;
- Figure 2 is a block diagram of a radio station capable of receiving a signal produced by that of Figure 1;
- Figures 3 to 6 are flowcharts illustrating an open loop LTP analysis process applied in the speech coder of Figure 1;
- Figure 7 is a flow diagram illustrating a process for determining the impulse response of the weighted synthesis filter applied in the speech coder of Figure 1;
- FIGS. 8 to 11 are flowcharts illustrating a process for finding the stochastic excitation applied in the speech coder of FIG. 1.
Un codeur de parole mettant en oeuvre l'invention est
applicable dans divers types de systèmes de transmission
et/ou de stockage de parole faisant appel à une technique de
compression numérique. Dans l'exemple de la figure 1, le codeur
de parole 16 fait partie d'une station mobile de radiocommunication.
Le signal de parole S est un signal numérique
échantillonné à une fréquence typiquement égale à 8kHz. Le
signal S est issu d'un convertisseur analogique-numérique 18
recevant le signal de sortie amplifié et filtré d'un microphone
20. Le convertisseur 18 met le signal de parole S sous
forme de trames successives elles-mêmes subdivisées en nst
sous-trames de 1st échantillons. Une trame de 20 ms comporte
typiquement nst=4 sous-trames de lst=40 échantillons de 16
bits à 8kHz. En amont du codeur 16, le signal de parole S
peut également être soumis à des traitements classiques de
mise en forme tels qu'un filtrage de Hamming. Le codeur de
parole 16 délivre une séquence binaire de débit sensiblement
plus faible que celui du signal de parole S, et adresse cette
séquence à un codeur canal 22 dont la fonction est d'introduire
des bits de redondance dans le signal afin de permettre
une détection et/ou une correction d'éventuelles erreurs de
transmission. Le signal de sortie du codeur canal 22 est ensuite
modulé sur une fréquence porteuse par le modulateur 24,
et le signal modulé est émis sur l'interface air.A speech coder implementing the invention is applicable in various types of speech transmission and / or storage systems using a digital compression technique. In the example of Figure 1, the
Le codeur de parole 16 est un codeur à analyse par
synthèse. Le codeur 16 détermine d'une part des paramètres
caractérisant un filtre de synthèse à court terme modélisant
le conduit vocal du locuteur, et d'autre part une séquence
d'excitation qui, appliquée au filtre de synthèse à court
terme, fournit un signal synthétique constituant une estimation
du signal de parole S selon un critère de pondération
perceptuelle.
The
Le filtre de synthèse à court terme a une fonction
de transfert de la forme 1/A(z), avec :The short-term synthesis filter has a
Les coefficients ai sont déterminés par un module 26
d'analyse par prédiction linéaire à court terme du signal de
parole S. Les ai sont les coefficients de prédiction linéaire
du signal de parole S. L'ordre q de la prédiction linéaire
est typiquement de l'ordre de 10. Les méthodes applicables
par le module 26 pour la prédiction linéaire à court terme
sont bien connues dans le domaine du codage de la parole.
Le module 26 met par exemple en oeuvre l'algorithme de
Durbin-Levinson (voir J. Makhoul : "Linear Prediction : A
tutorial review", Proc. IEEE, Vol.63, N°4, Avril 1975, p.
561-580). Les coefficients ai obtenus sont fournis à un
module 28 qui les convertit en paramètres de raies spectrales
(LSP). La représentation des coefficients de prédiction ai
par des paramètres LSP est fréquemment utilisée dans des
codeurs de parole à analyse par synthèse. Les paramètres LSP
sont les q nombres cos(2πfi) rangés en ordre décroissant, les
q fréquences de raies spectrales (LSF) normalisées fi(1≤i≤q)
étant telles que les nombres complexes exp(2πfi), avec
1=1,3, ..., q-1,q+1 et fq+1=0,5, soient les racines du
polynôme Q(z) défini par Q(z)=A(z)+z-(q+1).A (z-1) et que
les nombres complexes exp(2πjfi), avec i=0,2,4, ..., q et
f0=0, soient les racines du polynôme Q*(z) défini par
Q*(z)=A(z)-z-(q+1).A(z-1).The coefficients a i are determined by a
Les paramètres LSP peuvent être obtenus par le module
de conversion 28 par la méthode classique des polynômes de
Chebyshev (voir P. Kabal et R.P. Ramachandran : "The computation
of line spectral frequencies using Chebyshev polynomials",
IEEE Trans. ASSP, Vol.34, N° 6, 1986, pages 1419-1426).
Ce sont des valeurs de quantification des paramètres
LSP, obtenues par un module de quantification 30, qui sont
transmises au décodeur pour que celui-ci retrouve les coefficients
ai du filtre de synthèse à court terme. Les coefficients
ai peuvent être retrouvés simplement, étant donné que:
et
Pour éviter des variations brusques dans la fonction
de transfert du filtre de synthèse à court terme, les paramètres
LSP font l'objet d'une interpolation avant qu'on en déduise
les coefficients de prédiction ai. Cette interpolation
est effectuée sur les premières sous-trames de chaque trame
du signal. Par exemple, si LSPt et LSPt-1 désignent respectivement
un paramètre LSP calculé pour la trame t et pour la
trame précédente t-1, on prend : LSPt (0)=0,5.LSPt-1+0,5.LSPt,
LSPt(1)=0,25.LSPt-1+0,75.LSPt et LSPt(2)=...=LSTt(nst-1)=LSPt
pour les sous-trames 0,1,2,...,nst-1 de la trame t. Les
coefficients ai du filtre 1/A(z) sont alors déterminés, sous-trame
par sous-trame à partir des paramètres LSP interpolés.To avoid sudden variations in the transfer function of the short-term synthesis filter, the LSP parameters are interpolated before the prediction coefficients a i are deduced therefrom. This interpolation is performed on the first sub-frames of each frame of the signal. For example, if LSP t and LSP t-1 respectively designate a LSP parameter calculated for frame t and for the previous frame t-1, we take: LSP t (0) = 0.5. LSP t-1 +0, 5.LSP t , LSP t (1) = 0.25.LSP t-1 + 0.75.LSP t and LSP t (2) = ... = LST t (nst-1) = LSP t for sub -
Les paramètres LSP non quantifiés sont fournis par
le module 28 à un module 32 de calcul des coefficients d'un
filtre de pondération perceptuelle 34. Le filtre de pondération
perceptuelle 34 a de préférence une fonction de
transfert de la forme W(z)=A(z/γ1)/A(z/γ2) où γ1 et γ2 sont
des coefficients tels que γ1>γ2>0 (par exemple γ1=0,9 et
γ2=0,6). Les coefficients du filtre de pondération perceptuelle
sont calculés par le module 32 pour chaque sous-trame
après interpolation des paramètres LSP reçus du module 28.The non-quantified LSP parameters are supplied by the
Le filtre de pondération perceptuelle 34 reçoit le
signal de parole S et délivre un signal SW pondéré perceptuellement
qui est analysé par des modules 36, 38, 40 pour
déterminer la séquence d'excitation. La séquence d'excitation
du filtre à court terme se compose d'une excitation
prédictible par un filtre de synthèse à long terme modélisant
la hauteur tonale (pitch) de la parole, et d'une excitation
stochastique non prédictible, ou séquence d'innovation.The
Le module 36 effectue une prédiction à long terme
(LTP) en boucle ouverte, c'est-à-dire qu'il ne contribue pas
directement à la minimisation de l'erreur pondérée. Dans le
cas représenté, le filtre de pondération 34 intervient en
amont du module d'analyse en boucle ouverte, mais il pourrait
en être autrement : le module 36 pourrait opérer directement
sur le signal de parole S ou encore sur le signal S
débarrassé de ses corrélations à court terme par un filtre
de fonction de transfert A(z). En revanche, les modules 38
et 40 fonctionnent en boucle fermée, c'est-à-dire qu'ils
contribuent directement à la minimisation de l'erreur
pondérée perceptuellement.
Le filtre de synthèse à long terme a une fonction de
transfert de la forme 1/B(z) avec B(z)=1-gP.z-TP où gP
désigne un gain de prédiction à long terme et TP désigne un
retard de prédiction à long terme. Le retard de prédiction
à long terme peut typiquement prendre N=256 valeurs comprises
entre rmin et rmax échantillons. Une résolution fractionnaire
est prévue pour les plus petites valeurs de retard de façon
à éviter les écarts trop perceptibles en termes de fréquence
de voisement. On utilise par exemple une résolution 1/6 entre
rmin=21 et 33+5/6, une résolution 1/3 entre 34 et 47+2/3, une
résolution 1/2 entre 48 et 88+1/2, et une résolution entière
entre 89 et rmax=142. Chaque retard possible est ainsi
quantifié par un index entier compris entre 0 et N-1=255.The long-term synthesis filter has a transfer function of the
Le retard de prédiction à long terme est déterminé
en deux étapes. Dans la première étape, le module 36 d'analyse
LTP en boucle ouverte détecte les trames voisées du
signal de parole et détermine, pour chaque trame voisée, un
degré de voisement MV et un intervalle de recherche du retard
de prédiction à long terme. Le degré de voisement MV d'une
trame voisée peut prendre trois valeurs : 1 pour les trames
faiblement voisées, 2 pour les trames modérément voisées, et
3 pour les trames très voisées. Dans les notations utilisées
ci-après, on prend un degré de voisement MV=0 pour les trames
non voisées. L'intervalle de recherche est défini par une
valeur centrale représentée par son index de quantification
ZP et par une largeur dans le domaine des index de quantification,
dépendant du degré de voisement MV. Pour les trames
faiblement ou modérément voisées (MV=1 ou 2) la largeur de
l'intervalle de recherche est de N1 index, c'est-à-dire que
l'index du retard de prédiction à long terme sera recherché
entre ZP-16 et ZP+15 si N1=32. Pour les trames très voisées
(MV=3), la largeur de l'intervalle de recherche est de N3
index, c'est-à-dire que l'index du retard de prédiction à
long terme sera recherché entre ZP-8 et ZP+7 si N3=16.Long-term prediction lag is determined
in two steps. In the first step, the
Une fois que le degré de voisement MV d'une trame a
été déterminé par le module 36, le module 30 opère la quantification
des paramètres LSP qui ont auparavant été déterminés
pour cette trame. Cette quantification est par exemple vectorielle,
c'est-à-dire qu'elle consiste à sélectionner, dans
une ou plusieurs tables de quantification prédéterminées, un
jeu de paramètres quantifiés LSPQ qui présente une distance
minimale avec le jeu de paramètres LSP fourni par le module
28. De façon connue, les tables de quantification diffèrent
suivant le degré de voisement MV fourni au module de quantification
30 par l'analyseur en boucle ouverte 36. Un ensemble
de tables de quantification pour un degré de voisement
MV est déterminé, lors d'essais préalables, de façon à être
statistiquement représentatif de trames ayant ce degré MV.
Ces ensembles sont stockés à la fois dans les codeurs et dans
les décodeurs mettant en oeuvre l'invention. Le module 30
délivre le jeu de paramètres quantifiés LSPQ ainsi que son
index Q dans les tables des quantification applicables.Once the degree of voicing MV of a frame has been determined by the
Le codeur de parole 16 comprend en outre un module
42 de calcul de la réponse impulsionnelle du filtre composé
du filtre de synthèse à court terme et du filtre de pondération
perceptuelle. Ce filtre composé a pour fonction de
transfert W(z)/A(z). Pour le calcul de sa réponse impulsionnelle
h=(h(0),h(1), ..., h(1st-1)) sur la durée d'une sous-trame,
le module 42 prend pour le filtre de pondération
perceptuelle W(z) celui correspondant aux paramètres LSP
interpolés mais non quantifiés, c'est-à-dire celui dont les
coefficients ont été calculés par le module 32, et pour le
filtre de synthèse 1/A(z) celui correspondant aux paramètres
LSP quantifiés et interpolés, c'est-à-dire celui qui sera
effectivement reconstitué par le décodeur.The
Dans la deuxième étape de la détermination du retard
TP de prédiction à long terme, le module 38 d'analyse LTP en
boucle fermée détermine le retard TP pour chaque sous-trame
des trames voisées (MV=1, 2 ou 3). Ce retard TP est
caractérisé par une valeur différentielle DP dans le domaine
des index de quantification, codée sur 5 bits si MV=1 ou 2
(N1=32), et sur 4 bits si MV=3 (N3=16). L'index du retard TP
vaut ZP+DP. De façon connue, l'analyse LTP en boucle fermée
consiste à déterminer, dans l'intervalle de recherche des
retards T de prédiction à long terme, le retard TP qui
maximise, pour chaque sous-trame d'une trame voisée, la
corrélation normalisée :
où x(i) désigne le signal de parole pondéré SW de la sous-trame
auquel on a soustrait la mémoire du filtre de synthèse
pondéré (c'est-à-dire la réponse à un signal nul, due à ses
états initiaux, du filtre dont la réponse impulsionnelle h
a été calculée par le module 42), et yT(i) désigne le produit
de convolution :
u(j-T) désignant la composante prédictible de la séquence
d'excitation retardée de T échantillons, estimée par la technique
bien connue du répertoire adaptatif ("adaptive
codebook"). Pour les retards T inférieurs à la longueur d'une
sous-trame, les valeurs manquantes de u(j-T) peuvent être
extrapolées à partir des valeurs antérieures. Les retards
fractionnaires sont pris en compte en suréchantillonnant le
signal u(j-T) dans le répertoire adaptatif. Un
suréchantillonnage d'un facteur m est obtenu au moyen de
filtres polyphasés interpolateurs.In the second step of determining the long-term prediction delay TP, the closed-loop
Le gain gP de prédiction à long terme pourrait être
déterminé par le module 38 pour chaque sous-trame, en
appliquant la formule connue :
Toutefois, dans une version préférée de l'invention, le gain
gP est calculé par le module d'analyse stochastique 40.The gain g P of long-term prediction could be determined by the
L'excitation stochastique déterminée pour chaque
sous-trame par le module 40 est de type multi-impulsionnelle.
Une séquence d'innovation de 1st échantillons comprend np
impulsions de positions p(n) et d'amplitude g(n). Autrement
dit, les impulsions ont une amplitude de 1 et sont associées
à des gains respectifs g(n). Etant donné que le retard LTP
n'est pas déterminé pour les sous-trames des trames non
voisées, on peut prendre un nombre d'impulsions supérieur
pour l'excitation stochastique relative à ces sous-trames,
par exemple np=5 si MV=1, 2 ou 3 et np=6 si MV=0. Les
positions et les gains calculés par le module 40 d'analyse
stochastique sont quantifiés par un module 44.The stochastic excitation determined for each
subframe by the
Un module d'ordonnancement des bits 46 reçoit les différents paramètres qui seront utiles au décodeur, et constitue la séquence binaire transmise au codeur canal 22. Ces paramètres sont :
- l'index Q des paramètres LSP quantifiés pour chaque trame ;
- le degré MV de voisement de chaque trame ;
- l'index ZP du centre de l'intervalle de recherche des retards LTP pour chaque trame voisée ;
- l'index différentiel DP du retard LTP pour chaque sous-trame d'une trame voisée, et le gain associé gP ;
- les positions p(n) et les gains g(n) des impulsions de l'excitation stochastique pour chaque sous-trame.
- the index Q of the LSP parameters quantized for each frame;
- the degree MV of voicing of each frame;
- the ZP index of the center of the LTP delay search interval for each voiced frame;
- the differential index DP of the delay LTP for each sub-frame of a voiced frame, and the associated gain g P ;
- the positions p (n) and the gains g (n) of the pulses of the stochastic excitation for each sub-frame.
Certains de ces paramètres peuvent avoir une importance
particulière dans la qualité de restitution de la
parole ou une sensibilité particulière aux erreurs de
transmission. On prévoit ainsi dans le codeur un module 48
qui reçoit les différents paramètres et qui ajoute à certains
d'entre eux des bits de redondance permettant de détecter
et/ou de corriger d'éventuelles erreurs de transmission. Par
exemple, le degré de voisement MV codé sur deux bits étant
un paramètre critique, on souhaite qu'il parvienne au
décodeur avec aussi peu d'erreurs que possible. Pour cette
raison, des bits de redondance sont ajoutés à ce paramètre
par le module 48. On peut par exemple ajouter un bit de
parité aux deux bits codant MV et répéter une fois les trois
bits ainsi obtenus. Cet exemple de redondance permet de
détecter toutes les erreurs simples ou doubles et de corriger
toutes les erreurs simples et 75% des erreurs doubles.Some of these parameters may be important
particular in the quality of restitution of the
speech or a particular sensitivity to errors of
transmission. A
L'allocation du débit binaire par trame de 20 ms est par exemple celle indiquée dans le tableau I.The allocation of bit rate per 20 ms frame is for example that indicated in table I.
Dans l'exemple considéré ici, le codeur canal 22 est
celui utilisé dans le système paneuropéen de radiocommunication
avec les mobiles (GSM). Ce codeur canal, décrit en
détail dans la Recommandation GSM 05.03, a été mis au point
pour un codeur de parole à 13 kbit/s de type RPE-LTP qui produit
également 260 bits par trame de 20 ms. La sensibilité
de chacun des 260 bits a été déterminée à partir de tests
d'écoute. Les bits issus du codeur source ont été regroupés
en trois catégories. La première de ces catégories IA regroupe
50 bits qui sont codés convolutionnellement sur la
base d'un polynôme générateur donnant une redondance d'un
demi avec une longueur de contrainte égale à 5. Trois bits
de parité sont calculés et ajoutés aux 50 bits de la catégorie
IA avant le codage convolutionnel. La seconde catégorie
(IB) compte 132 bits qui sont protégés à un taux d'un demi
par le même polynôme que la catégorie précédente. La
troisième catégorie (II) contient 78 bits non protégés. Après
application du code convolutionnel, les bits (456 par trame)
sont soumis à un entrelacement. Le module d'ordonnancement
46 du nouveau codeur source mettant en oeuvre l'invention
distribue les bits dans les trois catégories en fonction de
l'importance subjective de ces bits.
Une station mobile de radiocommunication apte à recevoir
le signal de parole traité par le codeur source 16 est
représentée schématiquement sur la figure 2. Le signal radio
reçu est d'abord traité par un démodulateur 50 puis par un
décodeur canal 52 qui effectuent les opérations duales de
celles du modulateur 24 et du codeur canal 22. Le décodeur
canal 52 fournit au décodeur de parole 54 une séquence binaire
qui, en l'absence d'erreurs de transmission ou lorsque
les éventuelles erreurs ont été corrigées par le décodeur
canal 52, correspond à la séquence binaire qu'a délivrée le
module d'ordonnancement 46 au niveau du codeur 16. Le décodeur
54 comprend un module 56 qui reçoit cette séquence binaire
et qui identifie les paramètres relatifs aux différentes
trames et sous-trames. Le module 56 effectue en outre
quelques contrôles sur les paramètres reçus. En particulier,
le module 56 examine les bits de redondance introduits par
le module 48 du codeur, pour détecter et/ou corriger les
erreurs affectant les paramètres associés à ces bits de
redondance.A mobile radio station capable of receiving
the speech signal processed by the
Pour chaque trame de parole à synthétiser, un module
58 du décodeur reçoit le degré de voisement MV et l'index de
Q de quantification des paramètres LSP. Le module 58 retrouve
les paramètres LSP quantifiés dans les tables correspondant
à la valeur de MV, et, après interpolation, les convertit en
coefficients ai pour le filtre de synthèse à court terme 60.
Pour chaque sous-trame de parole à synthétiser, un générateur
d'impulsions 62 reçoit les positions p(n) des np impulsions
de l'excitation stochastique. Le générateur 62 délivre des
impulsions d'amplitude unitaire qui sont chacune multipliées
en 64 par le gain associé g(n). La sortie de l'amplificateur
64 est adressée au filtre de synthèse à long terme 66. Ce
filtre 66 a une structure à répertoire adaptatif. Les
échantillons u de sortie du filtre 66 sont mémorisés dans le
répertoire adaptatif 68 de façon à être disponibles pour les
sous-trames ultérieures. Le retard TP relatif à une sous-trame,
calculé à partir des index de quantification ZP et DP,
est fourni au répertoire adaptatif 68 pour produire le signal
u convenablement retardé. L'amplificateur 70 multiplie le
signal ainsi retardé par le gain gP de prédiction à long
terme. Le filtre à long terme 66 comprend enfin un
additionneur 72 qui ajoute les sorties des amplificateurs 64
et 70 pour fournir la séquence d'excitation u. Lorsque l'analyse
LTP n'a pas été effectuée au codeur, par exemple si
MV=0, un gain de prédiction gP nul est imposé à l'amplificateur
70 pour les sous-trames correspondantes. La séquence
d'excitation est adressée au filtre de synthèse à court terme
60, et le signal résultant peut encore, de façon connue, être
soumis à un post-filtre 74 dont les coefficients dépendent
des paramètres de synthèse reçus, pour former le signal de
parole synthétique S'. Le signal de sortie S' du décodeur 54
est ensuite converti en analogique par le convertisseur 76
avant d'être amplifié pour commander un haut-parleur 78.For each speech frame to be synthesized, a
On va maintenant décrire, en référence au figures 3
à 6, le processus d'analyse LTP en boucle ouverte mis en
oeuvre par le module 36 du codeur suivant un premier aspect
de l'invention.We will now describe, with reference to Figures 3
at 6, the open loop LTP analysis process implemented
work by the
Dans une première étape 90, le module 36 calcule et
mémorise, pour chaque sous-trame st=0,1, ..., nst-1 de la trame
courante, les autocorrélations cst(k) et les énergies retardées
Gst(k) du signal de parole pondéré SW pour les retards
entiers k compris entre rmin et rmax :
In a
Les énergies par sous-trame R0st sont également calculées : The energies per sub-frame R0 st are also calculated:
A l'étape 90, le module 36 détermine en outre, pour
chaque sous-trame st, le retard entier Kst qui maximise
l'estimation en boucle ouverte Pst(k) du gain de prédiction
à long terme sur la sous-trame st, en excluant les retards
k pour lesquels l'autocorrélation cst(k) est négative ou plus
petite qu'une petite fraction E de l'énergie R0st de la sous-trame.
L'estimation Pst(k) exprimée en décibels s'écrit :
Si la comparaison 92 montre une première estimation
du gain de prédiction inférieure au seuil S0, on considère
que le signal de parole contient trop peu de corrélations à
long terme pour être voisé, et le degré de voisement MV de
la trame courante est pris égal à 0 à l'étape 94, ce qui
termine dans ce cas les opérations effectuées par le module
36 sur cette trame. Si au contraire le seuil S0 est dépassé
à l'étape 92, la trame courante est détectée comme voisée et
le degré MV sera égal à 1, 2 ou 3. Le module 36 calcule
alors, pour chaque sous-trame st, une liste Ist contenant des
retards candidats pour constituer le centre ZP de l'intervalle
de recherche des retards de prédiction à long terme.If the
Les opérations effectuées par le module 36 pour
chaque sous-trame st (st initialisé à 0 à l'étape 96) d'une
trame voisée commencent par la détermination 98 d'un seuil
de sélection SEst en décibels égal à une fraction déterminée
β de l'estimation Pst(Kst) du gain de prédiction en décibels
sur la sous-trame, maximisée à l'étape 90 (β=0,75 typiquement).
Pour chaque sous-trame st d'une trame voisée, le
module 36 détermine le retard de base rbf en résolution
entière pour la suite du traitement. Ce retard de base
pourrait être pris égal à l'entier Kst obtenu à l'étape 90.
Le fait de rechercher le retard de base en résolution
fractionnaire autour de Kst permet toutefois de gagner en
précision. L'étape 100 consiste ainsi, à rechercher, autour
du retard entier Kst obtenu à l'étape 90, le retard
fractionnaire qui maximise l'expression Cst 2/Gst. Cette
recherche peut être effectuée à la résolution maximale des
retards fractionnaires (1/6 dans l'exemple décrit ici) même
si le retard entier Kst n'est pas dans le domaine où cette
résolution maximale s'applique. On détermine par exemple le
nombre Δst qui maximise Cst 2(Kst+δ/6)/Gst(Kst+δ/6) pour-6<δ<+6,
puis le retard de base rbf en résolution maximale est
pris égal à Kst+ Δst/6. Pour les valeurs fractionnaires T du
retard, les autocorrélations Cst(T) et les énergies retardées
Gst(T) sont obtenues par interpolation à partir des valeurs
mémorisées à l'étape 90 pour les retards entiers. Bien
entendu, le retard de base relatif à une sous-trame pourrait
également être déterminé en résolution fractionnaire dès
l'étape 90 et pris en compte dans la première estimation du
gain de prédiction global sur la trame.The operations performed by the
Une fois que le retard de base rbf a été déterminé
pour une sous-trame, on procède à un examen 101 des sous-multiples
de ce retard afin de retenir ceux pour lesquels le
gain de prédiction est relativement important (figure 4),
puis des multiples du plus petit sous-multiple retenu (figure
5). A l'étape 102, l'adresse j dans la liste Ist et l'index
m du sous-multiple sont initialisés à 0 et 1, respectivement.
Une comparaison 104 est effectuée entre le sous-multiple
rbf/m et le retard minimal rmin. Le sous-multiple rbf/m est
à examiner s'il est supérieur à rmin. On prend alors pour
l'entier i la valeur de l'index du retard quantifié ri le
plus proche de rbf/m (étape 106), puis on compare, en 108,
la valeur estimée du gain de prédiction Pst(ri) associée au
retard quantifié ri pour la sous-trame considérée au seuil
de sélection SEst calculé à l'étape 98 :
L'examen des sous-multiples du retard de base est
terminé lorsque la comparaison 104 montre rbf/m < rmin. On
examine alors les retards multiples du plus petit rbf/m0 des
sous-multiples précédemment retenus suivant le processus
illustré sur la figure 5. Cet examen commence par une initialisation
114 de l'index n du multiple : n=2. Une comparaison
116 est effectuée entre le multiple n.rbf/m0 et le retard
maximal rmax. Si n.rbf/m0 > rmax, on effectue le test 118
pour déterminer si l'index m0 du plus petit sous-multiple est
un multiple entier de n. Dans l'affirmative, le retard
n.rbf/m0 a déjà été examiné lors de l'examen des sous-multiples
de rbf, et on passe directement à l'étape 120
d'incrémentation de l'index n avant d'effectuer de nouveau
la comparaison 116 pour le multiple suivant. Si le test 118
montre que m0 n'est pas un multiple entier de n, le multiple
n.rbf/m0 est à examiner. On prend alors pour l'entier i la
valeur de l'index du retard quantifié ri le plus proche de
n.rbf/m0 (étape 122), puis on compare, en 124, la valeur
estimée du gain de prédiction Pst(ri) au seuil de sélection
SEst. Si Pst(ri)<SEst, le retard ri n'est pas pris en considération,
et on passe directement à l'étape 120 d'incrémentation
de l'index n. Si le test 124 montre que
pst(ri) ≥ SEst, le retard ri est retenu et on exécute l'étape
126 avant d'incrémenter l'index n à l'étape 120. A l'étape
126, on mémorise l'index i à l'adresse j dans la liste Ist,
puis on incrémente d'une unité l'adresse j.The examination of the sub-multiples of the basic delay is finished when the
L'examen des multiples du plus petit sous-multiple
est terminé lorsque la comparaison 116 montre que
n.rbf/m0 > rmax. A ce moment, la liste Ist contient j index
de retards candidats. Si on souhaite limiter à jmax la longueur
maximale de la liste Ist pour les étapes suivantes, on
peut prendre la longueur jst de cette liste égale à
min(j,jmax) (étape 128) puis, à l'étape 130, ordonner la
liste Ist dans l'ordre des gains Cst 2(rIst(j))/Gst 2(rIst(j) )
décroissants pour 0≤j<jst de façon à ne conserver que les jst
retards procurant les plus grandes valeurs de gain. La valeur
de jmax est choisie en fonction du compromis visé entre l'efficacité
de la recherche des retards LTP et la complexité de
cette recherche. Des valeurs typiques de jmax vont de 3 à 5.The examination of the multiples of the smallest sub-multiple is finished when the
Une fois que les sous-multiples et les multiples ont
été examinés et que la liste Ist a ainsi été obtenue (figure
3), le module d'analyse 36 calcule une quantité Ymax déterminant
une seconde estimation en boucle ouverte du gain de
prédiction à long terme sur l'ensemble de la trame, ainsi que
des index ZP, ZP0 et ZP1 dans une phase 132 dont le déroulement
est détaillé sur la figure 6. Cette phase 132 consiste
à tester des intervalles de recherche de longueur N1 pour
déterminer celui qui maximise une deuxième estimation du gain
de prédiction global sur la trame. Les intervalles testés
sont ceux dont les centres sont les retards candidats contenus
dans la liste Ist calculée lors de la phase 101. La phase
132 commence par une étape 136 où l'adresse j dans la liste
Ist est initialisée à 0. A l'étape 138, on vérifie si l'index
Ist(j) a déjà été rencontré en testant un intervalle précédent
centré sur Ist,(j') avec st'<st et 0≤j'<jst', afin
d'éviter de tester deux fois le même intervalle. Si le test
138 révèle que Ist(j) figurait déjà dans une liste Ist' avec
st'<st, on incrémente directement l'adresse j à l'étape 140,
puis on la compare à la longueur jst de la liste Ist. Si la
comparaison 142 montre que j<jst, on revient à l'étape 138
pour la nouvelle valeur de l'adresse j. Lorsque la comparaison
142 montre que j=jst, tous les intervalles relatifs à la
liste Ist ont été testés, et la phase 132 est terminée. Lorsque
le test 138 est négatif, on teste l'intervalle centré sur
Ist(j) en commençant par l'étape 148 où on détermine, pour
chaque sous-trame st', l'index ist, du retard optimal qui
maximise sur cet intervalle l'estimation en boucle ouverte
Pst(ri) du gain de prédiction à long terme, c'est-à-dire
qui maximise la quantité Yst,(i)=Cst' 2(ri)/Gst,(ri)
où ri désigne le retard quantifié d'index i pour
Ist(j)-N1/2 ≤i<Ist(j)+N1/2 et 0≤i<N. Lors de la maximisation
148 relative à une sous-trame st', on écarte a priori les
index i pour lesquels l'autocorrélation Cst'(ri) est négative,
pour éviter de dégrader le codage. S'il se trouve que
toutes les valeurs de i comprises dans l'intervalle testé
[I(j)-N1/2, I(j)+N1/2[ donnent lieu à des autocorrélations
Cst'(ri) négatives, on sélectionne l'index ist' pour lequel
cette autocorrélation est la plus petite en valeur absolue.
Ensuite, en 150, la quantité Y déterminant la deuxième estimation
du gain de prédiction global pour l'intervalle centré
sur Ist(j) est calculée selon :
puis comparée à Ymax, où Ymax représente la valeur à
maximiser. Cette valeur Ymax est par exemple initialisée à
0 en même temps que l'index st à l'étape 96. Si Y≤Ymax, on
passe directement à l'étape 140 d'incrémentation de l'index
j. Si la comparaison 150 montre que Y > Ymax, on exécute
l'étape 152 avant d'incrémenter l'adresse j à l'étape 140.
A cette étape 152, l'index ZP est pris égal à Ist(j) et les
index ZP0 et ZP1 sont respectivement pris égaux au plus petit
et au plus grand des index ist' déterminés à l'étape 148.Once the sub-multiples and the multiples have been examined and the list I st has thus been obtained (FIG. 3), the
A la fin de la phase 132 relative à une sous-trame
st, l'index st est incrémenté d'une unité (étape 154) puis
comparé, à l'étape 156, au nombre nst de sous-trames par
trame. Si st<nst, on revient à l'étape 98 pour effectuer les
opérations relatives à la sous-trame suivante. Lorsque la
comparaison 156 montre que st=nst, l'index ZP désigne le
centre de l'intervalle de recherche qui sera fourni au module
38 d'analyse LTP en boucle fermée, et ZP0 et ZP1 sont des
index dont l'écart est représentatif de la dispersion des
retards optimaux par sous-trame dans l'intervalle centré sur
ZP.At the end of
A l'étape 158, le module 36 détermine le degré de
voisement MV, sur la base de la seconde estimation en boucle
ouverte du gain exprimée en décibels : Gp=20.log10(RO/RO-Ymax).
On fait appel à deux autres seuils S1 et S2. Si Gp≤S1,
le degré de voisement MV est pris égal à 1 pour la trame courante.
Le seuil S1 est typiquement compris entre 3 et 5 dB;
par exemple S1=4 dB. Si S1<Gp<S2, le degré de voisement MV
est pris égal à 2 pour la trame courante. Le seuil S2 est typiquement
compris entre 5 et 8 dB ; par exemple S2=7 dB. Si
Gp>S2, on examine la dispersion des retards optimaux pour les
différentes sous-trames de la trame courante. Si ZP1-ZP<N3/2
et ZP-ZP0≤N3/2, un intervalle de longueur N3 centré sur ZP
suffit à prendre en compte tous les retards optimaux et le
degré de voisement est pris égal à 3 (si Gp>S2). Sinon, si
ZP1-ZP≥N3/2 ou ZP-ZPO>N3/2, le degré de voisement est pris
égal à 2 (si Gp>S2).In
L'index ZP du centre de l'intervalle de recherche du
retard de prédiction pour une trame voisée peut être compris
entre 0 et N-1=255, et l'index différentiel DP déterminé pour
le module 38 peut aller de -16 à +15 si MV=1 ou 2, et de -8
à +7 si MV=3 (cas N1=32, N3=16). L'index ZP+DP du retard TP
finalement déterminé peut donc dans certains cas être plus
petit que 0 ou plus grand que 255. Ceci permet à l'analyse
LTP en boucle fermée de porter également sur quelques retards
TP plus petits que rmin ou plus grands que rmax. On améliore
ainsi la qualité subjective de la restitution des voix dites
pathologiques et des signaux non vocaux (fréquences vocales
DTMF ou fréquences de signalisation utilisées par le réseau
téléphonique commuté). Une autre possibilité est de prendre
pour l'intervalle de recherche les 32 premiers ou derniers
index de quantification des retards si ZP<16 ou ZP>240 avec
MV=1 ou 2, et les 16 premiers ou derniers index si ZP<8 ou
ZP>248 avec MV=3.The ZP index of the center of the search interval of
prediction delay for a voiced frame can be understood
between 0 and N-1 = 255, and the differential index DP determined for
Le fait de réduire l'intervalle de recherche des
retards pour les trames très voisées (typiquement 16 valeurs
pour MV=3 au lieu de 32 pour MV=1 ou 2) permet de diminuer
la complexité de l'analyse LTP en boucle fermée effectuée par
le module 38 en réduisant le nombre de convolutions yT(i) à
calculer suivant la formule (1). Un autre avantage est qu'un
bit de codage de l'index différentiel DP est économisé. Le
débit de sortie étant constant, ce bit peut être réalloué au
codage d'autres paramètres. On peut en particulier allouer
ce bit supplémentaire à la quantification du gain de prédiction
à long terme gP calculé par le module 40. En effet, une
meilleure précision sur le gain gP grâce à un bit de quantification
supplémentaire est appréciable car ce paramètre est
perceptuellement important pour les sous-trames très voisées
(MV=3). Une autre possibilité est de prévoir un bit de parité
pour le retard TP et/ou le gain gP, permettant de détecter
d'éventuelles erreurs affectant ces paramètres.Reducing the delay search interval for very closely spaced frames (typically 16 values for MV = 3 instead of 32 for MV = 1 or 2) reduces the complexity of the closed loop LTP analysis performed by the
Il est possible d'apporter quelques modifications au processus d'analyse LTP en boucle ouverte décrit ci-dessus en référence aux figures 3 à 6.It is possible to make some modifications to the open loop LTP analysis process described above with reference to Figures 3 to 6.
Suivant une première variante de ce processus, les
premières optimisations effectuées à l'étape 90 relativement
aux différentes sous-trames sont remplacées par une seule
optimisation portant sur l'ensemble de la trame. Outre les
paramètres Cst(k) et Gst(k) calculés pour chaque sous-trame
st, on calcule également les autocorrélations C(k) et les
énergies retardées G(k) pour l'ensemble de la trame :
According to a first variant of this process, the first optimizations carried out in
On détermine alors le retard de base en résolution
entière K qui maximise X(k)=C2(k)/G(k) pour rmin ≤ k ≤ rmax.
La première estimation du gain comparée à S0 à l'étape 92 est
alors P(K)=20.log10[R0/[R0-X(K)]]. On détermine ensuite, autour
de K, un seul retard de base en résolution fractionnaire
rbf et l'examen 101 des sous-multiples et des multiples est
effectué une seule fois et produit une seule liste I au lieu
de nst listes Ist. La phase 132 est ensuite effectuée une
seule fois pour cette liste I, en ne distinguant les sous-trames
qu'aux étapes 148, 150 et 152. Cette variante de
réalisation a pour avantage de réduire la complexité de
l'analyse en boucle ouverte.We then determine the basic delay in whole resolution K which maximizes X (k) = C 2 (k) / G (k) for rmin ≤ k ≤ rmax. The first gain estimate compared to S0 in
Suivant une seconde variante du processus d'analyse
LTP en boucle ouverte, le domaine [rmin, rmax] des retards
possibles est subdivisé en nz sous-intervalles ayant par
exemple la même longueur (nz=3 typiquement), et les premières
optimisations effectuées à l'étape 90 relativement aux différentes
sous-trames sont remplacées par nz optimisations dans
les différents sous-intervalles portant chacune sur l'ensemble
de la trame. On obtient ainsi nz retards de base
K1', ..., Knz' en résolution entière. La décision voisé/non
voisé (étape 92) est prise sur la base de celui des retards
de base Ki' qui procure la plus grande valeur pour la
première estimation en boucle ouverte du gain de prédiction
à long terme. Ensuite, si la trame est voisée, on détermine
les retards de base en résolution fractionnaire par le même
processus qu'à l'étape 100, mais en autorisant seulement les
valeurs de retard quantifiées. L'examen 101 des sous-multiples
et des multiples n'est pas effectué. Pour la phase
132 de calcul de la seconde estimation du gain de prédiction,
on prend comme retards candidats les nz retards de base précédemment
déterminés. Cette seconde variante permet de se
dispenser de l'examen systématique des sous-multiples et des
multiples qui sont en général pris en considération grâce à
la subdivision du domaine des retards possibles.According to a second variant of the open loop LTP analysis process, the domain [rmin, rmax] of possible delays is subdivided into nz sub-intervals having for example the same length (nz = 3 typically), and the first optimizations carried out at
Suivant une troisième variante du processus d'analyse
LTP en boucle ouverte, la phase 132 est modifiée en
ce que, aux étapes d'optimisation 148, on détermine
d'une part l'index ist, qui maximise Cst' 2(ri)/Gst'(ri) pour
Ist(j)-N1/2≤i<Ist(j)+N1/2 et 0≤i<N, et d'autre part, au
cours de la même boucle de maximisation, l'index kst, qui
maximise cette même quantité sur un intervalle réduit
Ist(j)-N3/2≤i<Ist(j)+N3/2 et 0≤1<N. L'étape 152 est
également modifiée : on ne mémorise plus les index ZP0 et
ZP1, mais une quantité Ymax' définie de la même manière que
Ymax mais en référence à l'intervalle de longueur réduite :
According to a third variant of the LTP open-loop analysis process,
Dans cette troisième variante, la détermination 158
du mode de voisement conduit à sélectionner plus souvent le
degré de voisement MV=3. On prend également en compte, en
plus du gain Gp précédemment décrit, une troisième estimation
en boucle ouverte du gain LTP, correspondant à Ymax' :
Gp'=20.log10[R0/(R0-Ymax')]. Le degré de voisement est MV=1
si Gp≤S1, MV=3 si Gp'>S2 et MV=2 si aucune de ces deux
conditions n'est vérifiée. En augmentant ainsi la proportion
de trames de degré MV=3, on réduit la complexité moyenne de
l'analyse en boucle fermée et on améliore la robustesse aux
erreurs de transmission.In this third variant, the
Une quatrième variante du processus d'analyse LTP en
boucle ouverte concerne surtout les trames faiblement voisées
(MV=1). Ces trames correspondent souvent à un début ou à une
fin d'une zone de voisement. Fréquemment, ces trames peuvent
comporter de une à trois sous-trames pour lesquelles le coefficient
de gain du filtre de synthèse à long terme est nul
voire négatif. Il est proposé de ne pas effectuer l'analyse
LTP en boucle fermée pour les sous-trames en question, afin
de réduire la complexité moyenne du codage. Ceci peut être
réalisé en mémorisant à l'étape 152 de la figure 6 nst pointeurs
indiquant pour chaque sous-trame st' si l'autocorrélation
Cst, correspondant au retard d'index ist' est négative
ou encore très petite. Une fois que tous les intervalles référencés
dans les listes Ist' les sous-trames pour lesquelles
le gain de prédiction est négatif ou négligeable peuvent être
identifiées en consultant les nst pointeurs. Le cas échéant
le module 38 est désactivé pour les sous-trames correspondantes.
Ceci n'affecte pas la qualité de l'analyse LTP puisque
le gain de prédiction correspondant à ces sous-trames
sera de toutes façons quasiment nul.A fourth variant of the open loop LTP analysis process mainly concerns weakly voiced frames (MV = 1). These frames often correspond to a start or an end of a voicing area. Frequently, these frames can comprise from one to three sub-frames for which the gain coefficient of the long-term synthesis filter is zero or even negative. It is proposed not to perform LTP analysis in closed loop for the sub-frames in question, in order to reduce the average complexity of the coding. This can be achieved by storing in
Un autre aspect de l'invention concerne le module 42
de calcul de la réponse impulsionnelle du filtre de synthèse
pondéré. Le module 38 d'analyse LTP en boucle fermée a besoin
de cette réponse impulsionnelle h sur la durée d'une sous-trame
pour calculer les convolutions yT(i) selon la formule
(1). Le module 40 d'analyse stochastique en a également
besoin pour calculer des convolutions comme on le verra plus
loin. Le fait d'avoir à calculer des convolutions avec une
réponse h s'étendant sur la durée d'une sous-trame (lst=40
typiquement) implique une relative complexité du codage,
qu'il serait souhaitable de réduire notamment pour augmenter
l'autonomie de la station mobile. Dans certains cas il a été
proposé de tronquer la réponse impulsionnelle à une longueur
inférieure à la longueur d'une sous-trame (par exemple à 20
échantillons), mais ceci peut dégrader la qualité du codage.
On propose selon l'invention de tronquer la réponse impulsionnelle
h en tenant compte d'une part de la distribution
énergétique de cette réponse et d'autre part du degré de voisement
MV de la trame considérée, déterminé par le module 36
d'analyse LTP en boucle ouverte.Another aspect of the invention relates to the
Les opérations effectuées par le module 42 sont par
exemple conformes à l'organigramme de la figure 7. La réponse
impulsionnelle est d'abord calculée à l'étape 160 sur une
longueur pst supérieure à la longueur d'une sous-trame et
suffisamment grande pour qu'on soit assuré de prendre en compte
toute l'énergie de la réponse impulsionnelle (par exemple
pst=60 pour nst=4 et lst=40 si la prédiction linéaire à court
terme est d'ordre q=10). A l'étape 160, on calcule également
les énergies tronquées de la réponse impulsionnelle :
The operations performed by the
Les composantes h(i) de la réponse impulsionnelle et
les énergies tronquées Eh(i) peuvent être obtenues en
filtrant une impulsion unitaire au moyen d'un filtre de
fonction de transfert W(z)/A(z) d'états initiaux nuls, ou
encore par récurrence :
Ensuite le module 42 détermine la plus petite longueur
Lα telle que l'énergie Eh(Lα-1) de la réponse impulsionnelle
tronquée à Lα échantillons soit au moins égale à
une proportion α de son énergie totale Eh(pst-1) estimée sur
pst échantillons. Une valeur typique de α est 98%. Le nombre
Lα est initialisé à pst à l'étape 162 et décrémenté d'une
unité en 166 tant que Eh(Lα-2)>α.Eh(pst-1) (test 164). La
longueur Lα cherchée est obtenue lorsque le test 164 montre
que Eh(Lα-2)≤α.Eh(pst-1).Then the
Pour tenir compte du degré de voisement MV, un terme correcteur Δ(MV) est ajouté à la valeur de Lα qui a été obtenue (étape 168). Ce terme correcteur est de préférence une fonction croissante du degré de voisement. On peut par exemple prendre Δ(0)=-5, Δ(1)=0, Δ(2)=+5 et Δ(3)=+7. De cette façon, la réponse impulsionnelle h sera déterminée de façon d'autant plus précise que le voisement de la parole est important. La longueur de troncature Lh de la réponse impulsionnelle est prise égale à Lα si Lα≤nst et à nst sinon. Les échantillons restants de la réponse impulsionnelle (h(i)=0 avec i≥Lh) peuvent être annulés.To take into account the degree of voicing MV, a term corrector Δ (MV) is added to the value of Lα which has been obtained (step 168). This corrector term is preferably an increasing function of the degree of voicing. We can by example take Δ (0) = - 5, Δ (1) = 0, Δ (2) = + 5 and Δ (3) = + 7. Of this way, the impulse response h will be determined so all the more precise as the voicing of speech is important. The truncation length Lh of the impulse response is taken equal to Lα if Lα≤nst and to nst otherwise. The remaining samples of the impulse response (h (i) = 0 with i≥Lh) can be canceled.
Avec la troncature de la réponse impulsionnelle, le
calcul (1) des convolutions yT(i) par le module 38 d'analyse
LTP en boucle fermée est modifié de la façon suivante :
With the truncation of the impulse response, the calculation (1) of the convolutions y T (i) by the
L'obtention de ces convolutions, qui représente une
part importante des calculs effectués, nécessite donc sensiblement
moins de multiplications, d'additions et d'adressages
dans le répertoire adaptatif lorsque la réponse impulsionnelle
est tronquée. La troncature dynamique de la réponse impulsionnelle
faisant intervenir le degré de voisement MV permet
d'obtenir une telle réduction de complexité sans affecter
la qualité du codage. Les mêmes considérations s'appliquent
pour les calculs de convolutions effectués par le module 40
d'analyse stochastique. Ces avantages sont particulièrement
appréciables lorsque le filtre de pondération perceptuelle
a une fonction de transfert de la forme W(z)=A(z/γ1)/A(z/γ2)
avec 0<γ2<γ1<1 qui donne lieu à des réponses impulsionnelles
généralement plus longues que celles de la forme
W(z)=A(z)/A(z/γ) plus communément employées dans les codeurs
à analyse par synthèse.Obtaining these convolutions, which represents a significant part of the calculations performed, therefore requires significantly less multiplication, addition and addressing in the adaptive repertoire when the impulse response is truncated. The dynamic truncation of the impulse response involving the degree of voicing MV makes it possible to obtain such a reduction in complexity without affecting the quality of the coding. The same considerations apply for the convolution calculations performed by the
Un troisième aspect de l'invention concerne le
module 40 d'analyse stochastique servant à modéliser la
partie non prédictible de l'excitation.A third aspect of the invention relates to the
L'excitation stochastique considérée ici est de type
multi-impulsionnelle. L'excitation stochastique relative à
une sous-trame est représentée par np impulsions de positions
p(n) et d'amplitudes, ou gains, g(n) (1≤n≤np). Le gain gP de
prédiction à long terme peut également être calculé au cours
du même processus. De façon générale, on peut considérer que
la séquence d'excitation relative à une sous-trame comporte
nc contributions associées respectivement à nc gains. Les
contributions sont des vecteurs lst échantillons qui, pondérés
par les gains associés et sommés correspondent à la
séquence d'excitation du filtre de synthèse à court terme.
Une des contributions peut être prédictible, ou plusieurs
dans le cas d'un filtre de synthèse à long terme à plusieurs
prises ("multi-tap pitch synthesis filter"). Les autres contributions
sont dans le cas présent np vecteurs ne comportant
que des 0 sauf une impulsion d'amplitude 1. On a donc nc=np
si MV=0, et nc=np+1 si MV=1, 2 ou 3.The stochastic excitation considered here is of the multi-pulse type. The stochastic excitation relating to a subframe is represented by np pulses of positions p (n) and of amplitudes, or gains, g (n) (1≤n≤np). The gain g P of long-term prediction can also be calculated during the same process. In general, it can be considered that the excitation sequence relating to a sub-frame comprises nc contributions associated respectively with nc gains. The contributions are lst sample vectors which, weighted by the associated and summed gains correspond to the excitation sequence of the short-term synthesis filter. One of the contributions can be predictable, or several in the case of a long-term synthesis filter with several takes ("multi-tap pitch synthesis filter"). The other contributions are in the present case np vectors comprising only 0 except an impulse of
L'analyse multi-impulsionnelle incluant le calcul du gain gP=g(0) consiste, de façon connue, à trouver pour chaque sous-trame des positions p(n) (1≤n≤np) et des gains g(n) (0≤n≤np) qui minimisent l'erreur quadratique pondérée perceptuellement E entre le signal de parole et le signal synthétisé, donnée par : les gains étant solution du système linéaire g.B=b.The multi-pulse analysis including the calculation of the gain g P = g (0) consists, in a known manner, of finding for each sub-frame positions p (n) (1≤n≤np) and gains g (n ) (0≤n≤np) which minimize the perceptually weighted quadratic error E between the speech signal and the synthesized signal, given by: the gains being solution of the linear system gB = b.
Dans les notations ci-dessus :
- X désigne un vecteur-cible initial composé des lst échantillons du signal de parole pondéré SW sans mémoire : X=(x(0),x(1), ..., x(lst-1)), les x(i) ayant été calculés comme indiqué précédemment lors de l'analyse LTP en boucle fermée ;
- g désigne le vecteur ligne composé des np+1 gains : g= (g(0)=gP, g(1), ...,g(np)) ;
- les vecteurs-ligne Fp(n) (0≤n<nc) sont des contributions pondérées ayant pour composantes i(0≤i<lst) les produits de convolution entre la contribution n à la séquence d'excitation et la réponse impulsionnelle h du filtre de synthèse pondéré ;
- b désigne le vecteur ligne composé des nc produits scalaires entre le vecteur X et les vecteurs ligne Fp(n);
- B désigne une matrice symétrique à nc lignes et nc colonnes dont le terme Bi,j=Fp(i).Fp(j).T (0≤i,j<nc) est égal au produit scalaire entre les vecteurs Fp(i) et Fp(j) précédemment définis ;
- (.)T désigne la transposition matricielle.
- X denotes an initial target vector composed of the lst samples of the weighted speech signal SW without memory: X = (x (0), x (1), ..., x (lst-1)), the x (i) having been calculated as indicated previously during the closed loop LTP analysis;
- g denotes the line vector composed of the np + 1 gains: g = (g (0) = g P , g (1), ..., g (np));
- the line vectors F p (n) (0≤n <nc) are weighted contributions having as components i (0≤i <lst) the products of convolution between the contribution n to the excitation sequence and the impulse response h weighted synthesis filter;
- b denotes the line vector composed of the nc scalar products between the vector X and the line vectors F p (n) ;
- B denotes a symmetric matrix with nc rows and nc columns whose term B i , j = F p (i) .F p (j) . T (0≤i, j <nc) is equal to the scalar product between the vectors F p (i) and F p (j) previously defined;
- (.) T denotes the matrix transposition.
Pour les impulsions de l'excitation stochastique (1≤n
≤np=nc-1) les vecteurs Fp(n) sont simplement constitués par
le vecteur de la réponse impulsionnelle h décalée de p(n)
échantillons. Le fait de tronquer la réponse impulsionnelle
comme décrit précédemment permet donc de réduire sensiblement
le nombre d'opérations utiles au calcul des produits scalaires
faisant intervenir ces vecteurs Fp(n). Pour la contribution
prédictible de l'excitation, le vecteur Fp(0)=YTP a
pour composantes Fp(0)(i) (0≤i<lst) les convolutions YTP(i)
que le module 38 a calculées suivant la formule (1) ou (1')
pour le retard de prédiction à long terme sélectionné TP. Si
MV=0, la contribution n=0 est également de type impulsionnelle
et la position p(0) est à calculer. For the stochastic excitation pulses (1≤n ≤np = nc-1) the vectors F p (n) are simply constituted by the vector of the impulse response h shifted by p (n) samples. Truncating the impulse response as described above therefore makes it possible to significantly reduce the number of operations useful for calculating the scalar products involving these vectors F p (n) . For the predictable contribution of the excitation, the vector F p (0) = Y TP has for components F p (0) (i) (0≤i <lst) the convolutions Y TP (i) that the
Minimiser l'erreur quadratique E définie ci-dessus revient à trouver l'ensemble des positions p(n) qui maximisent la corrélation normalisée b.B-1.bT puis à calculer les gains selon g=b.B-1.Minimizing the quadratic error E defined above amounts to finding the set of positions p (n) which maximize the normalized correlation bB -1 .b T then calculating the gains according to g = bB -1 .
Mais une recherche exhaustive des positions d'impulsion
nécessiterait un volume de calculs excessif. Pour atténuer
ce problème, l'approche multi-impulsionnelle applique
en général une procédure sous-optimale consistant à calculer
successivement les gains et/ou les positions d'impulsion pour
chaque contribution. Pour chaque contribution n (0≤n<nc), on
détermine d'abord la position p(n) qui maximise la corrélation
normalisée (Fp.en-1 T)2/(Fp.Fp T), on recalcule les gains
gn(0) à gn(n) selon gn=bn.Bn -1, où gn= (gn(0) gn(n)),
bn=(b(0), ..., b(n)) et Bn={Bi,j}0≤i,j≤n, puis on calcule pour
l'itération suivante le vecteur-cible en égal au vecteur-cible
initial X auquel on retranche les contributions 0 à n
du signal synthétique pondéré multipliées par leurs gains
respectifs :
But an exhaustive search of the pulse positions would require an excessive volume of calculations. To alleviate this problem, the multi-pulse approach generally applies a sub-optimal procedure consisting of successively calculating the gains and / or the pulse positions for each contribution. For each contribution n (0≤n <nc), we first determine the position p (n) which maximizes the normalized correlation (F p .e n-1 T ) 2 / (F p .F p T ), we recalculates the gains g n (0) to g n (n) according to g n = b n .B n -1 , where g n = (g n (0) g n (n)), b n = (b (0 ), ..., b (n)) and B n = {B i, j } 0≤i, j≤n , then for the next iteration we calculate the target vector e n equal to the initial target vector X to which we subtract the
A l'issue de la dernière itération nc-1, les gains gnc-1(i) sont les gains sélectionnés et l'erreur quadratique minimisée E est égal à l'énergie du vecteur-cible enc-1.At the end of the last iteration nc-1, the gains g nc-1 (i) are the selected gains and the minimized quadratic error E is equal to the energy of the target vector e nc-1 .
La méthode ci-dessus donne des résultats satisfaisants, mais elle nécessite l'inversion d'une matrice Bn à chaque itération. Dans leur article "Amplitude Optimization and Pitch Prediction in Multipulse Coders" (IEEE Trans. on Acoustics, Speech, and Signal Processing, Vol.37, N° 3, Mars 1989, pages 317-327), S. Singhal et B.S. Atal ont proposé de simplifier le problème de l'inversion des matrices Bn en utilisant la décomposition de Cholesky : Bn=Mn.Mn T où Mn est une matrice triangulaire inférieure. Cette décomposition est possible parce que Bn est une matrice symétrique à valeurs propres positives. L'avantage de cette approche est que l'inversion d'une matrice triangulaire est relativement peu complexe, Bn -1 pouvant être obtenue par Bn -1=(Mn -1)T.Mn -1. The above method gives satisfactory results, but it requires the inversion of a matrix B n at each iteration. In their article "Amplitude Optimization and Pitch Prediction in Multipulse Coders" (IEEE Trans. On Acoustics, Speech, and Signal Processing, Vol.37, N ° 3, March 1989, pages 317-327), S. Singhal and BS Atal have proposed to simplify the problem of inverting the matrices B n using the Cholesky decomposition: B n = M n .M n T where M n is a lower triangular matrix. This decomposition is possible because B n is a symmetric matrix with positive eigenvalues. The advantage of this approach is that the inversion of a triangular matrix is relatively uncomplicated, B n -1 can be obtained by B n -1 = (M n -1 ) T .M n -1 .
La décomposition de Cholesky et l'inversion de la
matrice Mn nécessitent toutefois d'effectuer des divisions
et des calculs de racines carrées qui sont des opérations
exigeantes en termes de complexité de calcul. L'invention
propose de simplifier considérablement la mise en oeuvre de
l'optimisation en modifiant la décomposition des matrices Bn
de la façon suivante :
Dans ces conditions, la décomposition de Bn, l'inversion de Ln, l'obtention de Bn -1=Kn .(Ln -1)T.Ln -1 et le recalcul des gains ne nécessitent qu'une seule division par itération et aucun calcul de racine carrée.Under these conditions, the decomposition of B n , the inversion of L n , the obtaining of B n -1 = K n . (L n -1 ) T .L n -1 and the recalculation of the gains only require only one division per iteration and no square root calculation.
L'analyse stochastique relative à une sous-trame
d'une trame voisée (MV=1,2 ou 3) peut dès lors se dérouler
comme indiqué sur les figures 8 à 11. Pour calculer le gain
de prédiction à long terme, l'index de contribution n est
initialisé à 0 à l'étape 180 et le vecteur Fp(0) est pris
égal à la contribution à long terme YTP fournie par le module
38. Si n>0, l'itération n commence par la détermination 182
de la position p(n) de l'impulsion n qui maximise la
quantité
où e=(e(0), ..., e(lst-1)) est un vecteur-cible calculé lors
de l'itération précédente. Différentes contraintes peuvent
être apportées au domaine de maximisation de la quantité ci-dessus
inclus dans l'intervalle [0,lst[. L'invention utilise
de préférence une recherche segmentaire dans laquelle la
sous-trame d'excitation est subdivisée en ns segments de même
longueur (par exemple ns=10 pour lst=40). Pour la première
impulsion (n=1), la maximisation de (Fp.eT)2/(Fp.Fp T) est
effectuée sur l'ensemble des positions possibles p dans la
sous-trame. A l'itération n>1, la maximisation est effectuée
à l'étape 182 sur l'ensemble des positions possibles à
l'exclusion des segments dans lesquels ont été respectivement
trouvées les positions p(1),...,p(n-1) des impulsions lors
des itérations précédentes.The stochastic analysis relating to a subframe of a voiced frame (MV = 1,2 or 3) can therefore take place as indicated in FIGS. 8 to 11. To calculate the long-term prediction gain, the contribution index n is initialized to 0 in
Dans le cas où la trame courante a été détectée comme non voisée, la contribution n=0 est également constituée par une impulsion de position p(0). L'étape 180 comprend alors seulement l'initialisation n=0, et elle est suivie par une étape de maximisation identique à l'étape 182 pour trouver p(0), avec e=e-1=X comme valeur initiale du vecteur-cible.In the case where the current frame has been detected as unvoiced, the contribution n = 0 also consists of a position pulse p (0). Step 180 then only includes initialization n = 0, and it is followed by a maximization step identical to step 182 to find p (0), with e = e -1 = X as the initial value of the vector- target.
On remarque que lorsque la contribution n=0 est prédictible
(MV=1, 2 ou 3), le module 38 d'analyse LTP en boucle
fermée a effectué une opération de nature semblable à la
maximisation 182, puisqu'il a déterminé la contribution à
long terme, caractérisée par le retard TP, en maximisant la
quantité (YT.eT)2/(YT.YT T) dans l'intervalle de recherche des
retards T, avec e=e-1=X comme valeur initiale du vecteur-cible.
On peut également, lorsque l'énergie de la
contribution LTP est très faible, ignorer cette contribution
dans le processus de recalcul des gains.Note that when the contribution n = 0 is predictable (MV = 1, 2 or 3), the closed-loop
Après l'étape 180 ou 182, le module 40 procède au
calcul 184 de la ligne n des matrices L, R et K intervenant
dans la décomposition de la matrice B, ce qui permet de
compléter les matrices Ln, Rn et Kn définies ci-dessus. La
décomposition de la matrice B permet d'écrire :
pour la composante située à la ligne n et à la colonne j. On
peut donc écrire, pour j croissant de 0 à n-1 :
Ces relations sont exploitées dans le calcul 184
détaillé sur la figure 9. L'index de colonne j est d'abord
initialisé à 0, à l'étape 186. Pour l'index de colonne j, la
variable tmp est d'abord initialisée à la valeur de la
composante B(n,j), soit :
These relationships are used in the
A l'étape 188, l'entier k est en outre initialisé à
0. On effectue alors une comparaison 190 entre les entiers
k et j. Si k<j, on ajoute le terme L(n,k).R(j,k) à la variable
tmp, puis on incrémente d'une unité l'entier k (étape
192) avant de réexécuter la comparaison 190. Quand la comparaison
190 montre que k=j, on effectue une comparaison 194
entre les entiers j et n. Si j<n, la composante R(n,j) est
prise égale à tmp et la composante L(n,j) à tmp.K(j) à
l'étape 196, puis l'index de colonne j est incrémenté d'une
unité avant qu'on revienne à l'étape 188 pour calculer les
composantes suivantes. Quand la comparaison 194 montre que
j=n, la composante K(n) de la ligne n de la matrice K est
calculée, ce qui termine le calcul 184 relatif à la ligne n.
K(n) est pris égal à 1/tmp si tmp≠0 (étape 198) et à 0 sinon.
On constate que le calcul 184 ne requiert qu'au plus une
division 198, pour obtenir K(n). En outre, une éventuelle
singularité de la matrice Bn n'entraíne pas d'instabilités
puisqu'on évite les divisions par 0.In
En référence à la figure 8, le calcul 184 des lignes
n de L, R et K est suivi par l'inversion. 200 de la matrice
Ln constituée des lignes et des colonnes 0 à n de la matrice
L. Le fait que L soit triangulaire avec des 1 sur sa diagonale
principale en simplifie grandement l'inversion comme le
montre la figure 10. On peut en effet écrire :
pour 0≤j'<n et L-1(n,n)=1, c'est-à-dire que l'inversion peut
être faite sans avoir à opérer une division. En outre, comme
les composantes de la ligne n de L-1 suffisent à recalculer
les gains, l'utilisation de la relation (5) permet de faire
l'inversion sans avoir à mémoriser toute la matrice L-1, mais
seulement un vecteur Linv=(Linv(0),...,Linv(n-1)) avec
Linv(j')=L-1(n,j'). L'inversion 200 commence alors par une
initialisation 202 de l'index de colonne j' à n-1. A l'étape
204, le terme Linv(j') est initialisé à -L(n,j') et l'entier
k' à j'+1. On effectue ensuite une comparaison 206 entre les
entiers k' et n. Si k'<n, on retranche le terme
L(k',j').Linv(k') à Linv(j'), puis on incrémente d'une unité
l'entier k' (étape 208) avant de réexécuter la comparaison
206. Quand la comparaison 206 montre que k'=n, on compare j'
à 0 (test 210). Si j'>0, on décrémente l'entier j' d'une
unité (étape 212) et on revient à l'étape 204 pour calculer
la composante suivante. L'inversion 200 est terminée lorsque
le test 210 montre que j'=0.With reference to FIG. 8, the
En référence à la figure 8 l'inversion 200 est suivie
par le calcul 214 des gains réoptimisés et du vecteur-cible
E pour l'itération suivante. Le calcul des gains réoptimisés
est également très simplifié par la décomposition retenue
pour la matrice B. On peut en effet calculer le vecteur
gn=(gn(0), ...,gn(n)) solution de gn.Bn=bn selon :
et gn(i')=gn-1(i')+L-1(n,i').gn(n) pour 0≤i'<n. Le calcul 214
est détaillé sur la figure 11. On calcule d'abord la
composante b(n) du vecteur b :
b(n) sert de valeur d'initialisation pour la variable tmq.
A l'étape 216, on initialise également l'index i à 0. On
effectue ensuite la comparaison 218 entre les entiers i et
n. Si i<n, on ajoute le terme b(i). Linv(i) à la variable tmq
et on incrémente i d'une unité (étape 220) avant de revenir
à la comparaison 218. Quand la comparaison 218 montre que
i=n, on calcule le gain relatif à la contribution n selon
g(n)=tmq.K(n), et on initialise la boucle de calcul des
autres gains et du vecteur-cible (étape 222) en prenant
e=X-g(n).Fp(n) et i'=0. Cette boucle comprend une comparaison
224 entre les entiers i' et n. Si i'<n, le gain g(i') est
recalculé à l'étape 226 en ajoutant Linv(i').g(n) à sa valeur
calculée lors de l'itération précédente n-1, puis on retranche
au vecteur-cible e le vecteur g(i').Fp(i'). L'étape 226
comprend également l'incrémentation de l'index i' avant de
revenir à la comparaison 224. Le calcul 214 des gains et du
vecteur-cible est terminé lorsque la comparaison 224 montre
que i'=n. On voit que les gains ont pu être mis à jour en ne
faisant appel qu'à la ligne n de la matrice inverse Ln -1 .With reference to FIG. 8, the
Le calcul 214 est suivi par une incrémentation 228
de l'index n de la contribution, puis par une comparaison 230
entre l'index n et le nombre de contributions nc. Si n<nc,
on revient à l'étape 182 pour l'itération suivante.
L'optimisation des positions et des gains est terminée
lorsque n=nc au test 230.The
La recherche segmentaire des impulsions diminue
sensiblement le nombre de positions d'impulsion à évaluer au
cours des étapes 182 de la recherche de l'excitation stochastique.
Elle permet en outre une quantification efficace des
positions trouvées. Dans le cas typique où la sous-trame de
lst=40 échantillons est divisée en ns=10 segments de ls=4
échantillons, l'ensemble des positions d'impulsion possibles
peut prendre ns!.lsnp/[np!(ns-np)!]=258 048 valeurs si np=5
(Mv=1, 2 ou 3) ou 860 160 si np=6(MV=0), au lieu de
lst!/[np!(lst-np)!]=658 008 valeurs si np=5 ou 3 838 380 si
np=6 dans le cas où on impose seulement que deux impulsions
ne puissent pas avoir la même position. En d'autres termes,
on peut quantifier les positions sur 18 bits au lieu de 20
bits si np=5, et sur 20 bits au lieu de 22 si np=6.Segmental pulse search significantly decreases the number of pulse positions to be evaluated during
Le cas particulier où le nombre de segments par sous-trame est égal au nombre d'impulsions par excitation stochastique (ns=np) conduit à la plus grande simplicité de la recherche de l'excitation stochastique, ainsi qu'au plus faible débit binaire (si lst=40 et np=5, il y a 85=32768 ensembles de positions possibles, quantifiables sur 15 bits seulement au lieu de 18 si ns=10). Mais en réduisant à ce point le nombre de séquences d'innovation possibles, on peut appauvrir la qualité du codage. Pour un nombre d'impulsions donné, le nombre des segments peut être optimisé selon un compromis visé entre la qualité du codage et sa simplicité de mise en oeuvre (ainsi que le débit requis).The particular case where the number of segments per subframe is equal to the number of pulses by stochastic excitation (ns = np) leads to the greatest simplicity of the search for stochastic excitation, as well as to the lowest bit rate (if lst = 40 and np = 5, there are 8 5 = 32 768 sets of possible positions, quantifiable on 15 bits only instead of 18 if ns = 10). But by reducing the number of possible innovation sequences to this point, the quality of the coding can be reduced. For a given number of pulses, the number of segments can be optimized according to a targeted compromise between the quality of the coding and its simplicity of implementation (as well as the required bit rate).
Le cas où ns>np présente en outre l'avantage qu'on
peut obtenir une bonne robustesse aux erreurs de transmission
en ce qui concerne les positions des impulsions, grâce à une
quantification séparée des numéros d'ordre des segments
occupés et des positions relatives des impulsions dans chaque
segment occupé. Pour une impulsion n, le numéro d'ordre sn
du segment et la position relative prn sont respectivement
le quotient et le reste de la division euclidienne de p(n)
par la longueur ls d'un segment : p(n)=sn.ls+prn (0≤sn<ns,
0≤prn<ls). Les positions relatives sont chacune quantifiées
séparément sur 2 bits, si ls=4. En cas d'erreur de
transmission affectant l'un de ces bits, l'impulsion
correspondante ne sera que peu déplacée, et l'impact
perceptuel de l'erreur sera limité. Les numéros d'ordre des
segments occupés sont repérés par un mot binaire de ns=10
bits valant chacun 1 pour les segments occupés et 0 pour les
segments dans lesquels l'excitation stochastique n'a pas
d'impulsion. Les mots binaires possibles sont ceux ayant un
poids de Hamming de np; ils sont au nombre de ns!/[np!(ns-np)!]=252
si np=5, ou 210 si np=6. Ce mot est quantifiable
par un index de nb bits avec 2nb-1<ns!/[np!(ns-np)!]≤2nb,
soit nb=8 dans l'exemple considéré. Si, par exemple,
l'analyse stochastique a fourni np=5 impulsions de positions
4, 12, 21, 34, 38, les positions relatives quantifiées
scalairement sont 0,0,1,2,2 et le mot binaire représentant
les segments occupés est 0101010011, ou 339 en traduction
décimale.The case where ns> np also has the advantage that good robustness to transmission errors can be obtained with regard to the positions of the pulses, by virtue of a separate quantification of the sequence numbers of the occupied segments and of the relative positions pulses in each occupied segment. For a pulse n, the sequence number s n of the segment and the relative position pr n are respectively the quotient and the remainder of the Euclidean division of p (n) by the length ls of a segment: p (n) = s n .ls + pr n (0≤s n <ns, 0≤pr n <ls). The relative positions are each quantized separately on 2 bits, if ls = 4. In the event of a transmission error affecting one of these bits, the corresponding pulse will be only slightly displaced, and the perceptual impact of the error will be limited. The serial numbers of the occupied segments are identified by a binary word of ns = 10 bits each equal to 1 for the occupied segments and 0 for the segments in which the stochastic excitation has no pulse. Possible binary words are those with a Hamming weight of np; they are ns! / [np! (ns-np)!] = 252 if np = 5, or 210 if np = 6. This word is quantifiable by an index of nb bits with 2 nb-1 <ns! / [Np! (Ns-np)!] ≤2 nb , that is nb = 8 in the example considered. If, for example, the stochastic analysis provided np = 5 pulses of
Au niveau du décodeur, les mots binaires possibles sont stockés dans une table de quantification dans laquelle les adresses de lecture sont les index de quantification reçus. L'ordre dans cette table, déterminé une fois pour toutes, peut être optimisé de façon qu'une erreur de transmission affectant un bit de l'index (le cas d'erreur le plus fréquent, surtout lorsqu'un entrelacement est mis en oeuvre dans le codeur canal 22) ait, en moyenne, des conséquences minimales suivant un critère de voisinage. Le critère de voisinage est par exemple qu'un mot de ns bits ne puisse être remplacé que par des mots "voisins", éloignés d'une distance de Hamming au plus égale à un seuil np-2δ, de façon à conserver toutes les impulsions sauf δ d'entre elles à des positions valides en cas d'erreur de transmission de l'index portant sur un seul bit. D'autres critères seraient utilisables en substitution ou en complément, par exemple que deux mots soient considérés comme voisins si le remplacement de l'un par l'autre ne modifie pas l'ordre d'affectation des gains associés aux impulsions.At the decoder, the possible binary words are stored in a quantification table in which the reading addresses are the quantization indexes received. The order in this table, determined once for all, can be optimized so that an error of transmission affecting a bit of the index (the error case the more frequent, especially when interlacing is used work in the channel encoder 22) has, on average, minimal consequences according to a neighborhood criterion. The neighborhood criterion is for example that a word of ns bits does not can be replaced only by words "neighbors", distant a Hamming distance at most equal to an np-2δ threshold, so as to keep all the pulses except δ of them at valid positions in case of transmission error the single-bit index. Other criteria would be usable in substitution or in addition, for example that two words are considered neighbors if the replacement of one by the other does not change the order of assignment of gains associated with pulses.
A des fins d'illustration, on peut considérer le cas
simplifié où ns=4 et np=2, soit 6 mots binaires possibles
quantifiables sur nb=3 bits. Dans ce cas, on peut vérifier
que la table de quantification présentée au tableau II permet
de conserver np-1=1 impulsion bien positionnée pour toute
erreur affectant un bit de l'index transmis. Il y a 4 cas
d'erreur (sur un total de 18), pour lesquels on reçoit un
index de quantification qu'on sait être erroné (6 au lieu de
2 ou 4 ; 7 au lieu de 3 ou 5), mais le décodeur peut alors
prendre des mesures limitant la distorsion, par exemple
répéter la séquence d'innovation relative à la sous-trame
précédente ou encore affecter des mots binaires acceptables
aux index "impossibles" (par exemple 1001 ou 1010 pour
l'index 6 et 1100 ou 0110 pour l'index 7 conduisent encore
à np-1=1 impulsion bien positionnée en cas de réception de
6 ou 7 avec une erreur binaire).For illustration purposes, we can consider the case
simplified where ns = 4 and np = 2, i.e. 6 possible binary words
quantifiable on nb = 3 bits. In this case, we can check
that the quantification table presented in Table II allows
to keep np-1 = 1 pulse well positioned for all
error affecting a bit of the transmitted index. There are 4 cases
error (out of a total of 18), for which we receive a
quantification index that we know to be wrong (6 instead of
2 or 4; 7 instead of 3 or 5), but the decoder can then
take measures to limit distortion, for example
repeat the innovation sequence relating to the subframe
previous or assign acceptable binary words
"impossible" indexes (for example 1001 or 1010 for
Dans le cas général, l'ordre dans la table de quantification des mots peut être déterminé à partir de considérations arithmétiques ou, si cela est insuffisant, en simulant sur ordinateur les scénarios d'erreurs (de façon exhaustive ou par un échantillonnage statistique de type Monte-Carlo suivant le nombre de cas d'erreurs possibles).In the general case, the order in the table word quantification can be determined from arithmetic considerations or, if this is insufficient, in simulating error scenarios on a computer (so exhaustive or by statistical sampling of the type Monte-Carlo according to the number of possible error cases).
Pour sécuriser la transmission de l'index de quantification
des segments occupés, on peut en outre tirer parti
des différentes catégories de protection offertes par le
codeur canal 22, notamment si le critère de voisinage ne peut
être vérifié de façon satisfaisante pour tous les cas
d'erreurs possibles affectant un bit de l'index. Le module
d'ordonnancement 46 peut ainsi mettre dans la catégorie de
protection minimale, ou dans la catégorie non protégée, un
certain nombre nx des bits de l'index qui, s'ils sont
affectés par une erreur de transmission, donnent lieu à un
mot erroné mais vérifiant le critère de voisinage avec une
probabilité jugée satisfaisante, et mettre dans une catégorie
plus protégée les autres bits de l'index. Cette façon de
procéder fait appel à un autre ordonnancement des mots dans
la table de quantification. Cet ordonnancement peut également
être optimisé au moyen de simulations si on souhaite
maximiser le nombre nx des bits de l'index affectés à la
catégorie la moins protégée.
Une possibilité est de commencer par constituer une liste de mots de ns bits par comptage en code de Gray de 0 à 2nS-1, et d'obtenir la table de quantification ordonnée en supprimant de cette liste les mots n'ayant pas un poids de Hamming de np. La table ainsi obtenue est telle que deux mots consécutifs ont une distance de Hamming de np-2. Si les index dans cette table ont une représentation binaire en code de Gray, toute erreur sur le bit de poids le plus faible fait varier l'index de ±1 et entraíne donc le remplacement du mot d'occupation effectif par un mot voisin au sens du seuil np-2 sur la distance de Hamming, et une erreur sur le i-ième bit de poids le plus faible fait aussi varier l'index de ±1 avec une probabilité d'environ 21-i. En plaçant les nx bits de poids faible de l'index en code de Gray dans une catégorie non protégée, une éventuelle erreur de transmission affectant un de ces bits conduit au remplacement du mot d'occupation par un mot voisin avec une probabilité au moins égale à (1+1/2+...+1/2nx-1)/nx. Cette probabilité minimale décroít de 1 à (2/nb)(1-1/2nb) pour nx croissant de 1 à nb. Les erreurs affectant les nb-nx bits de poids fort de l'index seront le plus souvent corrigées grâce à la protection que leur applique le codeur canal. La valeur de nx est dans ce cas choisie selon un compromis entre la robustesse aux erreurs (petites valeurs) et un encombrement réduit des catégories protégées (grandes valeurs).One possibility is to start by constituting a list of words of ns bits by counting in Gray code from 0 to 2nS-1, and to obtain the ordered quantification table by deleting from this list the words not having a weight of Hamming of NP. The table thus obtained is such that two consecutive words have a Hamming distance of np-2. If the indexes in this table have a binary representation in Gray code, any error on the least significant bit causes the index to vary by ± 1 and therefore causes the replacement of the actual occupancy word by a neighboring word in the sense of the np-2 threshold on the Hamming distance, and an error on the i-th least significant bit also varies the index by ± 1 with a probability of approximately 2 1-i . By placing the nx least significant bits of the index in Gray code in an unprotected category, a possible transmission error affecting one of these bits leads to the replacement of the busy word by a neighboring word with a probability at least equal. to (1 + 1/2 + ... + 1/2 nx-1 ) / nx. This minimum probability decreases from 1 to (2 / nb) (1-1 / 2 nb ) for nx increasing from 1 to nb. The errors affecting the nb-nx most significant bits of the index will most often be corrected thanks to the protection applied to them by the channel coder. The value of nx is in this case chosen according to a compromise between robustness to errors (small values) and a reduced size of the protected categories (large values).
Au niveau du codeur, les mots binaires possibles pour représenter l'occupation des segments sont rangés en ordre croissant dans une table de recherche. Une table d'indexage associe à chaque adresse le numéro d'ordre, dans la table de quantification stockée au décodeur, du mot binaire ayant cette adresse dans la table de recherche. Dans l'exemple simplifié évoqué ci-dessus, le contenu de la table de recherche et de la table d'indexage est donné dans le tableau III (en valeurs décimales).At the encoder level, the possible binary words for represent the occupation of the segments are arranged in order growing in a search table. An indexing table associates with each address the serial number, in the table of quantization stored at the decoder, of the binary word having this address in the lookup table. In the example simplified mentioned above, the content of the table search and index table is given in the table III (in decimal values).
La quantification du mot d'occupation des segments
déduit des np positions fournies par le module d'analyse
stochastique 40 est effectuée en deux étapes par le module
de quantification 44. Une recherche dichotomique est d'abord
effectuée dans la table de recherche pour déterminer
l'adresse dans cette table du mot à quantifier. L'index de
quantification est ensuite obtenu à l'adresse déterminée dans
la table d'indexage puis fourni au module 46 d'ordonnancement
des bits.
Le module 44 effectue en outre la quantification des
gains calculés par le module 40. Le gain gTP est par exemple
quantifié dans l'intervalle [0;1,6], sur 5 bits si MV=1 ou
2 et sur 6 bits si MV=3 pour tenir compte de la plus grande
importance perceptuelle de ce paramètre pour les trames très
voisées. Pour le codage des gains associés aux impulsions de
l'excitation stochastique, on quantifie sur 5 bits la plus
grande valeur absolue Gs des gains g(1),...,g(np), en prenant
par exemple 32 valeurs de quantification en progression géométrique
dans l'intervalle [0;32767], et on quantifie chacun
des gains relatifs g(1)/Gs, ..., g(np)/Gs dans l'intervalle
[-1;+1], sur 4 bits si MV=1, 2 ou 3, ou sur 5 bits si MV=0.The
Les bits de quantification de Gs sont placés dans une
catégorie protégée par le codeur canal 22, de même que les
bits de poids fort des index de quantification des gains
relatifs. Les bits de quantification des gains relatifs sont
ordonnés de façon à permettre leur affectation aux impulsions
associées appartenant aux segments localisés par le mot
d'occupation. La recherche segmentaire selon l'invention
permet en outre de protéger de manière efficace les positions
relatives des impulsions associées aux plus grandes valeurs
de gain.The quantization bits of Gs are placed in a
category protected by the
Dans le cas où np=5 et ls=4, dix bits par sous-trame sont nécessaires pour quantifier les positions relatives des impulsions dans les segments. On considère le cas où 5 de ces 10 bits sont placés dans une catégorie peu ou pas protégée (II) et où les 5 autres sont placés dans une catégorie plus protégée (IB). La distribution la plus naturelle est de placer le bit de poids fort de chaque position relative dans la catégorie protégée IB, de sorte que les éventuelles erreurs de transmission affectent plutôt les bits de poids fort et ne provoquent donc qu'un décalage d'un échantillon pour l'impulsion correspondante. Il est toutefois judicieux, pour la quantification des positions relatives, de considérer les impulsions dans l'ordre décroissant des valeurs absolues des gains associés et de placer dans la catégorie IB les deux bits de quantification de chacune des deux premières positions relatives ainsi que le bit de poids fort de la troisième. De cette façon, les positions des impulsions sont protégées préférentiellement lorsqu'elles sont associées à des gains importants, ce qui améliore la qualité moyenne particulièrement pour les sous-trames les plus voisées.In the case where np = 5 and ls = 4, ten bits per sub-frame are needed to quantify the relative positions of pulses in the segments. We consider the case where 5 of these 10 bits are placed in a category with little or no protection (II) and where the 5 others are placed in a more category protected (IB). The most natural distribution is place the most significant bit of each relative position in protected category IB, so that any transmission errors rather affect the weight bits strong and therefore only cause a shift of a sample for the corresponding pulse. It’s wise, however, for the quantification of relative positions, to consider pulses in descending order of absolute values associated gains and to place in the IB category both quantization bits of each of the first two relative positions as well as the most significant bit of the third. In this way, the positions of the pulses are preferentially protected when associated with significant gains, which improves the average quality especially for the most voiced subframes.
Pour reconstituer les contributions impulsionnelles
de l'excitation, le décodeur 54 localise d'abord les segments
au moyen du mot d'occupation reçu ; il attribue ensuite les
gains associés ; puis il attribue les positions relatives aux
impulsions sur la base de l'ordre d'importance des gains.To reconstruct impulse contributions
of excitation, the
On comprendra que les différents aspects de l'invention décrits ci-dessus procurent chacun des améliorations propres, et qu'il est donc envisageable de les mettre en oeuvre indépendamment les uns des autres. Leur combinaison permet de réaliser un codeur de performances particulièrement intéressantes.It will be understood that the different aspects of the invention described above provide each of the own improvements, and that it is therefore possible to envisage them implement independently of each other. Their combination allows for a performance encoder particularly interesting.
Dans l'exemple de réalisation décrit dans ce qui précède, le codeur de parole à 13 kbits/s requiert de l'ordre de 15 millions d'instructions par seconde (Mips) en virgule fixe. On le réalisera donc typiquement en programmant un processeur de signal numérique (DSP) du commerce, de même que le décodeur qui ne requiert que de l'ordre de 5 Mips.In the embodiment described in what precedes, the 13 kbit / s speech coder requires order 15 million comma instructions per second (Mips) fixed. So we typically do this by programming a commercial digital signal processor (DSP) as well as the decoder which requires only about 5 Mips.
Claims (5)
- Analysis-by-synthesis speech coding method for coding a speech signal digitised into successive frames which are subdivided into sub-frames including a defined number of samples, wherein a linear prediction analysis of the speech signal is performed for each frame in order to determine the coefficients of a short-term synthesis filter (60), and an open-loop analysis is performed for each frame in order to determine a degree of voicing of the frame, and at least one closed-loop analysis is performed for each sub-frame in order to determine an excitation sequence which, submitted to the short-term synthesis filter, produces a synthetic signal representative of the speech signal, each closed-loop analysis using the impulse response of a composite filter consisting of the short-term synthesis filter and of a perceptual weighting filter,
characterised in that, during each closed-loop analysis, said impulse response is used, truncating it to a truncation length (Lh) equal at most to the number (lst) of samples per sub-frame and dependent on the energy distribution of said response and on the degree of voicing of the frame. - Method according to Claim 1, characterised in that the impulse response of the composite filter is calculated over a total length (pst) greater than the number (lst) of samples per sub-frame, in that a minimum length Lα is determined such that the energy of the impulse response calculated by truncating said response to Lα samples is at least equal to a defined fraction (α) of the energy of the impulse response calculated over said total length (pst), and in that the truncation length (Lh) is equal to the sum of said minimum length Lα and a corrector term (Δ(MV)) dependent on the degree of voicing of the frame if said sum is less than the number (lst) of samples per sub-frame.
- Method according to Claim 2, characterised in that said corrector term (Δ(MV)) is an increasing function of the degree of voicing.
- Method according to any one of Claims 1 to 3, characterised in that the perceptual weighting filter has a transfer function of the form W(z) = A(z/γ1)/A(z/γ2) where 1/A(z) designates the transfer function of the short-term synthesis filter and γ1 and γ2 are two coefficients such that 0 < γ2 < γ1 < 1.
- Method according to Claim 4, characterised in that the coefficients of the short-term synthesis filter are represented by line spectrum parameters (LSP), in that said line spectrum parameters are quantified, in that, in order to constitute the short-term synthesis filter to which the excitation sequence relating to at least one sub-frame of a frame is submitted, an interpolation is performed between the line spectrum parameters relating to said frame and those relating to the preceding frame, and in that, in order to calculate the impulse response of the composite filter, the short-term synthesis filter is calculated on the basis of the quantified and interpolated line spectrum parameters, whereas the perceptual weighting filter is calculated on the basis of the interpolated but unquantified line spectrum parameters.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9500135A FR2729247A1 (en) | 1995-01-06 | 1995-01-06 | SYNTHETIC ANALYSIS-SPEECH CODING METHOD |
FR9500135 | 1995-01-06 | ||
PCT/FR1996/000006 WO1996021220A1 (en) | 1995-01-06 | 1996-01-03 | Speech coding method using synthesis analysis |
Publications (2)
Publication Number | Publication Date |
---|---|
EP0801790A1 EP0801790A1 (en) | 1997-10-22 |
EP0801790B1 true EP0801790B1 (en) | 1999-05-12 |
Family
ID=9474932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP96901010A Expired - Lifetime EP0801790B1 (en) | 1995-01-06 | 1996-01-03 | Speech coding method using synthesis analysis |
Country Status (10)
Country | Link |
---|---|
US (1) | US5963898A (en) |
EP (1) | EP0801790B1 (en) |
CN (1) | CN1173938A (en) |
AT (1) | ATE180092T1 (en) |
AU (1) | AU697892B2 (en) |
BR (1) | BR9606887A (en) |
CA (1) | CA2209623A1 (en) |
DE (1) | DE69602421T2 (en) |
FR (1) | FR2729247A1 (en) |
WO (1) | WO1996021220A1 (en) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3134817B2 (en) * | 1997-07-11 | 2001-02-13 | 日本電気株式会社 | Audio encoding / decoding device |
JP3998330B2 (en) * | 1998-06-08 | 2007-10-24 | 沖電気工業株式会社 | Encoder |
US6192335B1 (en) * | 1998-09-01 | 2001-02-20 | Telefonaktieboiaget Lm Ericsson (Publ) | Adaptive combining of multi-mode coding for voiced speech and noise-like signals |
CA2252170A1 (en) | 1998-10-27 | 2000-04-27 | Bruno Bessette | A method and device for high quality coding of wideband speech and audio signals |
FI116992B (en) * | 1999-07-05 | 2006-04-28 | Nokia Corp | Methods, systems, and devices for enhancing audio coding and transmission |
JP3372908B2 (en) * | 1999-09-17 | 2003-02-04 | エヌイーシーマイクロシステム株式会社 | Multipulse search processing method and speech coding apparatus |
GB2357683A (en) | 1999-12-24 | 2001-06-27 | Nokia Mobile Phones Ltd | Voiced/unvoiced determination for speech coding |
US6760698B2 (en) * | 2000-09-15 | 2004-07-06 | Mindspeed Technologies Inc. | System for coding speech information using an adaptive codebook with enhanced variable resolution scheme |
US7171355B1 (en) * | 2000-10-25 | 2007-01-30 | Broadcom Corporation | Method and apparatus for one-stage and two-stage noise feedback coding of speech and audio signals |
FR2820227B1 (en) * | 2001-01-30 | 2003-04-18 | France Telecom | NOISE REDUCTION METHOD AND DEVICE |
FI114770B (en) * | 2001-05-21 | 2004-12-15 | Nokia Corp | Controlling cellular voice data in a cellular system |
US7110942B2 (en) * | 2001-08-14 | 2006-09-19 | Broadcom Corporation | Efficient excitation quantization in a noise feedback coding system using correlation techniques |
US6751587B2 (en) | 2002-01-04 | 2004-06-15 | Broadcom Corporation | Efficient excitation quantization in noise feedback coding with general noise shaping |
US7206740B2 (en) * | 2002-01-04 | 2007-04-17 | Broadcom Corporation | Efficient excitation quantization in noise feedback coding with general noise shaping |
US20030135374A1 (en) * | 2002-01-16 | 2003-07-17 | Hardwick John C. | Speech synthesizer |
US20040098255A1 (en) * | 2002-11-14 | 2004-05-20 | France Telecom | Generalized analysis-by-synthesis speech coding method, and coder implementing such method |
US8473286B2 (en) * | 2004-02-26 | 2013-06-25 | Broadcom Corporation | Noise feedback coding system and method for providing generalized noise shaping within a simple filter structure |
FR2888699A1 (en) * | 2005-07-13 | 2007-01-19 | France Telecom | HIERACHIC ENCODING / DECODING DEVICE |
US8300849B2 (en) * | 2007-11-06 | 2012-10-30 | Microsoft Corporation | Perceptually weighted digital audio level compression |
US9626982B2 (en) * | 2011-02-15 | 2017-04-18 | Voiceage Corporation | Device and method for quantizing the gains of the adaptive and fixed contributions of the excitation in a CELP codec |
ES2701402T3 (en) * | 2012-10-05 | 2019-02-22 | Fraunhofer Ges Forschung | Apparatus for encoding a voice signal using ACELP in the autocorrelation domain |
US9336789B2 (en) * | 2013-02-21 | 2016-05-10 | Qualcomm Incorporated | Systems and methods for determining an interpolation factor set for synthesizing a speech signal |
CN105096958B (en) | 2014-04-29 | 2017-04-12 | 华为技术有限公司 | audio coding method and related device |
EP3483879A1 (en) | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Analysis/synthesis windowing function for modulated lapped transformation |
EP3483884A1 (en) * | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Signal filtering |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL8302985A (en) * | 1983-08-26 | 1985-03-18 | Philips Nv | MULTIPULSE EXCITATION LINEAR PREDICTIVE VOICE CODER. |
CA1223365A (en) * | 1984-02-02 | 1987-06-23 | Shigeru Ono | Method and apparatus for speech coding |
NL8500843A (en) * | 1985-03-22 | 1986-10-16 | Koninkl Philips Electronics Nv | MULTIPULS EXCITATION LINEAR-PREDICTIVE VOICE CODER. |
US4802171A (en) * | 1987-06-04 | 1989-01-31 | Motorola, Inc. | Method for error correction in digitally encoded speech |
US4831624A (en) * | 1987-06-04 | 1989-05-16 | Motorola, Inc. | Error detection method for sub-band coding |
CA1337217C (en) * | 1987-08-28 | 1995-10-03 | Daniel Kenneth Freeman | Speech coding |
US5293448A (en) * | 1989-10-02 | 1994-03-08 | Nippon Telegraph And Telephone Corporation | Speech analysis-synthesis method and apparatus therefor |
SE463691B (en) * | 1989-05-11 | 1991-01-07 | Ericsson Telefon Ab L M | PROCEDURE TO DEPLOY EXCITATION PULSE FOR A LINEAR PREDICTIVE ENCODER (LPC) WORKING ON THE MULTIPULAR PRINCIPLE |
US5060269A (en) * | 1989-05-18 | 1991-10-22 | General Electric Company | Hybrid switched multi-pulse/stochastic speech coding technique |
JP2940005B2 (en) * | 1989-07-20 | 1999-08-25 | 日本電気株式会社 | Audio coding device |
US5097508A (en) * | 1989-08-31 | 1992-03-17 | Codex Corporation | Digital speech coder having improved long term lag parameter determination |
WO1991003790A1 (en) * | 1989-09-01 | 1991-03-21 | Motorola, Inc. | Digital speech coder having improved sub-sample resolution long-term predictor |
ATE177867T1 (en) * | 1989-10-17 | 1999-04-15 | Motorola Inc | DIGITAL SPEECH DECODER USING POST-FILTERING WITH REDUCED SPECTRACT DISTORTION |
US5073940A (en) * | 1989-11-24 | 1991-12-17 | General Electric Company | Method for protecting multi-pulse coders from fading and random pattern bit errors |
US5097507A (en) * | 1989-12-22 | 1992-03-17 | General Electric Company | Fading bit error protection for digital cellular multi-pulse speech coder |
US5265219A (en) * | 1990-06-07 | 1993-11-23 | Motorola, Inc. | Speech encoder using a soft interpolation decision for spectral parameters |
FI98104C (en) * | 1991-05-20 | 1997-04-10 | Nokia Mobile Phones Ltd | Procedures for generating an excitation vector and digital speech encoder |
US5253269A (en) * | 1991-09-05 | 1993-10-12 | Motorola, Inc. | Delta-coded lag information for use in a speech coder |
EP1130576A1 (en) * | 1991-09-05 | 2001-09-05 | Motorola, Inc. | Error protection for multimode speech encoders |
TW224191B (en) * | 1992-01-28 | 1994-05-21 | Qualcomm Inc | |
US5765127A (en) * | 1992-03-18 | 1998-06-09 | Sony Corp | High efficiency encoding method |
US5495555A (en) * | 1992-06-01 | 1996-02-27 | Hughes Aircraft Company | High quality low bit rate celp-based speech codec |
US5317595A (en) * | 1992-06-30 | 1994-05-31 | Nokia Mobile Phones Ltd. | Rapidly adaptable channel equalizer |
JP3343965B2 (en) * | 1992-10-31 | 2002-11-11 | ソニー株式会社 | Voice encoding method and decoding method |
IT1264766B1 (en) * | 1993-04-09 | 1996-10-04 | Sip | VOICE CODER USING PULSE EXCITATION ANALYSIS TECHNIQUES. |
DE69426860T2 (en) * | 1993-12-10 | 2001-07-19 | Nec Corp., Tokio/Tokyo | Speech coder and method for searching codebooks |
FR2720850B1 (en) * | 1994-06-03 | 1996-08-14 | Matra Communication | Linear prediction speech coding method. |
FR2720849B1 (en) * | 1994-06-03 | 1996-08-14 | Matra Communication | Method and device for preprocessing an acoustic signal upstream of a speech coder. |
CA2154911C (en) * | 1994-08-02 | 2001-01-02 | Kazunori Ozawa | Speech coding device |
US5699477A (en) * | 1994-11-09 | 1997-12-16 | Texas Instruments Incorporated | Mixed excitation linear prediction with fractional pitch |
US5751903A (en) * | 1994-12-19 | 1998-05-12 | Hughes Electronics | Low rate multi-mode CELP codec that encodes line SPECTRAL frequencies utilizing an offset |
FR2729245B1 (en) * | 1995-01-06 | 1997-04-11 | Lamblin Claude | LINEAR PREDICTION SPEECH CODING AND EXCITATION BY ALGEBRIC CODES |
US5732389A (en) * | 1995-06-07 | 1998-03-24 | Lucent Technologies Inc. | Voiced/unvoiced classification of speech for excitation codebook selection in celp speech decoding during frame erasures |
JP3680380B2 (en) * | 1995-10-26 | 2005-08-10 | ソニー株式会社 | Speech coding method and apparatus |
FR2742568B1 (en) * | 1995-12-15 | 1998-02-13 | Catherine Quinquis | METHOD OF LINEAR PREDICTION ANALYSIS OF AN AUDIO FREQUENCY SIGNAL, AND METHODS OF ENCODING AND DECODING AN AUDIO FREQUENCY SIGNAL INCLUDING APPLICATION |
US5799271A (en) * | 1996-06-24 | 1998-08-25 | Electronics And Telecommunications Research Institute | Method for reducing pitch search time for vocoder |
-
1995
- 1995-01-06 FR FR9500135A patent/FR2729247A1/en active Granted
-
1996
- 1996-01-03 WO PCT/FR1996/000006 patent/WO1996021220A1/en active IP Right Grant
- 1996-01-03 AT AT96901010T patent/ATE180092T1/en active
- 1996-01-03 BR BR9606887A patent/BR9606887A/en not_active Application Discontinuation
- 1996-01-03 US US08/860,746 patent/US5963898A/en not_active Expired - Lifetime
- 1996-01-03 CN CN96191793A patent/CN1173938A/en active Pending
- 1996-01-03 CA CA002209623A patent/CA2209623A1/en not_active Abandoned
- 1996-01-03 DE DE69602421T patent/DE69602421T2/en not_active Expired - Fee Related
- 1996-01-03 EP EP96901010A patent/EP0801790B1/en not_active Expired - Lifetime
- 1996-01-03 AU AU44903/96A patent/AU697892B2/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
BR9606887A (en) | 1997-10-28 |
CA2209623A1 (en) | 1996-07-11 |
FR2729247A1 (en) | 1996-07-12 |
US5963898A (en) | 1999-10-05 |
AU697892B2 (en) | 1998-10-22 |
DE69602421D1 (en) | 1999-06-17 |
AU4490396A (en) | 1996-07-24 |
FR2729247B1 (en) | 1997-03-07 |
WO1996021220A1 (en) | 1996-07-11 |
DE69602421T2 (en) | 1999-12-23 |
CN1173938A (en) | 1998-02-18 |
ATE180092T1 (en) | 1999-05-15 |
EP0801790A1 (en) | 1997-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0801790B1 (en) | Speech coding method using synthesis analysis | |
EP0801788B1 (en) | Speech coding method using synthesis analysis | |
EP0801789B1 (en) | Speech coding method using synthesis analysis | |
EP0782128B1 (en) | Method of analysing by linear prediction an audio frequency signal, and its application to a method of coding and decoding an audio frequency signal | |
EP1994531B1 (en) | Improved celp coding or decoding of a digital audio signal | |
EP0749626B1 (en) | Speech coding method using linear prediction and algebraic code excitation | |
US8401843B2 (en) | Method and device for coding transition frames in speech signals | |
FR2734389A1 (en) | METHOD FOR ADAPTING THE NOISE MASKING LEVEL IN A SYNTHETIC ANALYSIS ANALYTICAL ENCODER USING A SHORT-TERM PERCEPTUAL WEIGHING FILTER | |
EP1692689B1 (en) | Optimized multiple coding method | |
EP2080194B1 (en) | Attenuation of overvoicing, in particular for generating an excitation at a decoder, in the absence of information | |
EP0490740A1 (en) | Method and apparatus for pitch period determination of the speech signal in very low bitrate vocoders | |
EP0616315A1 (en) | Digital speech coding and decoding device, process for scanning a pseudo-logarithmic LTP codebook and process of LTP analysis | |
FR2880724A1 (en) | OPTIMIZED CODING METHOD AND DEVICE BETWEEN TWO LONG-TERM PREDICTION MODELS | |
WO2002029786A1 (en) | Method and device for segmental coding of an audio signal | |
EP1192618B1 (en) | Audio coding with adaptive liftering | |
EP1192621B1 (en) | Audio encoding with harmonic components | |
EP1194923B1 (en) | Methods and device for audio analysis and synthesis | |
WO2001003118A1 (en) | Audio coding and decoding by interpolation | |
JP2000330594A (en) | Device and method for encoding speech and storage medium recording speech encoding program | |
EP1190414A1 (en) | Encoding and decoding with harmonic components and minimum phase | |
EP1192620A1 (en) | Audio encoding and decoding including non harmonic components of the audio signal | |
WO2013135997A1 (en) | Modifying the spectral characteristics of a linear prediction filter of a digital audio signal represented by the lsf or isf coefficients thereof | |
FR2980620A1 (en) | Method for processing decoded audio frequency signal, e.g. coded voice signal including music, involves performing spectral attenuation of residue, and combining residue and attenuated signal from spectrum of tonal components |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 19970725 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE CH DE GB IT LI LU NL PT SE |
|
GRAG | Despatch of communication of intention to grant |
Free format text: ORIGINAL CODE: EPIDOS AGRA |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: MATRA NORTEL COMMUNICATIONS |
|
17Q | First examination report despatched |
Effective date: 19980826 |
|
GRAG | Despatch of communication of intention to grant |
Free format text: ORIGINAL CODE: EPIDOS AGRA |
|
GRAH | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOS IGRA |
|
GRAH | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOS IGRA |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AT BE CH DE GB IT LI LU NL PT SE |
|
REF | Corresponds to: |
Ref document number: 180092 Country of ref document: AT Date of ref document: 19990515 Kind code of ref document: T |
|
RIN1 | Information on inventor provided before grant (corrected) |
Inventor name: MAUC, MICHEL Inventor name: NAVARRO, WILLIAM |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP |
|
REF | Corresponds to: |
Ref document number: 69602421 Country of ref document: DE Date of ref document: 19990617 |
|
GBT | Gb: translation of ep patent filed (gb section 77(6)(a)/1977) |
Effective date: 19990622 |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: NV Representative=s name: KELLER & PARTNER PATENTANWAELTE AG |
|
REG | Reference to a national code |
Ref country code: PT Ref legal event code: SC4A Free format text: AVAILABILITY OF NATIONAL TRANSLATION Effective date: 19990729 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LU Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20000103 Ref country code: AT Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20000103 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LI Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20000131 Ref country code: CH Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20000131 Ref country code: BE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20000131 |
|
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
26N | No opposition filed | ||
BERE | Be: lapsed |
Owner name: MATRA NORTEL COMMUNICATIONS Effective date: 20000131 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: NL Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20000801 |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: PL |
|
NLV4 | Nl: lapsed or anulled due to non-payment of the annual fee |
Effective date: 20000801 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: SE Payment date: 20001218 Year of fee payment: 6 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: PT Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20010731 |
|
REG | Reference to a national code |
Ref country code: PT Ref legal event code: MM4A Free format text: LAPSE DUE TO NON-PAYMENT OF FEES Effective date: 20010731 |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: IF02 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20020104 |
|
EUG | Se: european patent has lapsed |
Ref document number: 96901010.7 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20040130 Year of fee payment: 9 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IT Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20050103 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20050802 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: PT Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20000103 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20141230 Year of fee payment: 20 |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: PE20 Expiry date: 20160102 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GB Free format text: LAPSE BECAUSE OF EXPIRATION OF PROTECTION Effective date: 20160102 |