EP1192620A1 - Audio encoding and decoding including non harmonic components of the audio signal - Google Patents
Audio encoding and decoding including non harmonic components of the audio signalInfo
- Publication number
- EP1192620A1 EP1192620A1 EP00949622A EP00949622A EP1192620A1 EP 1192620 A1 EP1192620 A1 EP 1192620A1 EP 00949622 A EP00949622 A EP 00949622A EP 00949622 A EP00949622 A EP 00949622A EP 1192620 A1 EP1192620 A1 EP 1192620A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- spectral
- audio signal
- spectrum
- cepstral
- data
- 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.)
- Withdrawn
Links
- 230000005236 sound signal Effects 0.000 title claims abstract description 75
- 230000003595 spectral effect Effects 0.000 claims abstract description 101
- 238000001228 spectrum Methods 0.000 claims abstract description 76
- 238000000034 method Methods 0.000 claims abstract description 55
- 239000013598 vector Substances 0.000 claims description 73
- 238000013139 quantization Methods 0.000 claims description 41
- 230000015572 biosynthetic process Effects 0.000 claims description 21
- 230000009466 transformation Effects 0.000 claims description 15
- 238000011002 quantification Methods 0.000 claims description 13
- 230000006835 compression Effects 0.000 claims description 11
- 238000007906 compression Methods 0.000 claims description 11
- 238000012886 linear function Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 7
- 230000001419 dependent effect Effects 0.000 claims description 5
- 230000001131 transforming effect Effects 0.000 claims 6
- 101100459912 Caenorhabditis elegans ncs-1 gene Proteins 0.000 claims 3
- 230000003247 decreasing effect Effects 0.000 claims 2
- 238000011084 recovery Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 22
- 238000004458 analytical method Methods 0.000 description 21
- 238000003786 synthesis reaction Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 230000006837 decompression Effects 0.000 description 8
- 238000000605 extraction Methods 0.000 description 8
- 238000010606 normalization Methods 0.000 description 7
- 230000002123 temporal effect Effects 0.000 description 7
- 230000006978 adaptation Effects 0.000 description 6
- 238000009499 grossing Methods 0.000 description 6
- 102100032077 Neuronal calcium sensor 1 Human genes 0.000 description 5
- 101710133725 Neuronal calcium sensor 1 Proteins 0.000 description 5
- 150000001875 compounds Chemical class 0.000 description 5
- 238000002156 mixing Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000000873 masking effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000001308 synthesis method Methods 0.000 description 3
- 101100129500 Caenorhabditis elegans max-2 gene Proteins 0.000 description 2
- 238000004873 anchoring Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000006185 dispersion Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 101100083446 Danio rerio plekhh1 gene Proteins 0.000 description 1
- 102100026144 Transferrin receptor protein 1 Human genes 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000005311 autocorrelation function Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 210000004704 glottis Anatomy 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 206010027175 memory impairment Diseases 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000010183 spectrum analysis Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
- 230000002087 whitening effect Effects 0.000 description 1
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/02—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 spectral analysis, e.g. transform vocoders or subband vocoders
Definitions
- the present invention relates to the field of coding of audio signals. It applies in particular, but not exclusively, to speech coding, in narrow band or in wide band, in various ranges of coding bit rates.
- the design of an audio codec mainly aims to provide a good compromise between the bit rate of the stream transmitted by the coder and the quality of the audio signal which the decoder is capable of reconstructing from this stream.
- the coder estimates a fundamental frequency of the signal, representing its pitch
- the spectral analysis consists determining parameters representing the harmonic structure of the signal at frequencies which are integer multiples of this fundamental frequency.
- a modeling of the non-harmonic, or non-voiced component can also be carried out in the spectral domain.
- the parameters transmitted to the decoder typically represent the modulus of the spectrum of the voiced and unvoiced components. Added to this is information representing either voiced / unvoiced decisions relating to different portions of the spectrum, or information on the probability of voicing of the signal, allowing the decoder to determine in which portions of the spectrum it must use the voiced component. or the unvoiced component.
- coder families include MBE type coders
- An object of the present invention is to allow, in a coding scheme with analysis in the spectral domain, a coding of the non-harmonic or unvoiced component which presents a good compromise between the quality of representation of this component over the range of the spectrum and the required bit rate.
- Another aim is to propose a modeling of the non-harmonic component which is homogeneous with that of the harmonic component, thus allowing an adequate mixing of the harmonic and non-harmonic components.
- the invention thus proposes a method for coding an audio signal, in which a fundamental frequency of the audio signal is estimated, a spectrum of the audio signal is determined by a transform in the frequency domain of a frame of the audio signal, and includes in a digital output stream data representative of spectral amplitudes associated with at least some of the frequencies of the spectrum.
- the data included in the digital output stream comprises data for coding a non-harmonic component of the audio signal, comprising data representative of spectral amplitudes associated with frequencies located in regions of the intermediate spectrum with respect to the multiple frequencies of the estimated fundamental frequency.
- Another aspect of the present invention relates to a method for decoding an input digital stream representing an encoded audio signal, in which a spectral estimate of a component is generated over the spectrum of the audio signal.
- harmonic of the audio signal on the basis of first coding data included in the digital input stream, a spectral estimate of a non-harmonic component of the audio signal is generated over the spectrum of the audio signal based on second coding data included in the digital input stream, and combining the spectral estimates of the harmonic and non-harmonic components to form an overall spectral estimate which is transformed in the time domain to produce a decoded version of the audio signal.
- the invention also provides an audio coder and decoder comprising means for implementing the above methods.
- FIG. 1 is a block diagram of an audio coder according to invention
- Figures 2 and 3 are diagrams illustrating the formation of audio signal frames in the encoder of Figure 1;
- FIGS. 4 and 5 are graphs showing an example of the audio signal spectrum and illustrating the extraction of the upper and lower envelopes of this spectrum;
- FIG. 6 is a block diagram of an example of quantization means usable in the encoder of Figure 1;
- FIG. 7 is a block diagram of means used to extract parameters relating to the phase of the non-harmonic component in a variant of the encoder of Figure 1;
- FIG. 8 is a block diagram of an audio decoder corresponding to the encoder of Figure 1;
- FIG. 9 is a flow diagram of an example of a procedure for smoothing spectral coefficients and extracting minimum phases implemented in the decoder of FIG. 8;
- FIG. 10 is a block diagram of analysis and spectral mixing modules of harmonic and non-harmonic components of the audio signal
- FIGS. 14 and 15 are diagrams illustrating one way of proceeding to the temporal synthesis of the signal frames in the decoder of FIG. 8; - Figures 16 and 17 are graphs showing windowing functions usable in the synthesis of the frames according to Figures 14 and 15;
- FIGS. 18 and 19 are block diagrams of interpolation means usable in an alternative embodiment of the coder and the decoder;
- FIG. 20 is a block diagram of interpolation means usable in another alternative embodiment of the encoder.
- FIGS. 21 and 22 are diagrams illustrating another way of proceeding with the temporal synthesis of the signal frames in the decoder of FIG. 8, using an interpolation of parameters.
- the coder and the decoder described below are digital circuits which can, as is usual in the field of audio signal processing, be produced by programming a digital signal processor (DSP) or an integrated circuit d specific application (ASIC).
- DSP digital signal processor
- ASIC integrated circuit d specific application
- the audio coder represented in FIG. 1 processes an input audio signal x which, in the nonlimiting example considered below, is a signal of word.
- the signal x is available in digital form, for example at a sampling frequency F e of 8 kHz. It is for example delivered by an analog-digital converter processing the amplified output signal of a microphone.
- the input signal x can also be formed from another version, analog or digital, coded or not, of the speech signal.
- the encoder comprises a module 1 which forms successive audio signal frames for the different treatments carried out, and an output multiplexer 6 which delivers an output stream ⁇ containing for each frame sets of quantization parameters from which a decoder will be capable. synthesize a decoded version of the audio signal.
- N 256
- the module 1 multiplies the samples of each frame 2 by a windowing function f A , preferably chosen for its good spectral properties.
- the coder in FIG. 1 analyzes the audio signal in the spectral domain. It includes a module 3 which calculates the fast Fourier transform (TFR) of each signal frame.
- TFR fast Fourier transform
- the TFR 3 module obtains the signal spectrum for each frame, the module and phase of which are respectively denoted
- a fundamental frequency detector 4 estimates for each signal frame a value of the fundamental frequency F 0 .
- the detector 4 can apply any known method of analysis of the speech signal of the frame to estimate the fundamental frequency F 0 , for example a method based on the autocorrelation function or the AMDF function, possibly preceded by a whitening module. by linear prediction.
- the estimation can also be performed in the spectral domain or in the cepstral domain.
- Another possibility is to evaluate the time intervals between the consecutive breaks in the speech signal attributable to closures of the glottis of the intervening speaker during the duration of the frame.
- Well-known methods which can be used to detect such micro-ruptures are described in the following articles: M.
- the estimated fundamental frequency F 0 is subject to quantification, for example scalar, by a module 5, which supplies the output multiplexer 6 with an index iF for quantizing the fundamental frequency for each frame of the signal.
- the encoder uses cepstral parametric models to represent an upper envelope and a lower envelope of the spectrum of the audio signal.
- the first step of the cepstral transformation consists in applying to the signal spectrum module a spectral compression function, which can be a logarithmic or root function.
- the coder module 8 thus operates, for each value X (i) of the signal spectrum (0 ⁇ i ⁇ N), the following transformation:
- ⁇ being an exponent between 0 and 1.
- the compressed spectrum LX of the audio signal is processed by a module 9 which extracts spectral amplitudes associated with the harmonics of the signal corresponding to the multiples of the estimated fundamental frequency F0. These amplitudes are then interpolated by a module 10 in order to obtain a compressed upper envelope denoted LX_sup.
- the spectral compression could be carried out in an equivalent manner after the determination of the amplitudes associated with the harmonics. It could also be done after interpolation, which would only change the form of the interpolation functions.
- the maxima extraction module 9 takes account of the possible variation of the fundamental frequency on the analysis frame, of the errors that the detector 4 can make, as well as of the inaccuracies linked to the discrete nature of the frequency sampling. For this, the search for the amplitudes of the spectral peaks does not simply consist in taking the values LX (i) corresponding to the indices i such that iF e / 2N is the frequency closest to a harmonic of frequency kF 0 (k> 1 ).
- the spectral amplitude retained for a harmonic of order k is a local maximum of the modulus of the spectrum in the vicinity of the frequency kF 0 (this amplitude is obtained directly in compressed form when the spectral compression 8 is carried out before the extraction of the maxima 9).
- FIGS. 4 and 5 show an example of the shape of the compressed spectrum LX, where it can be seen that the maximum amplitudes of the harmonic peaks do not necessarily coincide with the amplitudes corresponding to the integer multiples of the estimated fundamental frequency F 0 .
- the sides of the peaks being quite steep, a small positioning error of the fundamental frequency F 0 , amplified by the harmonic index k, can strongly distort the estimated upper envelope of the spectrum and cause poor modeling of the formantic structure of the signal.
- the interpolation is carried out between points whose abscissa is the frequency corresponding to the maximum of the amplitude of a spectral peak, and whose ordinate is this maximum, before or after compression.
- the interpolation performed to calculate the upper envelope LX_sup is a simple linear interpolation.
- another form of interpolation could be used (for example polynomial or spline).
- the interpolation is carried out between points whose abscissa is a frequency kF 0 multiple of the fundamental frequency (in fact the closest frequency in the discrete spectrum) and whose ordinate is the maximum amplitude, before or after compression, of the spectrum in the vicinity of this multiple frequency.
- the maximum amplitude search interval associated with a harmonic of rank k is centered on the index i of the frequency of the highest TFR
- This search interval depends on the sampling frequency F e , the size 2N of the TFR and the range of possible variation of the fundamental frequency. This width is typically of the order of ten frequencies with the examples of values previously considered. It can be made adjustable as a function of the value F 0 of the fundamental frequency and of the number k of the harmonic.
- a non-linear distortion of the frequency scale is operated on the upper envelope compressed by a module 12 before the module 13 performs the inverse fast Fourier transform (TFRI) providing the cepstral coefficients cx_sup.
- TFRI inverse fast Fourier transform
- the non-linear distortion makes it possible to minimize the modeling error more effectively. It is for example carried out according to a Mel or Bark type frequency scale. This distortion may possibly depend on the estimated fundamental frequency F 0 .
- Figure 1 illustrates the case of the Mel scale. The relationship between the frequencies F of the linear spectrum, expressed in hertz, and the frequencies F 'of the Mel scale is as follows: c , 1000. (. F ⁇
- NCS can be equal to 16.
- a post-filtering in the cepstral domain is applied by a module 15 to the compressed upper envelope LX_sup.
- This post-liftrage corresponds to a manipulation of the cepstral coefficients cx_sup delivered by the module of TRFI 13, which corresponds approximately to a post-filtering of the harmonic part of the signal by a transfer function having the classical form:
- a (z) is the transfer function of a linear prediction filter of the audio signal
- ⁇ 1 and ⁇ 2 are coefficients between 0 and 1
- ⁇ is a possibly zero pre-emphasis coefficient.
- a normalization module 16 further modifies the cepstral coefficients by imposing the exact modeling constraint of a point on the initial spectrum, which is preferably the most energetic point among the spectral maxima extracted by the module 9 In practice, this normalization only modifies the value of the coefficient c p (0).
- the normalization module 16 operates as follows: it recalculates a value of the synthesized spectrum at the frequency of the maximum indicated by the module 9, by Fourier transform of the truncated and post-liftral cepstral coefficients, taking into account the non-distortion linear of the frequency axis; it determines a normalization gain g N by the logarithmic difference between the value of the maximum provided by the module 9 and this recalculated value; and he adds the gain g N to the post-raised cepstral coefficient Cp (0). This normalization can be seen as part of post-liftrage.
- Post-lifter and standardized cepstral coefficients are subject to a quantization by a module 18 which transmits corresponding quantization indexes icxs to the output multiplexer 6 of the coder.
- the module 18 can operate by vector quantization from cepstral vectors formed from post-liftred and normalized coefficients, denoted here cx [n] for the signal frame of rank n.
- cx [n] 16 cepstral coefficients cx [n, 0], cx [n, 1], ..., cx [n, NCS-1] is distributed in four sub - cepstral vectors each containing four coefficients of consecutive orders.
- the cepstral vector cx [n] can be processed by the means shown in Figure 6, part of the quantization module 18.
- rcx_q [n-1] denotes the quantized residual vector for the frame of rank n-1, whose components are respectively noted rcx_q [n, 0], rcx_q [n, 1], ... , rcx_q [n, NCS-1].
- the numerator of the relation (10) is obtained by a subtractor 20, whose components of the output vector are divided by the quantities 2- ⁇ (i) at 21.
- the residual vector rcx [n] is subdivided into four sub-vectors, corresponding to the subdivision into four cepstral sub-vectors.
- the unit 22 proceeds to the vector quantization of each sub-vector of the residual vector rcx [n]. This quantification can consist, for each sub-vector srcx [n], in selecting from the dictionary the quantized sub-vector srcx_q [n] which minimizes the quadratic error
- Unit 22 also delivers the values of the residual sub-vectors which form the vector rcx_q [n]. This is delayed by a frame at 23, and its components are multiplied by the coefficients ⁇ (i) at 24 to supply the vector to the negative input of subtractor 20. This latter vector is also supplied to a adder 25, the other input of which receives a vector formed by the components of the quantized residue rcx_q [n] respectively multiplied by the quantities 1- ⁇ (i) at 26. The adder 25 thus delivers the quantized cepstral vector cx_q [n] that will recover the decoder.
- the prediction coefficient ⁇ (i) can be optimized separately for each of the cepstral coefficients.
- the quantization dictionaries can also be optimized separately for each of four cepstral sub-vectors.
- the above scheme for quantifying cepstral coefficients may only be applied for some of the frames. For example, it is possible to provide a second quantization mode as well as a selection process of that of the two modes which minimizes a criterion of least squares with the cepstral coefficients to be quantified, and transmit with the quantization indexes of the frame a bit indicating which of the two modes has been selected.
- the adaptation module 29 controls the post-lifter 15 so as to minimize a module difference between the spectrum of the audio signal and the corresponding module values calculated at 28.
- This module difference can be expressed by a sum of absolute values of amplitude differences, compressed or not, corresponding to one or more of the frequencies harmonics. This sum can be weighted according to the spectral amplitudes associated with these frequencies.
- the modulus difference taken into account in the adaptation of the post-liftring would take into account all the harmonics of the spectrum.
- the module 28 can resynthesize the spectral amplitudes only for one or more frequencies multiple of the fundamental frequency F 0 , selected on the basis of the size of the spectrum module in absolute value .
- the adaptation module 29 can for example consider the three most intense spectral peaks in the calculation of the module deviation to be minimized.
- the adaptation module 29 estimates a spectral masking curve of the audio signal by means of a psychoacoustic model, and the frequencies taken into account in the calculation of the module deviation to be minimized are selected on the basis the importance of the spectrum module relative to the masking curve (for example, we can take the three frequencies for which the spectrum module exceeds the masking curve the most).
- Different conventional methods can be used to calculate the masking curve from the audio signal.
- the module 29 can use a filter identification model.
- a simpler method consists in predefining a set of post-liftring parameter sets, i.e. a set of couples ⁇ - ) , ⁇ 2 in the case of a post-liftring according to relations (8) , to carry out the operations incumbent on the modules 15, 16, 18 and 28 for each of these sets of parameters, and to retain that of the sets of parameters which leads to the minimum module deviation between the signal spectrum and the recalculated values.
- the quantization indexes provided by the module 18 are then those which relate to the best set of parameters.
- the coder determines coefficients cx_inf representing a compressed lower envelope LX_inf.
- a module 30 extracts from the compressed spectrum LX spectral amplitudes associated with frequencies located in zones of the intermediate spectrum with respect to the multiple frequencies of the estimated fundamental frequency F 0 .
- F 0 simply corresponds to the modulus of the spectrum for the frequency (k + 1/2) .F 0 located in the middle of the interval separating the two harmonics. In another embodiment, this amplitude could be an average of the spectrum modulus over a small range surrounding this frequency (k + 1/2) .F 0 .
- a module 31 proceeds to an interpolation, for example linear, of the spectral amplitudes associated with the frequencies located in the intermediate zones to obtain the compressed lower envelope LX_inf.
- the cepstral transformation applied to this compressed lower envelope LX_inf is carried out according to a frequency scale resulting from a non-linear distortion applied by a module 32.
- the TFRI module 33 calculates a cepstral vector of NCI cepstral coefficients cx_inf of orders 0 to NCI-1 representing the lower envelope.
- the non-linear transformation of the frequency scale for the cepstral transformation of the lower envelope can be carried out towards a finer scale at high frequencies than at low frequencies, which advantageously makes it possible to model well the non-voiced components of the signal at high frequencies.
- module 32 it may be preferable to adopt in module 32 the same scale as in module 12 (Mel in the example considered).
- the cepstral coefficients cx_inf representing the compressed lower envelope are quantified by a module 34, which can operate in the same way as the module 18 for quantifying the cepstral coefficients representing the compressed upper envelope.
- the vector thus formed is subjected to a vector quantization of prediction residue, carried out by means identical to those represented in FIG. 6 but without subdivision into sub-vectors.
- the coder shown in FIG. 1 does not include any particular device for coding the phases of the spectrum with the harmonics of the audio signal.
- it includes means 36-40 for coding temporal information linked to the phase of the non-harmonic component represented by the lower envelope.
- a spectral decompression module 36 and a TFRI module 37 form a temporal estimate of the frame of the non-harmonic component.
- the module 36 applies a reciprocal decompression function of the compression function applied by the module 8 (that is to say an exponential or a power 1 / ⁇ function) to the compressed lower envelope LX_inf produced by the module interpolation 31. This provides the modulus of the estimated frame of the non-harmonic component, the phase of which is taken to be equal to that ⁇ ⁇ of the spectrum of the signal X over the frame.
- the inverse Fourier transform performed by the module 37 provides the estimated frame of the non-harmonic component.
- the module 38 subdivides this estimated frame of the non-harmonic component into several time segments.
- the module 38 calculates the energy equal to the sum of the squares of the samples, and forms a vector E1 formed by eight positive real components equal to the eight calculated energies.
- the largest of these eight energies, denoted EM, is also determined to be supplied, with the vector E1, to a normalization module 39.
- the latter divides each component of the vector E1 by EM, so that the normalized vector Emix is formed of eight components between 0 and 1. It is this normalized vector Emix, or weighting vector, which is subject to quantization by module 40. This can perform vector quantization with a dictionary determined during a prior learning.
- the quantization index iEm is supplied by the module 40 to the output multiplexer 6 of the coder.
- FIG. 7 shows an alternative embodiment of the means used by the coder of FIG. 1 to determine the vector Emix of energy weighting of the frame of the non-harmonic component.
- the spectral decompression and TFRI modules 36, 37 operate like those which have the same references in FIG. 1.
- a selection module 42 is added to determine the value of the module of the spectrum subjected to the inverse Fourier transform 37. On the based on the estimated fundamental frequency F 0 , the module 42 identifies harmonic regions and non-harmonic regions of the spectrum of the audio signal.
- a frequency will be considered to belong to a harmonic region if it is in a frequency interval centered on a harmonic kF 0 and of width corresponding to a width of spectral line synthesized, and to a non-harmonic region otherwise.
- the complex signal subjected to TFRI 37 is equal to the value of the spectrum, that is to say that its modulus and its phase correspond to the values
- this complex signal has the same phase ⁇ ⁇ as the spectrum and a module given by the lower envelope after spectral decompression 36. This procedure according to FIG. 7 provides more precise modeling of non-harmonic regions.
- modules 46-49 include quantization dictionaries similar to those of modules 5, 18, 34 and 40 of FIG. 1, in order to restore the values of the quantized parameters.
- the modules 47 and 48 have dictionaries to form the quantized prediction residues rcx_q [n], and they deduce therefrom the quantified cepstral vectors cx_q [n] with elements identical to the elements 23-26 of FIG. 6. These quantified cepstral vectors cx_q [n] provide the cepstral coefficients cx_sup_q and cx_inf_q processed by the decoder.
- a module 51 calculates the fast Fourier transform of the coefficients cepstraux cx_sup for each signal frame.
- the frequency spectrum of the resulting compressed spectrum is modified non-linearly by a module 52 applying the reciprocal non-linear transformation to that of module 12 in FIG. 1, and which provides the estimate LX_sup of the compressed upper envelope .
- a spectral decompression of LX_sup operated by a module 53, provides the upper envelope X_sup comprising the estimated values of the module of the spectrum at frequencies multiple of the fundamental frequency F 0 .
- the module 54 synthesizes the spectral estimate X v of the harmonic component of the audio signal, by a sum of spectral lines centered on the frequencies multiple of the fundamental frequency F 0 and whose amplitudes (in module) are those given by the envelope superior X_sup.
- the decoder in FIG. 8 is capable of extracting information on this phase from cepstral coefficients cx_sup_q representing the compressed upper envelope. This phase information is used to assign a phase ⁇ (k) to each of the spectral lines determined by the module 54 in the estimation of the harmonic component of the signal.
- the speech signal can be considered to be at minimum phase.
- the minimum phase information can easily be deduced from a cepstral modeling. This minimum phase information is therefore calculated for each harmonic frequency.
- the minimum phase assumption means that the energy of the synthesized signal is localized at the start of each period of the fundamental frequency F 0 .
- This post-liftrage is for example of the form (8).
- module 56 deduces post-liftrated cepstral coefficients and smoothed the minimum phase assigned to each spectral line representing a harmonic peak of spectrum.
- the operations performed by the modules 56, 57 for smoothing and extracting the minimum phase are illustrated by the flowchart in FIG. 9.
- the module 56 examines the variations of the cepstral coefficients in order to apply a lesser smoothing in the presence of sudden variations only in the presence of slow variations. For this, it performs the smoothing of the cepstral coefficients by means of a forgetting factor ⁇ c chosen as a function of a comparison between a threshold d th and a distance d between two successive sets of post-liftrated cepstral coefficients.
- the threshold d th is itself adapted as a function of the variations of the cepstral coefficients.
- the first step 60 consists in calculating the distance d between the two successive vectors relating to the frames n-1 and n. These vectors, denoted here cxp [ ⁇ -1] and cxp [n], correspond for each frame to all the NCS post-liftral cepstral coefficients representing the compressed upper envelope.
- the distance used can in particular be the Euclidean distance between the two vectors or even a quadratic distance.
- Two smoothings are first carried out, respectively by means of forgetting factors ⁇ min and ⁇ ma ⁇ , to determine a minimum distance d mjn and a maximum distance d ma ⁇ .
- the forgetting factors ⁇ min and ⁇ max are themselves selected from two distinct values, respectively ⁇ mjn1 , ⁇ min2 and maxi ' ⁇ max2 between 0 and 1, the indices ⁇ mjn1 , ⁇ max1 each being substantially closer to 0 than the indices ⁇ mjn2 , ⁇ ma ⁇ 2 . If d> d mjn (test 61), the forget factor ⁇ mjn is equal to ⁇ min1 (step 62); otherwise it is taken equal to ⁇ min2 (step 63).
- step 64 the minimum distance d mjn is taken equal to ⁇ min d min + ( 1 - ⁇ min) If d> d max ( test 65 )> the forgetfulness of forgetting ⁇ max is equal to ⁇ ma ⁇ 1 (step 66); otherwise it is taken equal to ⁇ max2 (step 67).
- step 68 the minimum distance d max is taken equal to ⁇ ma ⁇ .d ma ⁇ + (1- ⁇ max ) .d.
- step 72 we adopt for the forget factor ⁇ c a value ⁇ c1 relatively close to 0 (step 72).
- the corresponding signal is considered to be of the non-stationary type, so that there is no need to keep a large memory of the previous cepstral coefficients.
- step 73 we adopt for the forget factor ⁇ c a value ⁇ c2 less close to 0 in order to further smooth the cepstral coefficients.
- the module 57 then calculates the minimum phases ⁇ (k) associated with the harmonics kF 0 - In known manner, the minimum phase for a harmonic of order k is given by:
- step 75 the harmonic index k is initialized to 1.
- the phase ⁇ (k) and the cepstral index m are initialized respectively at 0 and 1 in step 76.
- the module 57 adds to phase ⁇ (k) the quantity -2.cxl [n, m] .sin (2 ⁇ mk.F 0 / F e ).
- the cepstral index m is incremented in step 78 and compared to NCS in step 79. Steps 77 and 78 are repeated as long as m ⁇ NCS.
- m NCS
- the calculation of the minimum phase is completed for the harmonic k, and the index k is incremented in step 80.
- the calculation of minimum phases 76-79 is repeated for the following harmonic as long as kF 0 ⁇ F e / 2 (test 81).
- the module 54 takes account of a constant phase over the width of each spectral line, equal to the minimum phase ⁇ (k) supplied for the corresponding harmonic k by the module 57.
- the estimate X v of the harmonic component is synthesized by summing spectral lines positioned at the harmonic frequencies of the fundamental frequency F 0 .
- the spectral lines can be positioned on the frequency axis with a resolution greater than the resolution of the Fourier transform. For that, one precalculates once and for all a spectral line of reference according to the higher resolution. This calculation can consist of a Fourier transform of the analysis window f with a transform size of 16384 points, providing a resolution of 0.5 Hz per point.
- each harmonic line is then carried out by the module 54 by positioning on the frequency axis the reference line at high resolution, and by sub-sampling this spectral line of reference to reduce to the resolution of 16.625 Hz of the Fourier transform on 512 points. This allows to precisely position the spectral line.
- the TFR module 85 of the decoder of FIG. 8 receives the NCI quantified cepstral coefficients cx_inf_q of orders 0 to NCI - 1, and it advantageously supplements them by the NCS - NCI cepstral coefficients cx_sup_q d NCI to NCS order - 1 representing the upper envelope. Indeed, it can be estimated as a first approximation that the rapid variations of the compressed lower envelope are well reproduced by those of the compressed upper envelope. In another embodiment, the TFR 85 module could only consider the NCI cepstraux parameters cx_inf_q.
- the module 86 converts the frequency scale reciprocally from the conversion operated by the module 32 of the coder, in order to restore the estimate LX_inf of the compressed lower envelope, subjected to the spectral decompression module 87.
- the decoder has a lower envelope X_inf comprising the values of the spectrum module in the valleys located between the harmonic peaks.
- This envelope X_inf will modulate the spectrum of a noise frame whose phase is treated as a function of the quantized weighting vector Emix extracted by the module 49.
- a generator 88 delivers a normalized noise frame whose segments of 4 ms are weighted in a module 89 in accordance with the normalized components of the Emix vector supplied by the module 49 for the current frame.
- This noise is a high-pass filtered white noise to take account of the low level which in principle the unvoiced component has at low frequencies.
- the Fourier transform of the resulting frame is calculated by the TFR module 91.
- the spectral estimate X uv of the non-harmonic component is determined by the spectral synthesis module 92 which performs frequency-by-frequency weighting. This weighting consists in multiplying each complex spectral value supplied by the TFR module 91 by the value of the lower envelope X_inf obtained for the same frequency by the spectral decompression module 87.
- a mixing module 95 controlled by a module 96 for analyzing the degree of harmony (or voicing) of the signal .
- the analysis module 96 comprises a unit 97 for estimating a degree of voicing W dependent on the frequency, from which four gains dependent on are calculated.
- the frequency namely two gains g v , g uv controlling the relative importance of the harmonic and non-harmonic components in the synthesized signal, and two gains g v g uv used to noise the phase of the harmonic component.
- the degree of voicing W (i) is a continuously variable value between 0 and 1 determined for each frequency index i (0 ⁇ i ⁇ N) as a function of the upper envelope X_sup (i) and the lower envelope X_inf (i) obtained for this frequency i by the decompression modules 53, 87.
- the degree of voicing W (i) is estimated by the unit 97 for each frequency index i corresponding to a harmonic of the fundamental frequency F 0 ,
- the threshold Vth (F 0 ) corresponds to the average dynamics calculated on a synthetic spectrum purely voiced at the fundamental frequency. It is advantageously chosen depending on the fundamental frequency F 0 .
- the degree of voicing W (i) for a frequency other than the harmonic frequencies is obtained simply as being equal to that estimated for the nearest harmonic.
- the gain g v (i), which depends on the frequency, is obtained by applying a non-linear function to the degree of voicing W (i) (block 98).
- phase ⁇ v of the mixed harmonic component is the result of a linear combination of the phases ⁇ v , ⁇ uv of the harmonic and non-harmonic components X y , X uv synthesized by the modules 54, 92.
- the gains g v g uv respectively applied to these phases are calculated from the degree of voicing W and also weighted as a function of the frequency index i, since the sound effects of the phase are only really useful beyond a certain frequency.
- a first gain g v1 is calculated by applying a non-linear function to the degree of voicing W (i), as shown diagrammatically by block 100 in FIG. 10.
- This non-linear function can have the form represented in FIG. 12:
- a multiplier 101 multiplies for each index frequency i the gain g v1 by another gain g v2 depending only on the frequency index i, to form the gain g v (i).
- g v2 _ ⁇ (i) G2 if i2 ⁇ i ⁇ 1 the indices il and i2 being such that 0 ⁇ il ⁇ i2 ⁇ N, and the minimum gain G2 being between 0 and 1.
- the complex spectrum Y of the synthesized signal is produced by the mixing module 95, which realizes the following mixing relation, for 0 ⁇ i ⁇ N:
- Y (i) g v (') -
- - exp [i ⁇ v (0] + 9uv (') - X uv (') ⁇ 17 ) with ⁇ ' v (i) g v _ ⁇ (i). ⁇ v (i) + g uv _ ⁇ (i). ⁇ uv (i) (18) where ⁇ v (i) denotes the argument of the complex number X v (i) supplied by the module 54 for the frequency of index i (block 104 of figure 10), and ⁇ uv (i) denotes the argument of the complex number X uv (i) supplied by the module 92 (block 105 of FIG. 10). This combination is carried out by the multipliers 106-110 and the adders 111-112 shown in FIG. 10.
- the frames successively obtained in this way are finally processed by the time synthesis module 116 which forms the decoded audio signal x.
- the time synthesis module 116 performs an overlap sum of frames modified with respect to those successively evaluated at the output of module 115.
- the modification can be seen in two stages illustrated respectively in FIGS. 14 and 15.
- the first step (FIG. 14) consists in multiplying each frame 2 ′ delivered by the TFRI module 115 by a window 1 / f A opposite to the analysis window f A used by the module 1 of the coder. Frame samples
- each sample of the decoded audio signal x thus obtained is assigned a uniform overall weight, equal to A.
- This overall weight comes from the contribution of a single frame if the sample has in this frame a rank i such that L ⁇ i ⁇ N - L, and includes the summed contributions of two successive frames if 0 ⁇ i ⁇ L where N - L ⁇ i ⁇ N. It is thus possible to perform the time synthesis in a simple manner even if, as in the case considered, the overlap L between two successive frames is smaller than half the size N of these frames.
- FIG. 16 shows the appearance of the compound window f c in the case where the analysis window f A is a Hamming window and the synthesis window f s has the form given by the relations (19) to (21) .
- the coder in FIG. 1 can increase the rate of formation and analysis of the frames, in order to transmit more quantization parameters to the decoder.
- a frame of N 256 samples (32 ms) is formed every 20 ms.
- the frames for which an interpolation is carried out can be those of rank half-integer n + 1/2 which are offset by 10 ms relative to the frames of the subset.
- the notations cx_q [n-1] and cX- ⁇ l 1 " 1 ] designate quantized cepstral vectors determined, for two successive frames of whole rank, by the quantization module 18 and / or by the quantization module 34. These vectors include, for example, four consecutive cepstral coefficients each, and could also include more cepstral coefficients.
- a module 120 performs an interpolation of these two cepstral vectors cx_q [n-1] and cx_q [n], in order to estimate an intermediate value cx_i [n-1/2].
- the interpolation performed by the module 120 can be a simple arithmetic mean of the vectors cx_q [n-1] and cx_q [n].
- the module 120 could apply a more sophisticated interpolation formula, for example polynomial, also based on the cepstral vectors obtained for frames prior to frame n-1.
- the interpolation takes account of the relative position of each interpolated frame.
- the coder uses the means described above to calculate the cepstral coefficients cx [n-1/2] relating to the frame of half-integer rank.
- these cepstral coefficients are those provided by the module of TFR1 13 after post-liftrage 15 (for example with the same post-liftrage coefficients as for the previous frame n-1) and normalization 16.
- the cepstral coefficients cx [n-1/2] are those delivered by the TFRI module 33.
- a subtractor 121 forms the difference ecx [n-1/2] between the cepstral coefficients cx [n-1/2] calculated for the half-integer row frame and the coefficients cx_i [n-1/2] estimated by interpolation.
- This difference is supplied to a quantization module 122 which addresses quantization indices icx [n-1/2] to the output multiplexer 6 of the coder.
- the module 122 operates for example by vector quantization of the ecx interpolation errors [n-1/2] successively determined for the half-integer rank frames.
- This quantization of the interpolation error can be carried out by the coder for each of the NCS + NCI cepstral coefficients used by the decoder, or only for some of them, typically those of the smallest orders.
- the corresponding means of the decoder are illustrated in FIG. 19.
- the decoder functions essentially like that described with reference to FIG. 8 to determine the signal frames of whole rank.
- An interpolation module 124 identical to the module 120 of the coder estimates the intermediate coefficients cx_i [n-1/2] from the quantized coefficients cx_q [n-1] and cX-ClM supplied by module 47 and / or module 48 from the indexes icxs, icxi extracted from the flow ⁇ .
- a parameter extraction module 125 receives the quantization index icx [n-1/2] from the input demultiplexer 45 of the decoder, and deduces therefrom the quantized interpolation error ecx_q [n-1/2] from the same quantization dictionary as that used by the module 122 of the coder.
- An adder 126 sums the cepstral vectors cx_i [n-1/2] and ecx_q [n-1/2] in order to provide the cepstral coefficients cx [n-1/2] which will be used by the decoder (modules 51 - 57, 95, 96, 115 and / or modules 85-87, 92, 95, 96, 115) to form the interpolated frame of rank n-1/2. If only some of the cepstral coefficients have been the subject of an interpolation error quantification, the others are determined by the decoder by a simple interpolation, without correction.
- the decoder can also interpolate the other parameters F 0 , Emix used to synthesize the signal frames.
- the fundamental frequency F 0 can be interpolated linearly, either in the time domain, or (preferably) directly in the frequency domain.
- the interpolation should be carried out after denormalization and of course taking account of the time offsets between frames.
- the coder uses the cepstral vectors cx_q [n], cx_q [n-1], ..., cx_q [nr] and cx_q [n-1/2] calculated for the last frames passed (r> 1) to identify an optimal interpolator filter which, when subject to the quantized cepstral vectors cx_q [nr], ..., cx_q [n] relating to frames of whole rank, delivers an interpolated cepstral vector cx_i [n -1/2] which presents a minimum distance with the vector cx [n-1/2] calculated for the last frame of rank half-integer.
- this interpolator filter 128 is present in the coder, and a subtractor 129 subtracts its output cx_i [n-1/2] from the calculated cepstral vector cx [n-1/2].
- a minimization module 130 determines the set of parameters ⁇ P ⁇ of the interpolator filter 128, for which the interpolation error ecx [n-1/2] delivered by the subtractor 129 has a minimum standard. This set of parameters ⁇ P ⁇ is addressed to a quantization module 131 which provides a corresponding quantization index iP to the output multiplexer 6 of the coder.
- the decoder From the quantization indexes iP of the parameters ⁇ P ⁇ obtained in the bit stream ⁇ , the decoder reconstructs the interpolator filter 128 (except for quantization errors), and processes the spectral vectors cx_q [nr], ..., cx_q [ n] in order to estimate the cepstral coefficients cx [n-1/2] used to synthesize the half-integer rank frames.
- the decoder can use a simple interpolation method (without transmission of parameters from the coder for half-integer rank frames), an interpolation method with consideration of an interpolation error quantized (according to Figures 17 and 18), or an interpolation method with an optimal interpolator filter (according to Figure 19) to evaluate the half-integer rank frames in addition to the whole rank frames evaluated directly as explained with reference to FIGS. 8 to 13.
- the temporal synthesis module 116 can then combine all of these evaluated frames to form the synthesized signal x in the manner explained below with reference to FIGS. 14, 21 and 22.
- the module 116 performs an overlap sum of modified frames with respect to those successively evaluated at the output of the module 115, and this modification can be seen in two stages, the first of which is identical to that previously described with reference to FIG. 14 (divide the samples of the frame 2 'by the analysis window fA).
- fs (') + fs (' + / p) A for N / 2 - M / p ⁇ i ⁇ N / 2 (25)
- the summary window f s (i) gradually increases for i going from
- the synthesis window f s can be, over this interval, a Hamming window (as shown in FIG. 21) or a Hanning window.
- FIG. 21 shows the successive frames 2 "repositioned in time by the module 116.
- the hatching indicates the portions eliminated from the frames (summary window at 0). It can be seen that by performing the overlapping sum of the samples of the successive frames, the property (25) ensures a homogeneous weighting of the samples of the synthesized signal.
- the interpolated frames can be the subject of a reduced transmission of coding parameters, as described above, but this is not compulsory.
- This embodiment makes it possible to maintain a relatively large interval M between two analysis frames, and therefore to limit the required transmission rate, while limiting the discontinuities likely to appear due to the size of this interval relative to the scales. of time typical of the variations of the parameters of the audio signal, in particular the cepstral coefficients and the fundamental frequency.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
The invention concerns a method wherein the encoder estimates a fundamental frequency (F0) of the audio signal, and includes in an output digital flow ( PHI ) of data encoding a harmonic component of the signal, representing spectral amplitudes associated with harmonics of the fundamental frequency, and data encoding a non-harmonic component of the signal, representing spectral amplitudes associated with frequencies located in zones of the intermediate spectrum relative to the harmonics. On the basis of said data, the decoder generates, over the whole extent of the spectrum, spectral estimates of the harmonic and non-harmonic components of the signal, and combines said spectral estimates to form a global spectral estimate from which it obtains the decoded version of the audio signal.
Description
CODAGE ET DECODAGE AUDIO INCLUANT DES COMPOSANTES NON HARMONIQUES DU SIGNAL AUDIO CODING AND DECODING INCLUDING NON-HARMONIC SIGNAL COMPONENTS
La présente invention concerne le domaine du codage des signaux audio. Elle s'applique en particulier, mais non exclusivement, au codage de la parole, en bande étroite ou en bande élargie, dans diverses gammes de débit de codage.The present invention relates to the field of coding of audio signals. It applies in particular, but not exclusively, to speech coding, in narrow band or in wide band, in various ranges of coding bit rates.
La conception d'un codée audio vise principalement à fournir un bon compromis entre le débit du flux transmis par le codeur et la qualité du signal audio que le décodeur est capable de reconstruire à partir de ce flux.The design of an audio codec mainly aims to provide a good compromise between the bit rate of the stream transmitted by the coder and the quality of the audio signal which the decoder is capable of reconstructing from this stream.
Dans cette optique, il a notamment été développé des familles de codeurs reposant sur une analyse du signal audio dans le domaine spectral : le codeur estime une fréquence fondamentale du signal, représentant sa hauteur tonale (« pitch »), et l'analyse spectrale consiste à déterminer des paramètres représentant la structure harmonique du signal aux fréquences qui sont des multiples entiers de cette fréquence fondamentale. Une modélisation de la composante non-harmonique, ou non-voisée, peut également être effectuée dans le domaine spectral. Les paramètres transmis au décodeur représentent typiquement le module du spectre des composantes voisées et non-voisées. Il s'y ajoute des informations représentant soit des décisions voisé/non-voisé relatives à différentes portions de spectre, soit des informations sur la probabilité de voisement du signal, permettant au décodeur de déterminer dans quelles portions du spectre il doit utiliser la composante voisée ou la composante non-voisée.With this in mind, families of coders have notably been developed based on an analysis of the audio signal in the spectral domain: the coder estimates a fundamental frequency of the signal, representing its pitch, and the spectral analysis consists determining parameters representing the harmonic structure of the signal at frequencies which are integer multiples of this fundamental frequency. A modeling of the non-harmonic, or non-voiced component, can also be carried out in the spectral domain. The parameters transmitted to the decoder typically represent the modulus of the spectrum of the voiced and unvoiced components. Added to this is information representing either voiced / unvoiced decisions relating to different portions of the spectrum, or information on the probability of voicing of the signal, allowing the decoder to determine in which portions of the spectrum it must use the voiced component. or the unvoiced component.
Ces familles de codeurs comprennent les codeurs du type MBEThese coder families include MBE type coders
(« Multi-Band Excitation »), ou encore les codeurs de type STC (« Sinusoidal Transform Coder »). A titre de référence, on peut citer les brevets US(“Multi-Band Excitation”), or STC (“Sinusoidal Transform Coder”) coders. As a reference, we can cite the US patents
4 856 068, 4 885 790, 4 937 873, 5 054 072, 5 081 681 , 5 195 166, 5 216 747,4,856,068, 4,885,790, 4,937,873, 5,054,072, 5,081,681.5,195,166, 5,216,747,
5 226 084, 5 226 108, 5 247 579, 5 473 727, 5 517 511 , 5 630 01 1 , 5 630 012, 5 649 050, 5 651 093, 5 664 051 , 5 664 052, 5 684 926, 5 701 390, 5 715 365, 5 749 065, 5 752 222, 5 765 127, 5 774 837 et 5 890 108. Un but de la présente invention est de permettre, dans un schéma de codage à analyse dans le domaine spectral, un codage de la composante non- harmonique ou non-voisée qui présente un bon compromis entre la qualité de représentation de cette composante sur l'étendue du spectre et le débit requis. Un autre but est de proposer une modélisation de la composante non- harmonique qui soit homogène avec celle de la composante harmonique,
permettant ainsi de réaliser un mixage adéquat des composantes harmonique et non-harmonique.5,226,084, 5,226,108, 5,247,579, 5,473,727, 5,517,511, 5,630 01 1,5,630,012, 5,649,050, 5,651,093, 5,664,051, 5,664,052, 5,684,926.5 701 390, 5 715 365, 5 749 065, 5 752 222, 5 765 127, 5 774 837 and 5 890 108. An object of the present invention is to allow, in a coding scheme with analysis in the spectral domain, a coding of the non-harmonic or unvoiced component which presents a good compromise between the quality of representation of this component over the range of the spectrum and the required bit rate. Another aim is to propose a modeling of the non-harmonic component which is homogeneous with that of the harmonic component, thus allowing an adequate mixing of the harmonic and non-harmonic components.
L'invention propose ainsi un procédé de codage d'un signal audio, dans lequel on estime une fréquence fondamentale du signal audio, on détermine un spectre du signal audio par une transformée dans le domaine fréquentiel d'une trame du signal audio, et on inclut dans un flux numérique de sortie des données représentatives d'amplitudes spectrales associées à certaines au moins des fréquences du spectre. Les données incluses dans le flux numérique de sortie comprennent des données de codage d'une composante non-harmonique du signal audio, comprenant des données représentatives d'amplitudes spectrales associées à des fréquences situées dans des zones du spectre intermédiaires par rapport aux fréquences multiples de la fréquence fondamentale estimée.The invention thus proposes a method for coding an audio signal, in which a fundamental frequency of the audio signal is estimated, a spectrum of the audio signal is determined by a transform in the frequency domain of a frame of the audio signal, and includes in a digital output stream data representative of spectral amplitudes associated with at least some of the frequencies of the spectrum. The data included in the digital output stream comprises data for coding a non-harmonic component of the audio signal, comprising data representative of spectral amplitudes associated with frequencies located in regions of the intermediate spectrum with respect to the multiple frequencies of the estimated fundamental frequency.
Un autre aspect de la présente invention se rapporte à un procédé de décodage d'un flux numérique d'entrée représentant un signal audio codé, dans lequel on génère, sur l'étendue du spectre du signal audio, une estimation spectrale d'une composante harmonique du signal audio sur la base de premières données de codage incluses dans le flux numérique d'entrée, on génère, sur l'étendue du spectre du signal audio, une estimation spectrale d'une composante non-harmonique du signal audio sur la base de secondes données de codage incluses dans le flux numérique d'entrée, et on combine les estimations spectrales des composantes harmonique et non-harmonique pour former une estimation spectrale globale qu'on transforme dans le domaine temporel pour produire une version décodée du signal audio. L'invention propose également un codeur et un décodeur audio comprenant des moyens pour la mise en œuvre des procédés ci-dessus.Another aspect of the present invention relates to a method for decoding an input digital stream representing an encoded audio signal, in which a spectral estimate of a component is generated over the spectrum of the audio signal. harmonic of the audio signal on the basis of first coding data included in the digital input stream, a spectral estimate of a non-harmonic component of the audio signal is generated over the spectrum of the audio signal based on second coding data included in the digital input stream, and combining the spectral estimates of the harmonic and non-harmonic components to form an overall spectral estimate which is transformed in the time domain to produce a decoded version of the audio signal. The invention also provides an audio coder and decoder comprising means for implementing the above methods.
D'autres particularités et avantages de la présente invention apparaîtront dans la description ci-après d'exemples de réalisation non limitatifs, en référence aux dessins annexés, dans lesquels : - la figure 1 est un schéma synoptique d'un codeur audio selon l'invention ;Other features and advantages of the present invention will appear in the following description of nonlimiting exemplary embodiments, with reference to the appended drawings, in which: - Figure 1 is a block diagram of an audio coder according to invention;
- les figures 2 et 3 sont des diagrammes illustrant la formation des trames de signal audio dans le codeur de la figure 1 ;- Figures 2 and 3 are diagrams illustrating the formation of audio signal frames in the encoder of Figure 1;
- les figures 4 et 5 sont des graphiques montrant un exemple de spectre du signal audio et illustrant l'extraction des enveloppes supérieure et inférieure de ce spectre ;
- la figure 6 est un schéma synoptique d'un exemple de moyens de quantification utilisables dans le codeur de la figure 1 ;- Figures 4 and 5 are graphs showing an example of the audio signal spectrum and illustrating the extraction of the upper and lower envelopes of this spectrum; - Figure 6 is a block diagram of an example of quantization means usable in the encoder of Figure 1;
- la figure 7 est un schéma synoptique de moyens utilisables pour extraire des paramètres se rapportant à la phase de la composante non- harmonique dans une variante du codeur de la figure 1 ;- Figure 7 is a block diagram of means used to extract parameters relating to the phase of the non-harmonic component in a variant of the encoder of Figure 1;
- la figure 8 est un schéma synoptique d'un décodeur audio correspondant au codeur de la figure 1 ;- Figure 8 is a block diagram of an audio decoder corresponding to the encoder of Figure 1;
- la figure 9 est un organigramme d'un exemple de procédure de lissage de coefficients spectraux et d'extraction de phases minimales mise en œuvre dans le décodeur de la figure 8 ;FIG. 9 is a flow diagram of an example of a procedure for smoothing spectral coefficients and extracting minimum phases implemented in the decoder of FIG. 8;
- la figure 10 est un schéma synoptique de modules d'analyse et de mixage spectral de composantes harmonique et non-harmonique du signal audio ;- Figure 10 is a block diagram of analysis and spectral mixing modules of harmonic and non-harmonic components of the audio signal;
- les figures 11 à 13 sont des graphiques montrant des exemples de fonctions non-linéaires utilisables dans le module d'analyse de la figure- Figures 11 to 13 are graphs showing examples of non-linear functions usable in the analysis module of the figure
10 ;10;
- les figures 14 et 15 sont des diagrammes illustrant une façon de procéder à la synthèse temporelle des trames de signal dans le décodeur de la figure 8 ; - les figures 16 et 17 sont des graphiques montrant des fonctions de fenêtrage utilisables dans la synthèse des trames suivant les figures 14 et 15 ;FIGS. 14 and 15 are diagrams illustrating one way of proceeding to the temporal synthesis of the signal frames in the decoder of FIG. 8; - Figures 16 and 17 are graphs showing windowing functions usable in the synthesis of the frames according to Figures 14 and 15;
- les figures 18 et 19 sont des schémas synoptiques de moyens d'interpolation utilisables dans une variante de réalisation du codeur et du décodeur ;- Figures 18 and 19 are block diagrams of interpolation means usable in an alternative embodiment of the coder and the decoder;
- la figure 20 est un schéma synoptique de moyens d'interpolation utilisables dans une autre variante de réalisation du codeur ; et- Figure 20 is a block diagram of interpolation means usable in another alternative embodiment of the encoder; and
- les figures 21 et 22 sont des diagrammes illustrant une autre façon de procéder à la synthèse temporelle des trames de signal dans le décodeur de la figure 8, à l'aide d'une interpolation de paramètres.FIGS. 21 and 22 are diagrams illustrating another way of proceeding with the temporal synthesis of the signal frames in the decoder of FIG. 8, using an interpolation of parameters.
Le codeur et le décodeur décrits ci-après sont des circuits numériques qui peuvent, comme il est usuel dans le domaine du traitement des signaux audio, être réalisés par programmation d'un processeur de signal numérique (DSP) ou d'un circuit intégré d'application spécifique (ASIC). Le codeur audio représenté sur la figure 1 traite un signal audio d'entrée x qui, dans l'exemple non-limitatif considéré ci-après, est un signal de
parole. Le signal x est disponible sous forme numérique, par exemple à une fréquence d'échantillonnage Fe de 8 kHz. Il est par exemple délivré par un convertisseur analogique-numérique traitant le signal de sortie amplifié d'un microphone. Le signal d'entrée x peut également être formé à partir d'une autre version, analogique ou numérique, codée ou non, du signal de parole.The coder and the decoder described below are digital circuits which can, as is usual in the field of audio signal processing, be produced by programming a digital signal processor (DSP) or an integrated circuit d specific application (ASIC). The audio coder represented in FIG. 1 processes an input audio signal x which, in the nonlimiting example considered below, is a signal of word. The signal x is available in digital form, for example at a sampling frequency F e of 8 kHz. It is for example delivered by an analog-digital converter processing the amplified output signal of a microphone. The input signal x can also be formed from another version, analog or digital, coded or not, of the speech signal.
Le codeur comprend un module 1 qui forme des trames successives de signal audio pour les différents traitements effectués, et un multiplexeur de sortie 6 qui délivre un flux de sortie Φ contenant pour chaque trame des jeux de paramètres de quantification à partir desquels un décodeur sera capable de synthétiser une version décodée du signal audio.The encoder comprises a module 1 which forms successive audio signal frames for the different treatments carried out, and an output multiplexer 6 which delivers an output stream Φ containing for each frame sets of quantization parameters from which a decoder will be capable. synthesize a decoded version of the audio signal.
La structure des trames est illustrée par les figures 2 et 3. Chaque trame 2 est composée d'un nombre N d'échantillons consécutifs du signal audio x. Les trames successives présentent des décalages temporels mutuels correspondant à M échantillons, de sorte que leur recouvrement est de L = N-M échantillons du signal. Dans l'exemple considéré, où N = 256, M = 160 et L = 96, la durée des trames 2 est de N/Fe = 32 ms, et une trame est formée toutes les M/Fe = 20 ms.The structure of the frames is illustrated by FIGS. 2 and 3. Each frame 2 is composed of a number N of consecutive samples of the audio signal x. Successive frames have mutual time offsets corresponding to M samples, so that their overlap is L = NM samples of the signal. In the example considered, where N = 256, M = 160 and L = 96, the duration of frames 2 is N / F e = 32 ms, and a frame is formed every M / F e = 20 ms.
De façon classique, le module 1 multiplie les échantillons de chaque trame 2 par une fonction de fenêtrage fA, de préférence choisie pour ses bonnes propriétés spectrales. Les échantillons x(i) de la trame étant numérotés de i = 0 à i = N-1 , la fenêtre d'analyse fA(i) peut ainsi être une fenêtre deConventionally, the module 1 multiplies the samples of each frame 2 by a windowing function f A , preferably chosen for its good spectral properties. The samples x (i) of the frame being numbered from i = 0 to i = N-1, the analysis window f A (i) can thus be a window of
Hamming, d'expression : i - (N-1)/2 fA(i) = 0,54 + 0,46. cos 2π N d) ou une fenêtre de Hanning d'expression :Hamming, expression: i - (N-1) / 2 f A (i) = 0.54 + 0.46. cos 2π N d) or an expression Hanning window:
ou encore une fenêtre de Kaiser, d'expression : or a window of Kaiser, of expression:
où α est un coefficient par exemple égal à 6, et l0(.) désigne la fonction de Bessel d'indice 0.
Le codeur de la figure 1 procède à une analyse du signal audio dans le domaine spectral. Il comporte un module 3 qui calcule la transformée de Fourier rapide (TFR) de chaque trame de signal. La trame de signal est mise en forme avant d'être soumise au module de TFR 3 : le module 1 lui adjoint N = 256 échantillons à zéro afin d'obtenir la résolution maximale de la transformée de Fourier, et il effectue d'autre part une permutation circulaire des 2N = 512 échantillons afin de compenser les effets de phase résultant de la fenêtre d'analyse. Cette modification de la trame est illustrée par la figure 3. La trame dont on calcule la transformée de Fourier rapide sur 2N = 512 points commence par les N/2 = 128 derniers échantillons pondérés de la trame, suivis par les N = 256 échantillons à zéro, et se termine par les N/2 = 128 premiers échantillons pondérés de la trame. where α is a coefficient for example equal to 6, and l 0 (.) denotes the Bessel function of index 0. The coder in FIG. 1 analyzes the audio signal in the spectral domain. It includes a module 3 which calculates the fast Fourier transform (TFR) of each signal frame. The signal frame is formatted before being submitted to the TFR module 3: the module 1 adds N = 256 samples to zero in order to obtain the maximum resolution of the Fourier transform, and it also performs a circular permutation of the 2N = 512 samples in order to compensate for the phase effects resulting from the analysis window. This modification of the frame is illustrated in FIG. 3. The frame for which the fast Fourier transform on 2N = 512 points is calculated begins with the N / 2 = 128 last weighted samples of the frame, followed by the N = 256 samples with zero, and ends with the N / 2 = 128 first weighted samples of the frame.
Le module de TFR 3 obtient le spectre du signal pour chaque trame, dont le module et la phase sont respectivement notés |X| et φχ, ou |X(i)| et φχ(i) pour les index de fréquence i = 0 à i = 2N-1 (grâce à la symétrie de la transformée de Fourier et des trames, on peut se limiter aux valeurs pour 0 < i < N).The TFR 3 module obtains the signal spectrum for each frame, the module and phase of which are respectively denoted | X | and φ χ , or | X (i) | and φ χ (i) for the frequency indexes i = 0 to i = 2N-1 (thanks to the symmetry of the Fourier transform and of the frames, we can limit ourselves to the values for 0 <i <N).
Un détecteur de fréquence fondamentale 4 estime pour chaque trame de signal une valeur de la fréquence fondamentale F0. Le détecteur 4 peut appliquer toute méthode connue d'analyse du signal de parole de la trame pour estimer la fréquence fondamentale F0, par exemple une méthode basée sur la fonction d'autocorrélation ou la fonction AMDF, éventuellement précédée d'un module de blanchiment par prédiction linéaire. L'estimation peut également être effectuée dans le domaine spectral ou dans le domaine cepstral. Une autre possibilité est d'évaluer les intervalles de temps entre les ruptures consécutives du signal de parole attribuables à des fermetures de la glotte du locuteur intervenant pendant la durée de la trame. Des méthodes bien connues utilisables pour détecter de telles micro-ruptures sont décrites dans les articles suivants : M. Basseville et al., « Sequential détection of abrupt changes in spectral characteristics of digital signais » (IEEE Trans. on Information Theory, 1983, Vol. IT-29, n° 5, pages 708-723) ; R. Andre-Obrecht, « A new statistical approach for the automatic segmentation of continuous speech signais » (IEEE Trans. on Acous., Speech and Sig. Proα, Vol. 36, N°1 , janvier 1988) ; et C. MURGIA et al., « An aigorithm for the estimation of glottal closure instants using the sequential détection of abrupt changes in speech signais » (Signal
Processing VII, 1994, pages 1685-1688).A fundamental frequency detector 4 estimates for each signal frame a value of the fundamental frequency F 0 . The detector 4 can apply any known method of analysis of the speech signal of the frame to estimate the fundamental frequency F 0 , for example a method based on the autocorrelation function or the AMDF function, possibly preceded by a whitening module. by linear prediction. The estimation can also be performed in the spectral domain or in the cepstral domain. Another possibility is to evaluate the time intervals between the consecutive breaks in the speech signal attributable to closures of the glottis of the intervening speaker during the duration of the frame. Well-known methods which can be used to detect such micro-ruptures are described in the following articles: M. Basseville et al., “Sequential detection of abrupt changes in spectral characteristics of digital signais” (IEEE Trans. On Information Theory, 1983, Vol IT-29, No. 5, pages 708-723); R. Andre-Obrecht, "A new statistical approach for the automatic segmentation of continuous speech signais" (IEEE Trans. On Acous., Speech and Sig. Proα, Vol. 36, N ° 1, January 1988); et C. MURGIA et al., “An aigorithm for the estimation of glottal closure instants using the sequential detection of abrupt changes in speech signais” (Signal Processing VII, 1994, pages 1685-1688).
La fréquence fondamentale estimée F0 fait l'objet d'une quantification, par exemple scalaire, par un module 5, qui fournit au multiplexeur de sortie 6 un index iF de quantification de la fréquence fondamentale pour chaque trame du signal.The estimated fundamental frequency F 0 is subject to quantification, for example scalar, by a module 5, which supplies the output multiplexer 6 with an index iF for quantizing the fundamental frequency for each frame of the signal.
Le codeur utilise des modélisations paramétriques cepstrales pour représenter une enveloppe supérieure et une enveloppe inférieure du spectre du signal audio. La première étape de la transformation cepstrale consiste à appliquer au module du spectre du signal une fonction de compression spectrale, qui peut être une fonction logarithmique ou en racine. Le module 8 du codeur opère ainsi, pour chaque valeur X(i) du spectre du signal (0 < i < N), la transformation suivante :The encoder uses cepstral parametric models to represent an upper envelope and a lower envelope of the spectrum of the audio signal. The first step of the cepstral transformation consists in applying to the signal spectrum module a spectral compression function, which can be a logarithmic or root function. The coder module 8 thus operates, for each value X (i) of the signal spectrum (0 <i <N), the following transformation:
LX(i) = Log(|X(i)|) (4) dans le cas d'une compression logarithmique ouLX (i) = Log (| X (i) |) (4) in the case of logarithmic compression or
dans le cas d'une compression en racine, γ étant un exposant compris entre 0 et 1. in the case of compression at the root, γ being an exponent between 0 and 1.
Le spectre comprimé LX du signal audio est traité par un module 9 qui extrait des amplitudes spectrales associées aux harmoniques du signal correspondant aux multiples de la fréquence fondamentale estimée F0. Ces amplitudes sont ensuite interpolées par un module 10 afin d'obtenir une enveloppe supérieure comprimée notée LX_sup.The compressed spectrum LX of the audio signal is processed by a module 9 which extracts spectral amplitudes associated with the harmonics of the signal corresponding to the multiples of the estimated fundamental frequency F0. These amplitudes are then interpolated by a module 10 in order to obtain a compressed upper envelope denoted LX_sup.
Il est à noter que la compression spectrale pourrait de façon équivalente être effectuée après la détermination des amplitudes associées aux harmoniques. Elle pourrait également être effectuée après l'interpolation, ce qui ne ferait que modifier la forme des fonctions d'interpolation.It should be noted that the spectral compression could be carried out in an equivalent manner after the determination of the amplitudes associated with the harmonics. It could also be done after interpolation, which would only change the form of the interpolation functions.
Le module 9 d'extraction des maxima tient compte de l'éventuelle variation de la fréquence fondamentale sur la trame d'analyse, des erreurs que peut commettre le détecteur 4, ainsi que des imprécisions liées au caractère discret de l'échantillonnage en fréquence. Pour cela, la recherche des amplitudes des pics spectraux ne consiste pas simplement à prendre les valeurs LX(i) correspondant aux index i tels que i.Fe/2N soit la fréquence la plus proche d'une harmonique de fréquence k.F0 (k > 1). L'amplitude spectrale retenue pour une harmonique d'ordre k est un maximum local du module du
spectre au voisinage de la fréquence k.F0 (cette amplitude est obtenue directement sous forme comprimée lorsque la compression spectrale 8 est effectuée avant l'extraction des maxima 9).The maxima extraction module 9 takes account of the possible variation of the fundamental frequency on the analysis frame, of the errors that the detector 4 can make, as well as of the inaccuracies linked to the discrete nature of the frequency sampling. For this, the search for the amplitudes of the spectral peaks does not simply consist in taking the values LX (i) corresponding to the indices i such that iF e / 2N is the frequency closest to a harmonic of frequency kF 0 (k> 1 ). The spectral amplitude retained for a harmonic of order k is a local maximum of the modulus of the spectrum in the vicinity of the frequency kF 0 (this amplitude is obtained directly in compressed form when the spectral compression 8 is carried out before the extraction of the maxima 9).
Les figures 4 et 5 montrent un exemple de forme du spectre comprimé LX, où on voit que les amplitudes maximales des pics harmoniques ne coïncident pas nécessairement avec les amplitudes correspondant aux multiples entiers de la fréquence fondamentale estimée F0. Les flancs des pics étant assez raides, une petite erreur de positionnement de la fréquence fondamentale F0, amplifiée par l'indice d'harmonique k, peut distordre fortement l'enveloppe supérieure estimée du spectre et provoquer une mauvaise modélisation de la structure formantique du signal. Par exemple, prendre directement l'amplitude spectrale pour la fréquence 3.F0 dans le cas des figures 4 et 5 produirait une erreur importante dans l'extraction de l'enveloppe supérieure au voisinage de l'harmonique d'ordre k = 3, alors qu'il s'agit d'une zone énergétiquement importante dans l'exemple dessiné. En effectuant l'interpolation à partir du véritable maximum, on évite ce genre d'erreur d'estimation de l'enveloppe supérieure.FIGS. 4 and 5 show an example of the shape of the compressed spectrum LX, where it can be seen that the maximum amplitudes of the harmonic peaks do not necessarily coincide with the amplitudes corresponding to the integer multiples of the estimated fundamental frequency F 0 . The sides of the peaks being quite steep, a small positioning error of the fundamental frequency F 0 , amplified by the harmonic index k, can strongly distort the estimated upper envelope of the spectrum and cause poor modeling of the formantic structure of the signal. For example, taking the spectral amplitude directly for the frequency 3.F 0 in the case of FIGS. 4 and 5 would produce a significant error in the extraction of the upper envelope in the vicinity of the harmonic of order k = 3, whereas it is an energetically important zone in the example drawn. By interpolating from the true maximum, this kind of error in estimating the upper envelope is avoided.
Dans l'exemple représenté sur la figure 4, l'interpolation est effectuée entre des points dont l'abscisse est la fréquence correspondant au maximum de l'amplitude d'un pic spectral, et dont l'ordonnée est ce maximum, avant ou après compression.In the example shown in FIG. 4, the interpolation is carried out between points whose abscissa is the frequency corresponding to the maximum of the amplitude of a spectral peak, and whose ordinate is this maximum, before or after compression.
L'interpolation effectuée pour calculer l'enveloppe supérieure LX_sup est une simple interpolation linéaire. Bien entendu une autre forme d'interpolation pourrait être utilisée (par exemple polynomiale ou spline). Dans la variante préférée représentée sur la figure 5, l'interpolation est effectuée entre des points dont l'abscisse est une fréquence k.F0 multiple de la fréquence fondamentale (en fait la fréquence la plus proche dans le spectre discret) et dont l'ordonnée est l'amplitude maximale, avant ou après compression, du spectre au voisinage de cette fréquence multiple. En comparant les figures 4 et 5, on peut voir que le mode d'extraction selon la figure 5, qui repositionne les pics sur les fréquences harmoniques, conduit à une meilleure précision sur l'amplitude des pics que le décodeur attribuera aux fréquences multiples de la fréquence fondamentale. Il peut se produire un léger déplacement en fréquence de la position de ces pics, ce qui n'est pas perceptuellement très important et n'est d'ailleurs pas évité non plus
dans le cas de la figure 4. Dans le cas de la figure 4, les points d'ancrage pour l'interpolation sont confondus avec les sommets des pics harmoniques. Dans le cas de la figure 5, on impose que ces points d'ancrage se trouvent précisément aux fréquences multiples de la fréquence fondamentale, leurs amplitudes correspondant à celles des pics.The interpolation performed to calculate the upper envelope LX_sup is a simple linear interpolation. Of course, another form of interpolation could be used (for example polynomial or spline). In the preferred variant shown in FIG. 5, the interpolation is carried out between points whose abscissa is a frequency kF 0 multiple of the fundamental frequency (in fact the closest frequency in the discrete spectrum) and whose ordinate is the maximum amplitude, before or after compression, of the spectrum in the vicinity of this multiple frequency. By comparing Figures 4 and 5, we can see that the extraction mode according to Figure 5, which reposition the peaks on the harmonic frequencies, leads to better precision on the amplitude of the peaks that the decoder will attribute to the multiple frequencies of the fundamental frequency. There may be a slight frequency shift in the position of these peaks, which is not perceptually very important and is also not avoided either in the case of FIG. 4. In the case of FIG. 4, the anchoring points for the interpolation are merged with the vertices of the harmonic peaks. In the case of FIG. 5, it is imposed that these anchoring points are precisely at the frequencies multiple of the fundamental frequency, their amplitudes corresponding to those of the peaks.
L'intervalle de recherche du maximum d'amplitude associé à une harmonique de rang k est centré sur l'index i de la fréquence de la TFR la plusThe maximum amplitude search interval associated with a harmonic of rank k is centered on the index i of the frequency of the highest TFR
proche de k.F0, c'est-à-dire i = où |_aj désigne l'entier égal ou
immédiatement inférieur au nombre a. La largeur de cet intervalle de recherche dépend de la fréquence d'échantillonnage Fe, de la taille 2N de la TFR et de la gamme de variation possible de la fréquence fondamentale. Cette largeur est typiquement de l'ordre d'une dizaine de fréquences avec les exemples de valeurs précédemment considérés. On peut la rendre réglable en fonction de la valeur F0 de la fréquence fondamentale et du numéro k de l'harmonique. Afin d'améliorer la résolution dans les basses fréquences et donc de représenter plus fidèlement les amplitudes des harmoniques dans cette zone, une distorsion non-linéaire de l'échelle des fréquences est opérée sur l'enveloppe supérieure comprimée par un module 12 avant que le module 13 effectue la transformée de Fourier rapide inverse (TFRI) fournissant les coefficients cepstraux cx_sup.close to kF 0 , i.e. i = where | _aj denotes the integer equal to or immediately below the number a. The width of this search interval depends on the sampling frequency F e , the size 2N of the TFR and the range of possible variation of the fundamental frequency. This width is typically of the order of ten frequencies with the examples of values previously considered. It can be made adjustable as a function of the value F 0 of the fundamental frequency and of the number k of the harmonic. In order to improve the resolution in the low frequencies and therefore to represent more faithfully the amplitudes of the harmonics in this zone, a non-linear distortion of the frequency scale is operated on the upper envelope compressed by a module 12 before the module 13 performs the inverse fast Fourier transform (TFRI) providing the cepstral coefficients cx_sup.
La distorsion non-linéaire permet de minimiser plus efficacement l'erreur de modélisation. Elle est par exemple effectuée selon une échelle de fréquences de type Mel ou Bark. Cette distorsion peut éventuellement dépendre de la fréquence fondamentale estimée F0. La figure 1 illustre le cas de l'échelle Mel. La relation entre les fréquences F du spectre linéaire, exprimées en hertz, et les fréquences F' de l'échelle Mel est la suivante : c, 1000 . (. F ^The non-linear distortion makes it possible to minimize the modeling error more effectively. It is for example carried out according to a Mel or Bark type frequency scale. This distortion may possibly depend on the estimated fundamental frequency F 0 . Figure 1 illustrates the case of the Mel scale. The relationship between the frequencies F of the linear spectrum, expressed in hertz, and the frequencies F 'of the Mel scale is as follows: c , 1000. (. F ^
F' = 7-^- logιo 1 + (6) log10(2) aιoL 1000 JF '= 7 - ^ - logιo 1 + (6) log 10 (2) aιo L 1000 J
Afin de limiter le débit de transmission, une troncature des coefficients cepstraux cx_sup est effectuée. Le module de TFRI 13 a besoin de calculer seulement un vecteur cepstral de NCS coefficients cepstraux d'ordres 0 à NCS-1. A titre d'exemple, NCS peut être égal à 16.In order to limit the transmission rate, a truncation of the cepstral coefficients cx_sup is performed. The TFRI module 13 needs to calculate only one cepstral vector of NCS cepstral coefficients of orders 0 to NCS-1. As an example, NCS can be equal to 16.
Un post-filtrage dans le domaine cepstral, appelé post-liftrage, est appliqué par un module 15 à l'enveloppe supérieure comprimée LX_sup. Ce
post-liftrage correspond à une manipulation des coefficients cepstraux cx_sup délivrés par le module de TRFI 13, qui correspond approximativement à un post-filtrage de la partie harmonique du signal par une fonction de transfert ayant la forme classique :A post-filtering in the cepstral domain, called post-liftrage, is applied by a module 15 to the compressed upper envelope LX_sup. This post-liftrage corresponds to a manipulation of the cepstral coefficients cx_sup delivered by the module of TRFI 13, which corresponds approximately to a post-filtering of the harmonic part of the signal by a transfer function having the classical form:
H(z) = (l - ^)^ (7)H (z) = (l - ^) ^ (7)
où A(z) est la fonction de transfert d'un filtre de prédiction linéaire du signal audio, γ1 et γ2 sont des coefficients compris entre 0 et 1 , et μ est un coefficient de préaccentuation éventuellement nul. La relation entre le coefficient post-liftré d'ordre i, noté cp(i), et le coefficient cepstral correspondant c(i) = cx_sup(i) délivré par le module 13 est alors : cp(0) = c(0)where A (z) is the transfer function of a linear prediction filter of the audio signal, γ 1 and γ 2 are coefficients between 0 and 1, and μ is a possibly zero pre-emphasis coefficient. The relation between the post-liftré coefficient of order i, noted c p (i), and the corresponding cepstral coefficient c (i) = cx_sup (i) delivered by module 13 is then: c p (0) = c ( 0)
(8) cp(i) = (l + γ2 -γ!|)c(i) - — pour i > 0(8) c p (i) = (l + γ 2 -γ! |) C ( i ) - - for i> 0
Le coefficient de préaccentuation optionnel μ peut être contrôlé en posant comme contrainte de préserver la valeur du coefficient cepstral cx_sup(1 ) relatif à la pente. En effet, la valeur c(1 ) = cx_sup(1 ) d'un bruit blanc filtré par le filtre de préaccentuation correspond au coefficient de préaccentuation. On peut ainsi choisir ce dernier de la façon suivante :
The optional pre-emphasis coefficient μ can be controlled by placing the constraint of preserving the value of the cepstral coefficient cx_sup (1) relative to the slope. Indeed, the value c (1) = cx_sup (1) of a white noise filtered by the pre-emphasis filter corresponds to the pre-emphasis coefficient. We can thus choose the latter as follows:
Après le post-liftre 15, un module de normalisation 16 modifie encore les coefficients cepstraux en imposant la contrainte de modélisation exacte d'un point du spectre initial, qui est de préférence le point le plus énergétique parmi les maxima spectraux extraits par le module 9. En pratique, cette normalisation modifie seulement la valeur du coefficient cp(0).After the post-liftre 15, a normalization module 16 further modifies the cepstral coefficients by imposing the exact modeling constraint of a point on the initial spectrum, which is preferably the most energetic point among the spectral maxima extracted by the module 9 In practice, this normalization only modifies the value of the coefficient c p (0).
Le module de normalisation 16 fonctionne de la façon suivante : il recalcule une valeur du spectre synthétisé à la fréquence du maximum indiqué par le module 9, par transformée de Fourier des coefficients cepstraux tronqués et post-liftrés, en tenant compte de la distorsion non-linéaire de l'axe des fréquences ; il détermine un gain de normalisation gN par la différence logarithmique entre la valeur du maximum fournie par le module 9 et cette valeur recalculée ; et il ajoute le gain gN au coefficient cepstral post-liftré Cp(0). Cette normalisation peut être vue comme faisant partie du post-liftrage.The normalization module 16 operates as follows: it recalculates a value of the synthesized spectrum at the frequency of the maximum indicated by the module 9, by Fourier transform of the truncated and post-liftral cepstral coefficients, taking into account the non-distortion linear of the frequency axis; it determines a normalization gain g N by the logarithmic difference between the value of the maximum provided by the module 9 and this recalculated value; and he adds the gain g N to the post-raised cepstral coefficient Cp (0). This normalization can be seen as part of post-liftrage.
Les coefficients cepstraux post-liftrés et normalisés font l'objet d'une
quantification par un module 18 qui transmet des index de quantification correspondants icxs au multiplexeur de sortie 6 du codeur.Post-lifter and standardized cepstral coefficients are subject to a quantization by a module 18 which transmits corresponding quantization indexes icxs to the output multiplexer 6 of the coder.
Le module 18 peut fonctionner par quantification vectorielle à partir de vecteurs cepstraux formés de coefficients post-liftrés et normalisés, notés ici cx[n] pour la trame de signal de rang n. A titre d'exemple, le vecteur cepstral cx[n] de NCS = 16 coefficients cepstraux cx[n,0], cx[n,1], ... , cx[n,NCS-1] est distribué en quatre sous-vecteurs cepstraux contenant chacun quatre coefficients d'ordres consécutifs. Le vecteur cepstral cx[n] peut être traité par les moyens représentés sur la figure 6, faisant partie du module de quantification 18. Ces moyens mettent en œuvre, pour chaque composante cx[n,i], un prédicteur de la forme : cxp[n, i] = (1 - α(i)).rcx[n, i] + α(i). rcx[n-1, i] (9) où rcx[n] désigne un vecteur résiduel de prédiction pour la trame de rang n dont les composantes sont respectivement notées rcx[n,0], rcx[n,1], ... , rcx[n,NCS-1 ], et α(i) désigne un coefficient de prédiction choisi pour être représentatif d'une corrélation inter-trame supposée. Après quantification des résidus, ce vecteur résiduel est défini par : rcx r[n, . i.] =
( M 1n o>)The module 18 can operate by vector quantization from cepstral vectors formed from post-liftred and normalized coefficients, denoted here cx [n] for the signal frame of rank n. For example, the cepstral vector cx [n] of NCS = 16 cepstral coefficients cx [n, 0], cx [n, 1], ..., cx [n, NCS-1] is distributed in four sub - cepstral vectors each containing four coefficients of consecutive orders. The cepstral vector cx [n] can be processed by the means shown in Figure 6, part of the quantization module 18. These means implement, for each component cx [n, i], a predictor of the form: cx p [n, i] = (1 - α (i)). rcx [n, i] + α (i). rcx [n-1, i] (9) where rcx [n] denotes a residual prediction vector for the frame of rank n whose components are respectively denoted rcx [n, 0], rcx [n, 1], .. ., rcx [n, NCS-1], and α (i) denotes a prediction coefficient chosen to be representative of an assumed inter-frame correlation. After quantification of the residues, this residual vector is defined by: rcx r [n,. i.] = ( M 1 no >)
2 - α(i) où rcx_q[n-1] désigne le vecteur résiduel quantifié pour la trame de rang n-1 , dont les composantes sont respectivement notées rcx_q[n,0], rcx_q[n,1], ... , rcx_q[n,NCS-1].2 - α (i) where rcx_q [n-1] denotes the quantized residual vector for the frame of rank n-1, whose components are respectively noted rcx_q [n, 0], rcx_q [n, 1], ... , rcx_q [n, NCS-1].
Le numérateur de la relation (10) est obtenu par un soustracteur 20, dont les composantes du vecteur de sortie sont divisées par les quantités 2-α(i) en 21. Aux fins de la quantification, le vecteur résiduel rcx[n] est subdivisé en quatre sous-vecteurs, correspondant à la subdivision en quatre sous-vecteurs cepstraux. Sur la base d'un dictionnaire obtenu par apprentissage préalable, l'unité 22 procède à la quantification vectorielle de chaque sous-vecteur du vecteur résiduel rcx[n]. Cette quantification peut consister, pour chaque sous-vecteur srcx[n], à sélectionner dans le dictionnaire le sous-vecteur quantifié srcx_q[n] qui minimise l'erreur quadratiqueThe numerator of the relation (10) is obtained by a subtractor 20, whose components of the output vector are divided by the quantities 2-α (i) at 21. For the purposes of quantification, the residual vector rcx [n] is subdivided into four sub-vectors, corresponding to the subdivision into four cepstral sub-vectors. On the basis of a dictionary obtained by prior learning, the unit 22 proceeds to the vector quantization of each sub-vector of the residual vector rcx [n]. This quantification can consist, for each sub-vector srcx [n], in selecting from the dictionary the quantized sub-vector srcx_q [n] which minimizes the quadratic error
|srcx[n] - srcx_q[n]| . L'ensemble icxs des index de quantification icx, correspondant aux adresses dans le ou les dictionnaires des sous-vecteurs résiduels quantifiés srcx_q[n], est fourni au multiplexeur de sortie 6.| srcx [n] - srcx_q [n] | . The set icxs of the quantization indexes icx, corresponding to the addresses in the dictionary or dictionaries of the residual quantized sub-vectors srcx_q [n], is supplied to the output multiplexer 6.
L'unité 22 délivre également les valeurs des sous-vecteurs résiduels
quantifiés, qui forment le vecteur rcx_q[n]. Celui-ci est retardé d'une trame en 23, et ses composantes sont multipliées par les coefficients α(i) en 24 pour fournir le vecteur à l'entrée négative du soustracteur 20. Ce dernier vecteur est d'autre part fourni à un additionneur 25, dont l'autre entrée reçoit un vecteur formé par les composantes du résidu quantifié rcx_q[n] respectivement multipliées par les quantités 1-α(i) en 26. L'additionneur 25 délivre ainsi le vecteur cepstral quantifié cx_q[n] que récupérera le décodeur.Unit 22 also delivers the values of the residual sub-vectors which form the vector rcx_q [n]. This is delayed by a frame at 23, and its components are multiplied by the coefficients α (i) at 24 to supply the vector to the negative input of subtractor 20. This latter vector is also supplied to a adder 25, the other input of which receives a vector formed by the components of the quantized residue rcx_q [n] respectively multiplied by the quantities 1-α (i) at 26. The adder 25 thus delivers the quantized cepstral vector cx_q [n] that will recover the decoder.
Le coefficient de prédiction α(i) peut être optimisé séparément pour chacun des coefficients cepstraux. Les dictionnaires de quantification peuvent aussi être optimisés séparément pour chacun quatre sous-vecteurs cepstraux. D'autre part, il est possible, de façon connue en soi, de normaliser les vecteurs cepstraux avant d'appliquer le schéma de prédiction/quantification, à partir de la variance des cepstres.The prediction coefficient α (i) can be optimized separately for each of the cepstral coefficients. The quantization dictionaries can also be optimized separately for each of four cepstral sub-vectors. On the other hand, it is possible, in a manner known per se, to normalize the cepstral vectors before applying the prediction / quantification scheme, from the variance of the cepstrums.
Il est à noter que le schéma ci-dessus de quantification des coefficients cepstraux peut n'être appliqué que pour certaines seulement des trames. Par exemple, on peut prévoir un second mode de quantification ainsi qu'un processus de sélection de celui des deux modes qui minimise un critère de moindres carrés avec les coefficients cepstraux à quantifier, et transmettre avec les index de quantification de la trame un bit indiquant lequel des deux modes a été sélectionné.It should be noted that the above scheme for quantifying cepstral coefficients may only be applied for some of the frames. For example, it is possible to provide a second quantization mode as well as a selection process of that of the two modes which minimizes a criterion of least squares with the cepstral coefficients to be quantified, and transmit with the quantization indexes of the frame a bit indicating which of the two modes has been selected.
Les coefficients cepstraux quantifiés cx_sup_q = cx_q[n] fournis par l'additionneur 25 sont adressés à un module 28 qui recalcule les amplitudes spectrales associées à une ou plusieurs des harmoniques de la fréquence fondamentale F0 (figure 1 ). Ces amplitudes spectrales sont par exemple calculées sous forme comprimée, en appliquant la transformée de Fourier aux coefficients cepstraux quantifiés en tenant compte de la distorsion non-linéaire de l'échelle des fréquences utilisée dans la transformation cepstrale. Les amplitudes ainsi recalculées sont fournies à un module d'adaptation 29 qui les compare à des amplitudes de maxima déterminées par le module d'extraction 9.The quantized cepstral coefficients cx_sup_q = cx_q [n] supplied by the adder 25 are addressed to a module 28 which recalculates the spectral amplitudes associated with one or more of the harmonics of the fundamental frequency F 0 (FIG. 1). These spectral amplitudes are for example calculated in compressed form, by applying the Fourier transform to the quantified cepstral coefficients taking into account the non-linear distortion of the frequency scale used in the cepstral transformation. The amplitudes thus recalculated are supplied to an adaptation module 29 which compares them to the maximum amplitudes determined by the extraction module 9.
Le module d'adaptation 29 contrôle le post-liftre 15 de façon à minimiser un écart de module entre le spectre du signal audio et les valeurs de module correspondantes calculées en 28. Cet écart de module peut être exprimé par une somme de valeurs absolues de différences d'amplitudes, comprimées ou non, correspondant à une ou plusieurs des fréquences
harmoniques. Cette somme peut être pondérée en fonction des amplitudes spectrales associées à ces fréquences.The adaptation module 29 controls the post-lifter 15 so as to minimize a module difference between the spectrum of the audio signal and the corresponding module values calculated at 28. This module difference can be expressed by a sum of absolute values of amplitude differences, compressed or not, corresponding to one or more of the frequencies harmonics. This sum can be weighted according to the spectral amplitudes associated with these frequencies.
De façon optimale, l'écart de module pris en compte dans l'adaptation du post-liftrage tiendrait compte de toutes les harmoniques du spectre. Cependant, afin de réduire la complexité de l'optimisation, le module 28 peut ne resynthétiser les amplitudes spectrales que pour une ou plusieurs fréquences multiples de la fréquence fondamentale F0, sélectionnées sur la base de l'importance du module du spectre en valeur absolue. Le module d'adaptation 29 peut par exemple considérer les trois pics spectraux les plus intenses dans le calcul de l'écart de module à minimiser.Optimally, the modulus difference taken into account in the adaptation of the post-liftring would take into account all the harmonics of the spectrum. However, in order to reduce the complexity of the optimization, the module 28 can resynthesize the spectral amplitudes only for one or more frequencies multiple of the fundamental frequency F 0 , selected on the basis of the size of the spectrum module in absolute value . The adaptation module 29 can for example consider the three most intense spectral peaks in the calculation of the module deviation to be minimized.
Dans une autre réalisation, le module d'adaptation 29 estime une courbe de masquage spectral du signal audio au moyen d'un modèle psychoacoustique, et les fréquences prises en compte dans le calcul de l'écart de module à minimiser sont sélectionnées sur la base de l'importance du module du spectre relativement à la courbe de masquage (on peut par exemple prendre les trois fréquences pour lesquelles le module du spectre dépasse le plus de la courbe de masquage). Différentes méthodes classiques sont utilisables pour calculer la courbe de masquage à partir du signal audio. On peut par exemple utiliser celle développée par J.D. Johnston (« Transform Coding of Audio Signais Using Perceptual Noise Criteria », IEEE Journal on Selected Area in Communications, Vol. 6, No. 2, février 1988).In another embodiment, the adaptation module 29 estimates a spectral masking curve of the audio signal by means of a psychoacoustic model, and the frequencies taken into account in the calculation of the module deviation to be minimized are selected on the basis the importance of the spectrum module relative to the masking curve (for example, we can take the three frequencies for which the spectrum module exceeds the masking curve the most). Different conventional methods can be used to calculate the masking curve from the audio signal. One can for example use that developed by J.D. Johnston ("Transform Coding of Audio Signais Using Perceptual Noise Criteria", IEEE Journal on Selected Area in Communications, Vol. 6, No. 2, February 1988).
Pour réaliser l'adaptation du post-liftrage, le module 29 peut utiliser un modèle d'identification de filtre. Une méthode plus simple consiste à prédéfinir un ensemble de jeux de paramètres de post-liftrage, c'est-à-dire un ensemble de couples γ-), γ2 dans le cas d'un post-liftrage selon les relations (8), à effectuer les opérations incombant aux modules 15, 16, 18 et 28 pour chacun de ces jeux de paramètres, et à retenir celui des jeux de paramètres qui conduit à l'écart de module minimal entre le spectre du signal et les valeurs recalculées. Les index de quantification fournis par le module 18 sont alors ceux qui se rapportent au meilleur jeu de paramètres.To carry out the adaptation of the post-liftrage, the module 29 can use a filter identification model. A simpler method consists in predefining a set of post-liftring parameter sets, i.e. a set of couples γ- ) , γ 2 in the case of a post-liftring according to relations (8) , to carry out the operations incumbent on the modules 15, 16, 18 and 28 for each of these sets of parameters, and to retain that of the sets of parameters which leads to the minimum module deviation between the signal spectrum and the recalculated values. The quantization indexes provided by the module 18 are then those which relate to the best set of parameters.
Par un processus analogue à celui de l'extraction des coefficients cx_sup représentant l'enveloppe supérieure comprimée LX_sup du spectre du signal, le codeur détermine des coefficients cx_inf représentant une enveloppe inférieure comprimée LX_inf. Un module 30 extrait du spectre comprimé LX des amplitudes spectrales associées à des fréquences situées dans des zones
du spectre intermédiaires par rapport aux fréquences multiples de la fréquence fondamentale estimée F0.By a process analogous to that of the extraction of the coefficients cx_sup representing the compressed upper envelope LX_sup of the signal spectrum, the coder determines coefficients cx_inf representing a compressed lower envelope LX_inf. A module 30 extracts from the compressed spectrum LX spectral amplitudes associated with frequencies located in zones of the intermediate spectrum with respect to the multiple frequencies of the estimated fundamental frequency F 0 .
Dans l'exemple illustré par les figures 4 et 5, chaque amplitude associée à une fréquence située dans une zone intermédiaire entre deux harmoniques successives k.F0 et (k+1 ).F0 correspond simplement au module du spectre pour la fréquence (k+1/2).F0 située au milieu de l'intervalle séparant les deux harmoniques. Dans une autre réalisation, cette amplitude pourrait être une moyenne du module du spectre sur une petite plage entourant cette fréquence (k+1/2).F0. Un module 31 procède à une interpolation, par exemple linéaire, des amplitudes spectrales associées aux fréquences situées dans les zones intermédiaires pour obtenir l'enveloppe inférieure comprimée LX_inf.In the example illustrated by FIGS. 4 and 5, each amplitude associated with a frequency located in an intermediate zone between two successive harmonics kF 0 and (k + 1). F 0 simply corresponds to the modulus of the spectrum for the frequency (k + 1/2) .F 0 located in the middle of the interval separating the two harmonics. In another embodiment, this amplitude could be an average of the spectrum modulus over a small range surrounding this frequency (k + 1/2) .F 0 . A module 31 proceeds to an interpolation, for example linear, of the spectral amplitudes associated with the frequencies located in the intermediate zones to obtain the compressed lower envelope LX_inf.
La transformation cepstrale appliquée à cette enveloppe inférieure comprimée LX_inf est effectuée suivant une échelle de fréquences résultant d'une distorsion non-linéaire appliquée par un module 32. Le module de TFRI 33 calcule un vecteur cepstral de NCI coefficients cepstraux cx_inf d'ordres 0 à NCI-1 représentant l'enveloppe inférieure. NCI est un nombre qui peut être sensiblement plus petit que NCS, par exemple NCI = 4.The cepstral transformation applied to this compressed lower envelope LX_inf is carried out according to a frequency scale resulting from a non-linear distortion applied by a module 32. The TFRI module 33 calculates a cepstral vector of NCI cepstral coefficients cx_inf of orders 0 to NCI-1 representing the lower envelope. NCI is a number which can be significantly smaller than NCS, for example NCI = 4.
La transformation non-linéaire de l'échelle des fréquences pour la transformation cepstrale de l'enveloppe inférieure peut être réalisée vers une échelle plus fine aux hautes fréquences qu'aux basses fréquences, ce qui permet avantageusement de bien modéliser les composantes non-voisées du signal aux hautes fréquences. Toutefois, pour assurer une homogénéité de représentation entre l'enveloppe supérieure et l'enveloppe inférieure, on pourra préférer adopter dans le module 32 la même échelle que dans le module 12 (Mel dans l'exemple considéré).The non-linear transformation of the frequency scale for the cepstral transformation of the lower envelope can be carried out towards a finer scale at high frequencies than at low frequencies, which advantageously makes it possible to model well the non-voiced components of the signal at high frequencies. However, to ensure uniformity of representation between the upper envelope and the lower envelope, it may be preferable to adopt in module 32 the same scale as in module 12 (Mel in the example considered).
Les coefficients cepstraux cx_inf représentant l'enveloppe inférieure comprimée sont quantifiés par un module 34, qui peut fonctionner de la même manière que le module 18 de quantification des coefficients cepstraux représentant l'enveloppe supérieure comprimée. Dans le cas considéré, où on se limite à NCI = 4 coefficients cepstraux pour l'enveloppe inférieure, le vecteur ainsi formé est soumis à une quantification vectorielle de résidu de prédiction, effectuée par des moyens identiques à ceux représentés sur la figure 6 mais sans subdivision en sous-vecteurs. L'index de quantification icx = icxi déterminé par le quantificateur vectoriel 22 pour chaque trame relativement aux
coefficients cx_inf est fourni au multiplexeur de sortie 6 du codeur.The cepstral coefficients cx_inf representing the compressed lower envelope are quantified by a module 34, which can operate in the same way as the module 18 for quantifying the cepstral coefficients representing the compressed upper envelope. In the case considered, where we limit ourselves to NCI = 4 cepstral coefficients for the lower envelope, the vector thus formed is subjected to a vector quantization of prediction residue, carried out by means identical to those represented in FIG. 6 but without subdivision into sub-vectors. The quantization index icx = icxi determined by the vector quantizer 22 for each frame relative to the coefficients cx_inf is supplied to the output multiplexer 6 of the encoder.
Le codeur représenté sur la figure 1 ne comporte aucun dispositif particulier pour coder les phases du spectre aux harmoniques du signal audio.The coder shown in FIG. 1 does not include any particular device for coding the phases of the spectrum with the harmonics of the audio signal.
En revanche, il comporte des moyens 36-40 pour coder une information temporelle liée à la phase de la composante non-harmonique représentée par l'enveloppe inférieure.On the other hand, it includes means 36-40 for coding temporal information linked to the phase of the non-harmonic component represented by the lower envelope.
Un module 36 de décompression spectrale et un module 37 de TFRI forment une estimation temporelle de la trame de la composante non- harmonique. Le module 36 applique une fonction de décompression réciproque de la fonction de compression appliquée par le module 8 (c'est-à-dire une exponentielle ou une fonction puissance 1/γ) à l'enveloppe inférieure comprimée LX_inf produite par le module d'interpolation 31. Ceci fournit le module de la trame estimée de la composante non-harmonique, dont la phase est prise égale à celle φχ du spectre du signal X sur la trame. La transformée de Fourier inverse effectuée par le module 37 fournit la trame estimée de la composante non-harmonique.A spectral decompression module 36 and a TFRI module 37 form a temporal estimate of the frame of the non-harmonic component. The module 36 applies a reciprocal decompression function of the compression function applied by the module 8 (that is to say an exponential or a power 1 / γ function) to the compressed lower envelope LX_inf produced by the module interpolation 31. This provides the modulus of the estimated frame of the non-harmonic component, the phase of which is taken to be equal to that φ χ of the spectrum of the signal X over the frame. The inverse Fourier transform performed by the module 37 provides the estimated frame of the non-harmonic component.
Le module 38 subdivise cette trame estimée de la composante non- harmonique en plusieurs segments temporels. La trame délivrée par le module 37 se composant de 2N = 512 échantillons pondérés comme illustré par la figure 3, le module 38 considère seulement les N/2 = 128 premiers échantillons et les N/2 = 128 derniers échantillons, et les subdivise par exemple en huit segments de 32 échantillons consécutifs représentant chacun 4 ms de signal.The module 38 subdivides this estimated frame of the non-harmonic component into several time segments. The frame delivered by the module 37 consisting of 2N = 512 weighted samples as illustrated in FIG. 3, the module 38 considers only the N / 2 = 128 first samples and the N / 2 = 128 last samples, and subdivides them for example in eight segments of 32 consecutive samples each representing 4 ms of signal.
Pour chaque segment, le module 38 calcule l'énergie égale à la somme des carrés des échantillons, et forme un vecteur E1 formé de huit composantes réelles positives égales aux huit énergies calculées. La plus grande de ces huit énergies, notée EM, est également déterminée pour être fournie, avec le vecteur E1 , à un module de normalisation 39. Celui-ci divise chaque composante du vecteur E1 par EM, de sorte que le vecteur normalisé Emix est formé de huit composantes comprises entre 0 et 1. C'est ce vecteur normalisé Emix, ou vecteur de pondération, qui est soumis à la quantification par le module 40. Celui-ci peut opérer une quantification vectorielle avec un dictionnaire déterminé lors d'un apprentissage préalable. L'index de quantification iEm est fourni par le module 40 au multiplexeur de sortie 6 du codeur.
La figure 7 montre une variante de réalisation des moyens employés par le codeur de la figure 1 pour déterminer le vecteur Emix de pondération énergétique de la trame de la composante non-harmonique. Les modules 36, 37 de décompression spectrale et de TFRI fonctionnent comme ceux qui portent les mêmes références sur la figure 1. Un module de sélection 42 est ajouté pour déterminer la valeur du module du spectre soumis à la transformée de Fourier inverse 37. Sur la base de la fréquence fondamentale estimée F0, le module 42 identifie des régions harmoniques et des régions non-harmoniques du spectre du signal audio. Par exemple, une fréquence sera considérée comme appartenant à une région harmonique si elle se trouve dans un intervalle de fréquences centré sur une harmonique k.F0 et de largeur correspondant à une largeur de raie spectrale synthétisée, et à une région non- harmonique sinon. Dans les régions non-harmoniques, le signal complexe soumis à la TFRI 37 est égal à la valeur du spectre, c'est-à-dire que son module et sa phase correspondent aux valeurs |X| et φχ fournies par le module de TFR 3. Dans les régions harmoniques, ce signal complexe a la même phase φχ que le spectre et un module donné par l'enveloppe inférieure après décompression spectrale 36. Cette façon de procéder selon la figure 7 procure une modélisation plus précise des régions non-harmoniques. Le décodeur représenté sur la figure 8 comprend un démultiplexeur d'entrée 45 qui extrait du flux binaire Φ, issu d'un codeur selon la figure 1 , les index iF, icxs, icxi, iEm de quantification de la fréquence fondamentale F0, des coefficients cepstraux représentant l'enveloppe supérieure comprimée, des coefficients représentants l'enveloppe inférieure comprimée, et du vecteur de pondération Emix, et les distribue respectivement à des modules 46, 47, 48 et 49. Ces modules 46-49 comportent des dictionnaires de quantification semblables à ceux des modules 5, 18, 34 et 40 de la figure 1 , afin de restituer les valeurs des paramètres quantifiés. Les modules 47 et 48 ont des dictionnaires pour former les résidus de prédiction quantifiés rcx_q[n], et ils en déduisent les vecteurs cepstraux quantifiés cx_q[n] avec des éléments identiques aux éléments 23-26 de la figure 6. Ces vecteurs cepstraux quantifiés cx_q[n] fournissent les coefficients cepstraux cx_sup_q et cx_inf_q traités par le décodeur.For each segment, the module 38 calculates the energy equal to the sum of the squares of the samples, and forms a vector E1 formed by eight positive real components equal to the eight calculated energies. The largest of these eight energies, denoted EM, is also determined to be supplied, with the vector E1, to a normalization module 39. The latter divides each component of the vector E1 by EM, so that the normalized vector Emix is formed of eight components between 0 and 1. It is this normalized vector Emix, or weighting vector, which is subject to quantization by module 40. This can perform vector quantization with a dictionary determined during a prior learning. The quantization index iEm is supplied by the module 40 to the output multiplexer 6 of the coder. FIG. 7 shows an alternative embodiment of the means used by the coder of FIG. 1 to determine the vector Emix of energy weighting of the frame of the non-harmonic component. The spectral decompression and TFRI modules 36, 37 operate like those which have the same references in FIG. 1. A selection module 42 is added to determine the value of the module of the spectrum subjected to the inverse Fourier transform 37. On the based on the estimated fundamental frequency F 0 , the module 42 identifies harmonic regions and non-harmonic regions of the spectrum of the audio signal. For example, a frequency will be considered to belong to a harmonic region if it is in a frequency interval centered on a harmonic kF 0 and of width corresponding to a width of spectral line synthesized, and to a non-harmonic region otherwise. In non-harmonic regions, the complex signal subjected to TFRI 37 is equal to the value of the spectrum, that is to say that its modulus and its phase correspond to the values | X | and φ χ provided by the TFR module 3. In harmonic regions, this complex signal has the same phase φ χ as the spectrum and a module given by the lower envelope after spectral decompression 36. This procedure according to FIG. 7 provides more precise modeling of non-harmonic regions. The decoder represented in FIG. 8 comprises an input demultiplexer 45 which extracts from the bit stream Φ, coming from an encoder according to FIG. 1, the indexes iF, icxs, icxi, iEm for quantifying the fundamental frequency F 0 , cepstral coefficients representing the compressed upper envelope, coefficients representing the compressed lower envelope, and the weighting vector Emix, and distributes them respectively to modules 46, 47, 48 and 49. These modules 46-49 include quantization dictionaries similar to those of modules 5, 18, 34 and 40 of FIG. 1, in order to restore the values of the quantized parameters. The modules 47 and 48 have dictionaries to form the quantized prediction residues rcx_q [n], and they deduce therefrom the quantified cepstral vectors cx_q [n] with elements identical to the elements 23-26 of FIG. 6. These quantified cepstral vectors cx_q [n] provide the cepstral coefficients cx_sup_q and cx_inf_q processed by the decoder.
Un module 51 calcule la transformée de Fourier rapide des coefficients
cepstraux cx_sup pour chaque trame de signal. L'échelle des fréquences du spectre comprimé qui en résulte est modifiée non-linéairement par un module 52 appliquant la transformation non-linéaire réciproque de celle du module 12 de la figure 1 , et qui fournit l'estimation LX_sup de l'enveloppe supérieure comprimée. Une décompression spectrale de LX_sup, opérée par un module 53, fournit l'enveloppe supérieure X_sup comportant les valeurs estimées du module du spectre aux fréquences multiples de la fréquence fondamentale F0.A module 51 calculates the fast Fourier transform of the coefficients cepstraux cx_sup for each signal frame. The frequency spectrum of the resulting compressed spectrum is modified non-linearly by a module 52 applying the reciprocal non-linear transformation to that of module 12 in FIG. 1, and which provides the estimate LX_sup of the compressed upper envelope . A spectral decompression of LX_sup, operated by a module 53, provides the upper envelope X_sup comprising the estimated values of the module of the spectrum at frequencies multiple of the fundamental frequency F 0 .
Le module 54 synthétise l'estimation spectrale Xv de la composante harmonique du signal audio, par une somme de raies spectrales centrées sur les fréquences multiples de la fréquence fondamentale F0 et dont les amplitudes (en module) sont celles données par l'enveloppe supérieure X_sup.The module 54 synthesizes the spectral estimate X v of the harmonic component of the audio signal, by a sum of spectral lines centered on the frequencies multiple of the fundamental frequency F 0 and whose amplitudes (in module) are those given by the envelope superior X_sup.
Bien que le flux numérique d'entrée Φ ne comporte pas d'informations spécifiques sur la phase du spectre du signal aux harmoniques de la fréquence fondamentale, le décodeur de la figure 8 est capable d'extraire de l'information sur cette phase à partir des coefficients cepstraux cx_sup_q représentant l'enveloppe supérieure comprimée. Cette information de phase est utilisée pour affecter une phase φ(k) à chacune des raies spectrales déterminées par le module 54 dans l'estimation de la composante harmonique du signal.Although the digital input stream Φ does not contain specific information on the phase of the signal spectrum at the harmonics of the fundamental frequency, the decoder in FIG. 8 is capable of extracting information on this phase from cepstral coefficients cx_sup_q representing the compressed upper envelope. This phase information is used to assign a phase φ (k) to each of the spectral lines determined by the module 54 in the estimation of the harmonic component of the signal.
En première approximation, le signal de parole peut être considéré comme étant à phase minimale. D'autre part, il est connu que l'information de phase minimale peut se déduire facilement d'une modélisation cepstrale. Cette information de phase minimale est donc calculée pour chaque fréquence harmonique. L'hypothèse de phase minimale signifie que l'énergie du signal synthétisé est localisée au début de chaque période de la fréquence fondamentale F0.As a first approximation, the speech signal can be considered to be at minimum phase. On the other hand, it is known that the minimum phase information can easily be deduced from a cepstral modeling. This minimum phase information is therefore calculated for each harmonic frequency. The minimum phase assumption means that the energy of the synthesized signal is localized at the start of each period of the fundamental frequency F 0 .
Pour être plus proche d'un signal de parole réel, on introduit un peu de dispersion au moyen d'un post-liftrage spécifique des cepstres lors de la synthèse de la phase. Avec ce post-liftrage, effectué par le module 55 de la figure 8, il est possible d'accentuer les résonances formantiques de l'enveloppe et donc de contrôler la dispersion des phases. Ce post-liftrage est par exemple de la forme (8).To be closer to a real speech signal, a little dispersion is introduced by means of a specific post-liftering of the cepstrums during the synthesis of the phase. With this post-liftrage, performed by the module 55 of FIG. 8, it is possible to accentuate the form resonances of the envelope and therefore to control the dispersion of the phases. This post-liftrage is for example of the form (8).
Pour limiter les ruptures de phase, il est préférable de lisser les coefficients cepstraux post-liftrés, ce qui est effectué par le module 56. Le module 57 déduit des coefficients cepstraux post-liftrés et lissés la phase minimale affectée à chaque raie spectrale représentant un pic harmonique du
spectre.To limit phase breaks, it is preferable to smooth the post-liftrated cepstral coefficients, which is done by module 56. Module 57 deduces post-liftrated cepstral coefficients and smoothed the minimum phase assigned to each spectral line representing a harmonic peak of spectrum.
Les opérations effectuées par les modules 56, 57 de lissage et d'extraction de la phase minimale sont illustrées par l'organigramme de la figure 9. Le module 56 examine les variations des coefficients cepstraux pour appliquer un lissage moins important en présence de variations brusques qu'en présence de variations lentes. Pour cela, il effectue le lissage des coefficients cepstraux au moyen d'un facteur d'oubli λc choisi en fonction d'une comparaison entre un seuil dth et une distance d entre deux jeux successifs de coefficients cepstraux post-liftrés. Le seuil dth est lui-même adapté en fonction des variations des coefficients cepstraux.The operations performed by the modules 56, 57 for smoothing and extracting the minimum phase are illustrated by the flowchart in FIG. 9. The module 56 examines the variations of the cepstral coefficients in order to apply a lesser smoothing in the presence of sudden variations only in the presence of slow variations. For this, it performs the smoothing of the cepstral coefficients by means of a forgetting factor λ c chosen as a function of a comparison between a threshold d th and a distance d between two successive sets of post-liftrated cepstral coefficients. The threshold d th is itself adapted as a function of the variations of the cepstral coefficients.
La première étape 60 consiste à calculer la distance d entre les deux vecteurs successifs relatifs aux trames n-1 et n. Ces vecteurs, notés ici cxp[π-1] et cxp[n], correspondent pour chaque trame à l'ensemble des NCS coefficients cepstraux post-liftrés représentant l'enveloppe supérieure comprimée. La distance utilisée peut notamment être la distance euclidienne entre les deux vecteurs ou encore une distance quadratique.The first step 60 consists in calculating the distance d between the two successive vectors relating to the frames n-1 and n. These vectors, denoted here cxp [π-1] and cxp [n], correspond for each frame to all the NCS post-liftral cepstral coefficients representing the compressed upper envelope. The distance used can in particular be the Euclidean distance between the two vectors or even a quadratic distance.
Deux lissages sont d'abord effectués, respectivement au moyen de facteurs d'oubli λmin et λmaχ, pour déterminer une distance minimale dmjn et une distance maximale dmaχ. Le seuil dth est ensuite déterminé à l'étape 70 comme étant situé entre les distances minimale et maximale dmin, dmax : dth = β.dmaχ + (1-β).dmin, le coefficient β étant par exemple égal à 0,5.Two smoothings are first carried out, respectively by means of forgetting factors λ min and λ maχ , to determine a minimum distance d mjn and a maximum distance d maχ . The threshold d th is then determined in step 70 as being located between the minimum and maximum distances d min , d max : d th = β.d maχ + (1-β) .d min , the coefficient β being for example equal to 0.5.
Dans l'exemple représenté, les facteurs d'oubli λmin et λmax sont eux- mêmes sélectionnés parmi deux valeurs distinctes, respectivement λmjn1, λmin2 et maxi' λmax2 comprises entre 0 et 1 , les indices λmjn1, λmax1 étant chacun sensiblement plus près de 0 que les indices λmjn2, λmaχ2. Si d > dmjn (test 61 ), le facteur d'oubli λmjn est égal à λmin1 (étape 62) ; sinon il est pris égal à λmin2 (étape 63). A l'étape 64, la distance minimale dmjn est prise égale à λmin dmin + (1-λmin) Si d > dmax (test 65)> le fadeur d'oubli λmax est égal à λmaχ1 (étape 66) ; sinon il est pris égal à λmax2 (étape 67). A l'étape 68, la distance minimale dmax est prise égale à λmaχ.dmaχ + (1-λmax).d.In the example shown, the forgetting factors λ min and λ max are themselves selected from two distinct values, respectively λ mjn1 , λ min2 and maxi ' λ max2 between 0 and 1, the indices λ mjn1 , λ max1 each being substantially closer to 0 than the indices λ mjn2 , λ maχ2 . If d> d mjn (test 61), the forget factor λ mjn is equal to λ min1 (step 62); otherwise it is taken equal to λ min2 (step 63). In step 64, the minimum distance d mjn is taken equal to λ min d min + ( 1 - λ min) If d> d max ( test 65 )> the forgetfulness of forgetting λ max is equal to λ maχ1 (step 66); otherwise it is taken equal to λ max2 (step 67). In step 68, the minimum distance d max is taken equal to λ maχ .d maχ + (1-λ max ) .d.
Si la distance d entre les deux vecteurs cepstraux consécutifs est plus grande que le seuil dth (test 71), on adopte pour le facteur d'oubli λc une valeur
λc1 relativement proche de 0 (étape 72). On considère dans ce cas que le signal correspondant est de type non stationnaire, de sorte qu'il n'y a pas lieu de conserver une grande mémoire des coefficients cepstraux antérieurs. Si d < dth, on adopte à l'étape 73 pour le facteur d'oubli λc une valeur λc2 moins proche de 0 afin de lisser davantage les coefficients cepstraux. Le lissage est effectué à l'étape 74, où le vecteur cxl[n] de coefficients lissés pour la trame courante n est déterminé par : cxl[n] = λc.cxl[n-1] + (1 - λc)cxp[n] (11 )If the distance d between the two consecutive cepstral vectors is greater than the threshold d th (test 71), we adopt for the forget factor λ c a value λ c1 relatively close to 0 (step 72). In this case, the corresponding signal is considered to be of the non-stationary type, so that there is no need to keep a large memory of the previous cepstral coefficients. If d <d th , in step 73 we adopt for the forget factor λ c a value λ c2 less close to 0 in order to further smooth the cepstral coefficients. Smoothing is performed in step 74, where the vector cxl [n] of smoothed coefficients for the current frame n is determined by: cxl [n] = λ c .cxl [n-1] + (1 - λ c ) cxp [n] (11)
Le module 57 calcule ensuite les phases minimales φ(k) associées aux harmoniques k.F0- De façon connue, la phase minimale pour une harmonique d'ordre k est donnée par :The module 57 then calculates the minimum phases φ (k) associated with the harmonics kF 0 - In known manner, the minimum phase for a harmonic of order k is given by:
NCS-1 φ(k) = -2. J cxl[n,m].sin(2πmkF0/Fe) (12) m=1 où cxl[n,m] désigne le coefficient cepstral lissé d'ordre m pour la trame n.NCS-1 φ (k) = -2. J cxl [n, m] .sin (2πmkF 0 / F e ) (12) m = 1 where cxl [n, m] denotes the smooth cepstral coefficient of order m for the frame n.
A l'étape 75, l'index d'harmonique k est initialisé à 1. Pour initialiser le calcul de la phase minimale affectée à l'harmonique k, la phase φ(k) et l'index cepstral m sont initialisés respectivement à 0 et 1 à l'étape 76. A l'étape 77, le module 57 ajoute à la phase φ(k) la quantité -2.cxl[n,m].sin(2πmk.F0/Fe).In step 75, the harmonic index k is initialized to 1. To initialize the calculation of the minimum phase assigned to the harmonic k, the phase φ (k) and the cepstral index m are initialized respectively at 0 and 1 in step 76. In step 77, the module 57 adds to phase φ (k) the quantity -2.cxl [n, m] .sin (2πmk.F 0 / F e ).
L'index cepstral m est incrémenté à l'étape 78 et comparé à NCS à l'étape 79. Les étapes 77 et 78 sont répétées tant que m < NCS. Quand m = NCS, le calcul de la phase minimale est terminé pour l'harmonique k, et l'index k est incrémenté à l'étape 80. Le calcul de phases minimales 76-79 est renouvelé pour l'harmonique suivante tant que k.F0 < Fe/2 (test 81).The cepstral index m is incremented in step 78 and compared to NCS in step 79. Steps 77 and 78 are repeated as long as m <NCS. When m = NCS, the calculation of the minimum phase is completed for the harmonic k, and the index k is incremented in step 80. The calculation of minimum phases 76-79 is repeated for the following harmonic as long as kF 0 <F e / 2 (test 81).
Dans l'exemple de réalisation selon la figure 8, le module 54 tient compte d'une phase constante sur la largeur de chaque raie spectrale, égale à la phase minimale φ(k) fournie pour l'harmonique correspondante k par le module 57.In the exemplary embodiment according to FIG. 8, the module 54 takes account of a constant phase over the width of each spectral line, equal to the minimum phase φ (k) supplied for the corresponding harmonic k by the module 57.
L'estimation Xv de la composante harmonique est synthétisée par sommation de raies spectrales positionnées aux fréquences harmoniques de la fréquence fondamentale F0. Lors de cette synthèse, on peut positionner les raies spectrales sur l'axe des fréquences avec une résolution supérieure à la résolution de la transformée de Fourier. Pour cela, on précalcule une fois pour toutes une raie spectrale de référence selon la résolution supérieure. Ce calcul
peut consister en une transformée de Fourier de la fenêtre d'analyse f avec une taille de transformée de 16384 points, procurant une résolution de 0,5 Hz par point. La synthèse de chaque raie harmonique est alors effectuée par le module 54 en positionnant sur l'axe des fréquences la raie de référence à haute résolution, et en sous-échantillonnant cette raie spectrale de référence pour se ramener à la résolution de 16,625 Hz de la transformée de Fourier sur 512 points. Ceci permet de positionner avec précision la raie spectrale.The estimate X v of the harmonic component is synthesized by summing spectral lines positioned at the harmonic frequencies of the fundamental frequency F 0 . During this synthesis, the spectral lines can be positioned on the frequency axis with a resolution greater than the resolution of the Fourier transform. For that, one precalculates once and for all a spectral line of reference according to the higher resolution. This calculation can consist of a Fourier transform of the analysis window f with a transform size of 16384 points, providing a resolution of 0.5 Hz per point. The synthesis of each harmonic line is then carried out by the module 54 by positioning on the frequency axis the reference line at high resolution, and by sub-sampling this spectral line of reference to reduce to the resolution of 16.625 Hz of the Fourier transform on 512 points. This allows to precisely position the spectral line.
Pour la détermination de l'enveloppe inférieure, le module de TFR 85 du décodeur de la figure 8 reçoit les NCI coefficients cepstraux quantifiés cx_inf_q d'ordres 0 à NCI - 1 , et il les complète avantageusement par les NCS - NCI coefficients cepstraux cx_sup_q d'ordre NCI à NCS - 1 représentant l'enveloppe supérieure. En effet, on peut estimer en première approximation que les variations rapides de l'enveloppe inférieure comprimée sont bien reproduites par celles de l'enveloppe supérieure comprimée. Dans une autre réalisation, le module de TFR 85 pourrait ne considérer que les NCI paramètres cepstraux cx_inf_q.For the determination of the lower envelope, the TFR module 85 of the decoder of FIG. 8 receives the NCI quantified cepstral coefficients cx_inf_q of orders 0 to NCI - 1, and it advantageously supplements them by the NCS - NCI cepstral coefficients cx_sup_q d NCI to NCS order - 1 representing the upper envelope. Indeed, it can be estimated as a first approximation that the rapid variations of the compressed lower envelope are well reproduced by those of the compressed upper envelope. In another embodiment, the TFR 85 module could only consider the NCI cepstraux parameters cx_inf_q.
Le module 86 convertit l'échelle de fréquences de manière réciproque de la conversion opérée par le module 32 du codeur, afin de restituer l'estimation LX_inf de l'enveloppe inférieure comprimée, soumise au module de décompression spectrale 87. En sortie du module 87, le décodeur dispose d'une enveloppe inférieure X_inf comportant les valeurs du module du spectre dans les vallées situées entre les pics harmoniques.The module 86 converts the frequency scale reciprocally from the conversion operated by the module 32 of the coder, in order to restore the estimate LX_inf of the compressed lower envelope, subjected to the spectral decompression module 87. At the output of the module 87 , the decoder has a lower envelope X_inf comprising the values of the spectrum module in the valleys located between the harmonic peaks.
Cette enveloppe X_inf va moduler le spectre d'une trame de bruit dont la phase est traitée en fonction du vecteur de pondération quantifié Emix extrait par le module 49. Un générateur 88 délivre une trame de bruit normalisé dont les segments de 4 ms sont pondérés dans un module 89 conformément aux composantes normalisées du vecteur Emix fourni par le module 49 pour la trame courante. Ce bruit est un bruit blanc filtré passe-haut pour tenir compte du faible niveau qu'a en principe la composante non-voisée aux basses fréquences. A partir du bruit pondéré en énergie, le module 90 forme des trames de 2N = 512 échantillons en appliquant la fenêtre d'analyse fA, l'insertion de 256 échantillons à zéro et la permutation circulaire pour la compensation de phase conformément à ce qui a été expliqué en référence à la figure 3. La transformée de Fourier de la trame résultante est calculée par le module TFR 91.
L' estimation spectrale Xuv de la composante non-harmonique est déterminée par le module de synthèse spectrale 92 qui effectue une pondération fréquence par fréquence. Cette pondération consiste à multiplier chaque valeur spectrale complexe fournie par le module de TFR 91 par la valeur de l'enveloppe inférieure X_inf obtenue pour la même fréquence par le module de décompression spectrale 87.This envelope X_inf will modulate the spectrum of a noise frame whose phase is treated as a function of the quantized weighting vector Emix extracted by the module 49. A generator 88 delivers a normalized noise frame whose segments of 4 ms are weighted in a module 89 in accordance with the normalized components of the Emix vector supplied by the module 49 for the current frame. This noise is a high-pass filtered white noise to take account of the low level which in principle the unvoiced component has at low frequencies. From the energy-weighted noise, the module 90 forms frames of 2N = 512 samples by applying the analysis window f A , the insertion of 256 samples at zero and the circular permutation for the phase compensation in accordance with what has been explained with reference to FIG. 3. The Fourier transform of the resulting frame is calculated by the TFR module 91. The spectral estimate X uv of the non-harmonic component is determined by the spectral synthesis module 92 which performs frequency-by-frequency weighting. This weighting consists in multiplying each complex spectral value supplied by the TFR module 91 by the value of the lower envelope X_inf obtained for the same frequency by the spectral decompression module 87.
Les estimations spectrales Xv, Xuv des composantes harmoniqueThe spectral estimates X v , X uv of the harmonic components
(voisée dans le cas d'un signal de parole) et non-harmonique (ou non-voisée) sont combinées par un module de mixage 95 contrôlé par un module 96 d'analyse du degré d'harmonicité (ou de voisement) du signal.(voiced in the case of a speech signal) and non-harmonic (or voiceless) are combined by a mixing module 95 controlled by a module 96 for analyzing the degree of harmony (or voicing) of the signal .
L'organisation de ces modules 95, 96 est illustrée par la figure 10. Le module d'analyse 96 comporte une unité 97 d'estimation d'un degré de voisement W dépendant de la fréquence, à partir duquel sont calculés quatre gains dépendant de la fréquence, à savoir deux gains gv, guv contrôlant l'importance relative des composantes harmonique et non-harmonique dans le signal synthétisé, et deux gains gv guv utilisés pour bruiter la phase de la composante harmonique.The organization of these modules 95, 96 is illustrated in FIG. 10. The analysis module 96 comprises a unit 97 for estimating a degree of voicing W dependent on the frequency, from which four gains dependent on are calculated. the frequency, namely two gains g v , g uv controlling the relative importance of the harmonic and non-harmonic components in the synthesized signal, and two gains g v g uv used to noise the phase of the harmonic component.
Le degré de voisement W(i) est une valeur à variation continue comprise entre 0 et 1 déterminée pour chaque index de fréquence i (0 < i < N) en fonction de l'enveloppe supérieure X_sup(i) et de l'enveloppe inférieure X_inf(i) obtenues pour cette fréquence i par les modules de décompression 53, 87. Le degré de voisement W(i) est estimé par l'unité 97 pour chaque index de fréquence i correspondant à une harmonique de la fréquence fondamentale F0,The degree of voicing W (i) is a continuously variable value between 0 and 1 determined for each frequency index i (0 <i <N) as a function of the upper envelope X_sup (i) and the lower envelope X_inf (i) obtained for this frequency i by the decompression modules 53, 87. The degree of voicing W (i) is estimated by the unit 97 for each frequency index i corresponding to a harmonic of the fundamental frequency F 0 ,
a savoir pour k = 1 ,2,... , par une fonction croissante du
rapport entre l'enveloppe supérieure X_sup et l'enveloppe inférieure X_inf à cette fréquence, par exemple selon la formule : 0 l°9l°[X v-h Sg»/XJnf(i)i} (13)
namely for k = 1, 2, ..., by an increasing function of ratio between the upper envelope X_sup and the lower envelope X_inf at this frequency, for example according to the formula: 0 l ° 9l ° [ X v - h S g »/ XJnf (i) i} (13)
Le seuil Vth(F0) correspond à la dynamique moyenne calculée sur un spectre synthétique purement voisé à la fréquence fondamentale. Il est avantageusement choisi dépendant de la fréquence fondamentale F0.The threshold Vth (F 0 ) corresponds to the average dynamics calculated on a synthetic spectrum purely voiced at the fundamental frequency. It is advantageously chosen depending on the fundamental frequency F 0 .
Le degré de voisement W(i) pour une fréquence autre que les fréquences harmoniques est obtenu simplement comme étant égal à celui
estimé pour l'harmonique la plus proche.The degree of voicing W (i) for a frequency other than the harmonic frequencies is obtained simply as being equal to that estimated for the nearest harmonic.
Le gain gv(i), qui dépend de la fréquence, est obtenu en appliquant une fonction non-linéaire au degré de voisement W(i) (bloc 98). Cette fonction non- linéaire a par exemple la forme représentée sur la figure 11 : gv(i) = 0 si 0 < W(i) < W1The gain g v (i), which depends on the frequency, is obtained by applying a non-linear function to the degree of voicing W (i) (block 98). This nonlinear function has for example the form represented on figure 11: g v (i) = 0 if 0 <W (i) <W1
W( - W1 si W1 < W(j) < W2 ( 4) v W2 - W1 gv(i) = 1 si W2 < W(i) < 1 les seuils W1 , W2 étant tels que 0 < W1 < W2 < 1. Le gain guv peut être calculé de manière semblable au gain gv (la somme des deux gains gv, guv étant constante, par exemple égale à 1 ), ou déduit simplement de celui-ci par la relation guv(i) = 1 - gv(i), comme schématisé par le soustracteur 99 sur la figure 10.W (- W1 if W1 <W (j) <W2 ( 4) v W2 - W1 g v (i) = 1 if W2 <W (i) <1 the thresholds W1, W2 being such that 0 <W1 <W2 < 1. The gain g uv can be calculated similarly to the gain g v (the sum of the two gains g v , g uv being constant, for example equal to 1), or simply deduced from it by the relation g uv ( i) = 1 - g v (i), as shown diagrammatically by the subtractor 99 in FIG. 10.
Il est intéressant de pouvoir bruiter la phase de la composante harmonique du signal à une fréquence donnée si l'analyse du degré de voisement montre que le signal est plutôt de type non-harmonique à cette fréquence. Pour cela, la phase φv de la composante harmonique mixée est le résultat d'une combinaison linéaire des phases φv, φuv des composantes harmonique et non-harmonique Xy, Xuv synthétisées par les modules 54, 92.It is interesting to be able to noise the phase of the harmonic component of the signal at a given frequency if the analysis of the degree of voicing shows that the signal is rather of non-harmonic type at this frequency. For this, the phase φ v of the mixed harmonic component is the result of a linear combination of the phases φ v , φ uv of the harmonic and non-harmonic components X y , X uv synthesized by the modules 54, 92.
Les gains gv guv respectivement appliqués à ces phases sont calculés à partir du degré de voisement W et pondérés également en fonction de l'index de fréquence i, étant donné que le bruitage de la phase n'est véritablement utile qu'au-delà d'une certaine fréquence.The gains g v g uv respectively applied to these phases are calculated from the degree of voicing W and also weighted as a function of the frequency index i, since the sound effects of the phase are only really useful beyond a certain frequency.
Un premier gain gv1 est calculé en appliquant une fonction non- linéaire au degré de voisement W(i), comme schématisé par le bloc 100 sur la figure 10. Cette fonction non-linéaire peut avoir la forme représentée sur la figure 12 :A first gain g v1 is calculated by applying a non-linear function to the degree of voicing W (i), as shown diagrammatically by block 100 in FIG. 10. This non-linear function can have the form represented in FIG. 12:
9vi_φ(i) = G1 si 0 ≤ W(i) < W39vi_ φ (i) = G1 if 0 ≤ W (i) <W3
gv1_φ(i) = G1 + (1 - si W3 < W(i) < W4 (15)
gv1_φ(i) = 1 si W4 ≤ W(i) < 1 les seuils W3 et W4 étant tels que 0 < W3 < W4 < 1 , et le gain minimal G1 étant compris entre 0 et 1.
Un multiplieur 101 multiplie pour chaque fréquence d'index i le gain gv1 par un autre gain gv2 dépendant seulement de l'index de fréquence i, pour former le gain gv (i). Le gain gv2 (i) dépend non-linéairement de l'index de fréquence i, par exemple comme indiqué sur la figure 13 : 9v2_φ(i) = 1 si O ≤ i ≤ ilg v1 _ φ (i) = G1 + (1 - if W3 <W (i) <W4 (15) g v1 _ φ (i) = 1 if W4 ≤ W (i) <1 the thresholds W3 and W4 being such that 0 <W3 <W4 <1, and the minimum gain G1 being between 0 and 1. A multiplier 101 multiplies for each index frequency i the gain g v1 by another gain g v2 depending only on the frequency index i, to form the gain g v (i). The gain g v2 (i) depends non-linearly on the frequency index i, for example as shown in Figure 13: 9v2_φ ( i ) = 1 if O ≤ i ≤ il
9v2_φ( = 1 - 0 - 02)^ si iK i < i2 (16)9v2_ φ (= 1 - 0 - 02) ^ if iK i <i2 (16)
gv2_φ(i) = G2 si i2 ≤ i < 1 les index il et i2 étant tels que 0 < il < i2 < N, et le gain minimal G2 étant compris entre 0 et 1. Le gain guv (i) peut être calculé simplement comme étant égal à 1 - gv_φ(i) = 1 - gv1_φ(i) gv2_φ(i) (soustracteur 102 de la figureg v2 _ φ (i) = G2 if i2 ≤ i <1 the indices il and i2 being such that 0 <il <i2 <N, and the minimum gain G2 being between 0 and 1. The gain g uv (i) can be calculated simply as being equal to 1 - g v _ φ (i) = 1 - g v1 _ φ (i) g v2 _ φ (i) (subtractor 102 of the figure
10).10).
Le spectre complexe Y du signal synthétisé est produit par le module de mixage 95, qui réalise la relation de mixage suivante, pour 0 < i < N :The complex spectrum Y of the synthesized signal is produced by the mixing module 95, which realizes the following mixing relation, for 0 <i <N:
Y(i) = gv(')- |Xv (i)| - exp[i Φv(0] + 9uv(')- Xuv(') <17) avec φ'v(i) = gv_φ(i). φv(i) + guv_φ(i). φuv(i) (18) où φv(i) désigne l'argument du nombre complexe Xv(i) fourni par le module 54 pour la fréquence d'index i (bloc 104 de la figure 10), et φuv(i) désigne l'argument du nombre complexe Xuv(i) fourni par le module 92 (bloc 105 de la figure 10). Cette combinaison est réalisée par les multiplieurs 106-110 et les additionneurs 111-112 représentés sur la figure 10.Y (i) = g v (') - | Xv (i) | - exp [i Φv (0] + 9uv (') - X uv (') < 17 ) with φ ' v (i) = g v _ φ (i). φ v (i) + g uv _ φ (i). φ uv (i) (18) where φ v (i) denotes the argument of the complex number X v (i) supplied by the module 54 for the frequency of index i (block 104 of figure 10), and φ uv (i) denotes the argument of the complex number X uv (i) supplied by the module 92 (block 105 of FIG. 10). This combination is carried out by the multipliers 106-110 and the adders 111-112 shown in FIG. 10.
Le spectre mixé Y(i) pour 0 < i < 2N (avec Y(2N-1-i) =Y(i)) est ensuite transformé dans le domaine temporel par le module de TFRI 115 (figure 8). On ne retient que les N/2 = 128 premiers et les N/2 = 128 derniers échantillons de la trame de 2N = 512 échantillons produite par le module 115, et on applique la permutation circulaire inverse de celle illustrée par la figure 3 pour obtenir la trame synthétisée de N = 256 échantillons pondérés par la fenêtre d'analyse fA.The mixed spectrum Y (i) for 0 <i <2N (with Y (2N-1-i) = Y (i)) is then transformed in the time domain by the TFRI 115 module (Figure 8). Only the first N / 2 = 128 and the last N / 2 = 128 samples of the frame of 2N = 512 samples produced by the module 115 are retained, and the inverse circular permutation of that illustrated in FIG. 3 is applied to obtain the synthesized frame of N = 256 samples weighted by the analysis window f A.
Les trames successivement obtenues de cette manière sont finalement traitées par le module de synthèse temporelle 116 qui forme le signal audio décodé x . Le module de synthèse temporelle 116 effectue une somme à recouvrement de trames modifiées par rapport à celles successivement
évaluées en sortie du module 115. La modification peut être vue en deux étapes illustrées respectivement par les figures 14 et 15.The frames successively obtained in this way are finally processed by the time synthesis module 116 which forms the decoded audio signal x. The time synthesis module 116 performs an overlap sum of frames modified with respect to those successively evaluated at the output of module 115. The modification can be seen in two stages illustrated respectively in FIGS. 14 and 15.
La première étape (figure 14) consiste à multiplier chaque trame 2' délivrée par le module de TFRI 115 par une fenêtre 1/fA inverse de la fenêtre d'analyse fA employée par le module 1 du codeur. Les échantillons de la trameThe first step (FIG. 14) consists in multiplying each frame 2 ′ delivered by the TFRI module 115 by a window 1 / f A opposite to the analysis window f A used by the module 1 of the coder. Frame samples
2" qui en résultent sont donc pondérés uniformément.2 "which result are therefore weighted uniformly.
La seconde étape (figure 15) consiste à multiplier les échantillons de cette trame 2" par une fenêtre de synthèse fs vérifiant les propriétés suivantes : fs(N-L+i) + fs(i) = A pour O ≤ i < L (19) fs(') = A pour L ≤ i < N-L (20) où A désigne une constante positive arbitraire, par exemple A = 1. La fenêtre de synthèse fs(i) croît progressivement de 0 à A pour i allant de 0 à L. C'est par exemple une demi-sinusoïde surélevée : fs(i) = . (1 _ cos[(i + 1/2)π/L]) pour 0 < i < L (21 )The second step (figure 15) consists in multiplying the samples of this 2 "frame by a synthesis window f s verifying the following properties: f s (N-L + i) + f s (i) = A for O ≤ i <L (19) f s (') = A for L ≤ i <NL (20) where A designates an arbitrary positive constant, for example A = 1. The synthesis window f s (i) gradually increases from 0 to A for i going from 0 to L. It is for example a raised half-sine wave: f s (i) =. (1 _ cos [(i + 1/2) π / L]) for 0 <i <L ( 21)
Après avoir repondéré chaque trame 2" par la fenêtre de synthèse fs, le module 116 positionne les trames successives avec leurs décalages temporels de M = 160 échantillons et leurs recouvrements temporels de L = 96 échantillons, puis il effectue la somme des trames ainsi positionnées dans le temps. Du fait des propriétés (19) et (20) de la fenêtre de synthèse fs, chaque échantillon du signal audio décodé x ainsi obtenu est affecté d'un poids global uniforme, égal à A. Ce poids global provient de la contribution d'une trame unique si l'échantillon a dans cette trame un rang i tel que L < i < N - L, et comporte les contributions sommées de deux trames successives si 0 < i < L où N - L < i < N. On peut ainsi effectuer la synthèse temporelle de façon simple même si, comme dans le cas considéré, le recouvrement L entre deux trames successives est plus petit que la moitié de la taille N de ces trames.After reweighting each frame 2 "by the summary window f s , the module 116 positions the successive frames with their time offsets of M = 160 samples and their time overlaps of L = 96 samples, then it performs the sum of the frames thus positioned Due to the properties (19) and (20) of the synthesis window f s , each sample of the decoded audio signal x thus obtained is assigned a uniform overall weight, equal to A. This overall weight comes from the contribution of a single frame if the sample has in this frame a rank i such that L <i <N - L, and includes the summed contributions of two successive frames if 0 <i <L where N - L <i < N. It is thus possible to perform the time synthesis in a simple manner even if, as in the case considered, the overlap L between two successive frames is smaller than half the size N of these frames.
Les deux étapes exposées ci-dessus pour la modification des trames de signal peuvent être fusionnées en une seule étape. Il suffit de précalculer une fenêtre composée fc(i) = fs(i)/fA(i), et de multiplier simplement les tramesThe two steps outlined above for modifying signal frames can be merged in one step. It is enough to precompute a compound window f c (i) = f s (i) / f A (i), and to simply multiply the frames
2' de N = 256 échantillons délivrées par le module 115 par la fenêtre composée fc avant d'effectuer la sommation à recouvrement.
La figure 16 montre l'allure de la fenêtre composée fc dans le cas où la fenêtre d'analyse fA est une fenêtre de Hamming et la fenêtre de synthèse fs a la forme donnée par les relations (19) à (21 ).2 'of N = 256 samples delivered by the module 115 by the compound window f c before performing the overlapping summation. FIG. 16 shows the appearance of the compound window f c in the case where the analysis window f A is a Hamming window and the synthesis window f s has the form given by the relations (19) to (21) .
D'autres formes de la fenêtre de synthèse fs vérifiant les relations (19) et (20) peuvent être employées. Dans la variante de la figure 17, c'est une fonction affine par morceaux définie par : fs(i) = A.i/L pour O ≤ K L (22)Other forms of the summary window f s verifying the relations (19) and (20) can be used. In the variant of Figure 17, it is a piecewise affine function defined by: f s (i) = Ai / L for O ≤ KL (22)
Afin d'améliorer la qualité de codage du signal audio, le codeur de la figure 1 peut augmenter la cadence de formation et d'analyse des trames, afin de transmettre davantage de paramètres de quantification au décodeur. Dans la structure de trame représentée sur la figure 2, une trame de N = 256 échantillons (32 ms) est formée toutes les 20 ms. Ces trames de 256 échantillons pourraient être formées à une cadence supérieure, par exemple de 10 ms, deux trames successives ayant alors un décalage de M/2 = 80 échantillons et un recouvrement de 176 échantillons.In order to improve the coding quality of the audio signal, the coder in FIG. 1 can increase the rate of formation and analysis of the frames, in order to transmit more quantization parameters to the decoder. In the frame structure shown in Figure 2, a frame of N = 256 samples (32 ms) is formed every 20 ms. These frames of 256 samples could be formed at a higher rate, for example of 10 ms, two successive frames then having an offset of M / 2 = 80 samples and an overlap of 176 samples.
Dans ces conditions, on peut transmettre les jeux complets de paramètres de quantification iF, icxs, icxi, iEm pour seulement un sous- ensemble des trames, et transmettre pour les autres trames des paramètres permettant d'effectuer une interpolation adéquate au niveau du décodeur. Dans l'exemple envisagé ci-dessus, le sous-ensemble pour lequel des jeux de paramètres complets sont transmis peut être constitué par les trames de rang entier n, dont la périodicité est de M/Fe = 20 ms, et les trames pour lesquelles une interpolation est effectuée peuvent être celles de rang demi-entier n + 1/2 qui sont décalées de 10 ms par rapport aux trames du sous-ensemble. Dans la réalisation illustrée par la figure 18, les notations cx_q [n-1] et cX-Çl1"1] désignent des vecteurs cepstraux quantifiés déterminés, pour deux trames successives de rang entier, par le module de quantification 18 et/ou par le module de quantification 34. Ces vecteurs comprennent par exemple quatre coefficients cepstraux consécutifs chacun. Ils pourraient également comprendre davantage de coefficients cepstraux.Under these conditions, it is possible to transmit the complete sets of quantization parameters iF, icxs, icxi, iEm for only a subset of the frames, and transmit for the other frames parameters making it possible to carry out an adequate interpolation at the level of the decoder. In the example envisaged above, the subset for which complete sets of parameters are transmitted can be constituted by frames of whole rank n, whose periodicity is M / F e = 20 ms, and the frames for which an interpolation is carried out can be those of rank half-integer n + 1/2 which are offset by 10 ms relative to the frames of the subset. In the embodiment illustrated in FIG. 18, the notations cx_q [n-1] and cX-Çl 1 " 1 ] designate quantized cepstral vectors determined, for two successive frames of whole rank, by the quantization module 18 and / or by the quantization module 34. These vectors include, for example, four consecutive cepstral coefficients each, and could also include more cepstral coefficients.
Un module 120 effectue une interpolation de ces deux vecteurs cepstraux cx_q[n-1] et cx_q[n], afin d'estimer une valeur intermédiaire cx_i[n-1/2]. L'interpolation effectuée par le module 120 peut être une simple moyenne arithmétique des vecteurs cx_q[n-1] et cx_q[n]. En variante, le module 120 pourrait appliquer une formule d'interpolation plus sophistiquée,
par exemple polynomiale, en se fondant également sur les vecteurs cepstraux obtenus pour des trames antérieures à la trame n-1. D'autre part, si plus d'une trame interpolée est intercalée entre deux trames consécutives de rang entier, l'interpolation tient compte de la position relative de chaque trame interpolée. A l'aide des moyens précédemment décrits, le codeur calcule également les coefficients cepstraux cx[n-1/2] relatifs à la trame de rang demi- entier. Dans le cas de l'enveloppe supérieure, ces coefficients cepstraux sont ceux fournis par le module de TFR1 13 après post-liftrage 15 (par exemple avec les mêmes coefficients de post-liftrage que pour la trame précédente n-1 ) et normalisation 16. Dans le cas de l'enveloppe inférieure, les coefficients cepstraux cx[n-1/2] sont ceux délivrés par le module de TFRI 33.A module 120 performs an interpolation of these two cepstral vectors cx_q [n-1] and cx_q [n], in order to estimate an intermediate value cx_i [n-1/2]. The interpolation performed by the module 120 can be a simple arithmetic mean of the vectors cx_q [n-1] and cx_q [n]. As a variant, the module 120 could apply a more sophisticated interpolation formula, for example polynomial, also based on the cepstral vectors obtained for frames prior to frame n-1. On the other hand, if more than one interpolated frame is interposed between two consecutive frames of whole rank, the interpolation takes account of the relative position of each interpolated frame. Using the means described above, the coder also calculates the cepstral coefficients cx [n-1/2] relating to the frame of half-integer rank. In the case of the upper envelope, these cepstral coefficients are those provided by the module of TFR1 13 after post-liftrage 15 (for example with the same post-liftrage coefficients as for the previous frame n-1) and normalization 16. In the case of the lower envelope, the cepstral coefficients cx [n-1/2] are those delivered by the TFRI module 33.
Un soustracteur 121 forme la différence ecx[n-1/2] entre les coefficients cepstraux cx[n-1/2] calculés pour la trame de rang demi-entier et les coefficients cx_i[n-1/2] estimés par interpolation. Cette différence est fournie à un module de quantification 122 qui adresse des index de quantification icx[n-1/2] au multiplexeur de sortie 6 du codeur. Le module 122 fonctionne par exemple par quantification vectorielle des erreurs d'interpolation ecx[n-1/2] successivement déterminées pour les trames de rang demi-entier.A subtractor 121 forms the difference ecx [n-1/2] between the cepstral coefficients cx [n-1/2] calculated for the half-integer row frame and the coefficients cx_i [n-1/2] estimated by interpolation. This difference is supplied to a quantization module 122 which addresses quantization indices icx [n-1/2] to the output multiplexer 6 of the coder. The module 122 operates for example by vector quantization of the ecx interpolation errors [n-1/2] successively determined for the half-integer rank frames.
Cette quantification de l'erreur d'interpolation peut être effectuée par le codeur pour chacun des NCS + NCI coefficients cepstraux utilisés par le décodeur, ou seulement pour certains d'entre eux, typiquement ceux d'ordres les plus petits.This quantization of the interpolation error can be carried out by the coder for each of the NCS + NCI cepstral coefficients used by the decoder, or only for some of them, typically those of the smallest orders.
Les moyens correspondants du décodeur sont illustrés par la figure 19. Le décodeur fonctionne essentiellement comme celui décrit en référence à la figure 8 pour déterminer les trames de signal de rang entier. Un module d'interpolation 124 identique au module 120 du codeur estime les coefficients intermédiaires cx_i[n-1/2] à partir des coefficients quantifiés cx_q[n-1] et cX-ClM fournis par le module 47 et/ou le module 48 à partir des index icxs, icxi extraits du flux Φ. Un module d'extraction de paramètres 125 reçoit l'index de quantification icx[n-1/2] depuis le démultiplexeur d'entrée 45 du décodeur, et en déduit l'erreur d'interpolation quantifiée ecx_q[n-1/2] à partir du même dictionnaire de quantification que celui utilisé par le module 122 du codeur. Un additionneur 126 fait la somme des vecteurs cepstraux cx_i[n-1/2] et ecx_q[n-1/2] afin de fournir les coefficients cepstraux cx[n-1/2] qui seront utilisés par le décodeur (modules 51 -57, 95, 96, 115 et/ou modules 85-87, 92, 95, 96, 115) pour former la trame interpolée de rang n-1/2.
Si certains seulement des coefficients cepstraux ont fait l'objet d'une quantification d'erreur d'interpolation, les autres sont déterminés par le décodeur par une interpolation simple, sans correction.The corresponding means of the decoder are illustrated in FIG. 19. The decoder functions essentially like that described with reference to FIG. 8 to determine the signal frames of whole rank. An interpolation module 124 identical to the module 120 of the coder estimates the intermediate coefficients cx_i [n-1/2] from the quantized coefficients cx_q [n-1] and cX-ClM supplied by module 47 and / or module 48 from the indexes icxs, icxi extracted from the flow Φ. A parameter extraction module 125 receives the quantization index icx [n-1/2] from the input demultiplexer 45 of the decoder, and deduces therefrom the quantized interpolation error ecx_q [n-1/2] from the same quantization dictionary as that used by the module 122 of the coder. An adder 126 sums the cepstral vectors cx_i [n-1/2] and ecx_q [n-1/2] in order to provide the cepstral coefficients cx [n-1/2] which will be used by the decoder (modules 51 - 57, 95, 96, 115 and / or modules 85-87, 92, 95, 96, 115) to form the interpolated frame of rank n-1/2. If only some of the cepstral coefficients have been the subject of an interpolation error quantification, the others are determined by the decoder by a simple interpolation, without correction.
Le décodeur peut également interpoler les autres paramètres F0, Emix utilisés pour synthétiser les trames de signal. La fréquence fondamentale F0 peut être interpolée linéairement, soit dans le domaine temporel, soit (de préférence) directement dans le domaine fréquentiel. Pour l'interpolation éventuelle du vecteur de pondération énergétique Emix, il convient d'effectuer l'interpolation après dénormalisation et en tenant compte bien entendu des décalages temporels entre trames.The decoder can also interpolate the other parameters F 0 , Emix used to synthesize the signal frames. The fundamental frequency F 0 can be interpolated linearly, either in the time domain, or (preferably) directly in the frequency domain. For the possible interpolation of the energy weighting vector Emix, the interpolation should be carried out after denormalization and of course taking account of the time offsets between frames.
Il est à noter qu'il est particulièrement avantageux, pour interpoler la représentation des enveloppes spectrales, d'effectuer cette interpolation dans le domaine cepstral. Contrairement à une interpolation effectuée sur d'autres paramètres, tels que les coefficients LSP (« Line Spectrum Pairs »), l'interpolation linéaire des coefficients cepstraux correspond à l'interpolation linéaire des amplitudes spectrales comprimées.It should be noted that it is particularly advantageous, to interpolate the representation of the spectral envelopes, to perform this interpolation in the cepstral domain. Contrary to an interpolation carried out on other parameters, such as the LSP coefficients (“Line Spectrum Pairs”), the linear interpolation of the cepstral coefficients corresponds to the linear interpolation of the compressed spectral amplitudes.
Dans la variante représentée sur la figure 20, le codeur utilise les vecteurs cepstraux cx_q[n], cx_q[n-1], ... , cx_q[n-r] et cx_q[n-1/2] calculés pour les dernières trames passées (r > 1 ) pour identifier un filtre interpolateur optimal qui, lorsqu'on lui soumet les vecteurs cepstraux quantifiés cx_q[n-r], ... , cx_q[n] relatifs aux trames de rang entier, délivre un vecteur cepstral interpolé cx_i[n-1/2] qui présente une distance minimale avec le vecteur cx[n-1/2] calculé pour la dernière trame de rang demi-entier.In the variant represented in FIG. 20, the coder uses the cepstral vectors cx_q [n], cx_q [n-1], ..., cx_q [nr] and cx_q [n-1/2] calculated for the last frames passed (r> 1) to identify an optimal interpolator filter which, when subject to the quantized cepstral vectors cx_q [nr], ..., cx_q [n] relating to frames of whole rank, delivers an interpolated cepstral vector cx_i [n -1/2] which presents a minimum distance with the vector cx [n-1/2] calculated for the last frame of rank half-integer.
Dans l'exemple représenté sur la figure 20, ce filtre interpolateur 128 est présent dans le codeur, et un soustracteur 129 retranche sa sortie cx_i[n-1/2] du vecteur cepstral calculé cx[n-1/2]. Un module de minimisation 130 détermine le jeu de paramètres {P} du filtre interpolateur 128, pour lequel l'erreur d'interpolation ecx[n-1/2] délivrée par le soustracteur 129 présente une norme minimale. Ce jeu de paramètres {P} est adressé à un module de quantification 131 qui fournit un index de quantification correspondant iP au multiplexeur de sortie 6 du codeur.In the example shown in FIG. 20, this interpolator filter 128 is present in the coder, and a subtractor 129 subtracts its output cx_i [n-1/2] from the calculated cepstral vector cx [n-1/2]. A minimization module 130 determines the set of parameters {P} of the interpolator filter 128, for which the interpolation error ecx [n-1/2] delivered by the subtractor 129 has a minimum standard. This set of parameters {P} is addressed to a quantization module 131 which provides a corresponding quantization index iP to the output multiplexer 6 of the coder.
En fonction du débit alloué dans le flux Φ aux index de quantification des paramètres {P} définissant le filtre interpolateur optimal 128, on pourra adopter une quantification plus ou moins fine de ces paramètres, ou une forme plus ou moins élaborée du filtre interpolateur, ou encore prévoir plusieurs filtres
interpolateurs quantifiés de manière distincte pour différents vecteurs de coefficients cepstraux.Depending on the bit rate allocated in the flow Φ to the quantization indexes of the parameters {P} defining the optimal interpolator filter 128, we can adopt a more or less fine quantification of these parameters, or a more or less elaborate form of the interpolator filter, or still provide several filters distinctly quantized interpolators for different vectors of cepstral coefficients.
Dans une réalisation simple, le filtre interpolateur 128 est linéaire, avec r = 1 : cx_i[n-1/2] = p.cx_q[n-1] + (1-p).cx_q[n] (23) et le jeu de paramètres {P} se limite au coefficient p compris entre 0 et 1.In a simple embodiment, the interpolator filter 128 is linear, with r = 1: cx_i [n-1/2] = p.cx_q [n-1] + (1-p) .cx_q [n] (23) and the set of parameters {P} is limited to the coefficient p between 0 and 1.
A partir des index iP de quantification des paramètres {P} obtenus dans le flux binaire φ, le décodeur reconstruit le filtre interpolateur 128 (aux erreurs de quantification près), et traite les vecteurs spectraux cx_q[n-r], ... , cx_q[n] afin d'estimer les coefficients cepstraux cx[n-1/2] utilisés pour synthétiser les trames de rang demi-entier.From the quantization indexes iP of the parameters {P} obtained in the bit stream φ, the decoder reconstructs the interpolator filter 128 (except for quantization errors), and processes the spectral vectors cx_q [nr], ..., cx_q [ n] in order to estimate the cepstral coefficients cx [n-1/2] used to synthesize the half-integer rank frames.
De façon générale, le décodeur peut utiliser une méthode d'interpolation simple (sans transmission de paramètres de la part du codeur pour les trames de rang demi-entier), une méthode d'interpolation avec prise en compte d'une erreur d'interpolation quantifiée (selon les figures 17 et 18), ou une méthode d'interpolation avec un filtre interpolateur optimal (selon la figure 19) pour évaluer les trames de rang demi-entier en plus des trames de rang entier évaluées directement comme expliqué en référence aux figures 8 à 13. Le module 116 de synthèse temporelle peut alors combiner l'ensemble de ces trames évaluées pour former le signal synthétisé x de la manière expliquée ci- après en référence aux figures 14, 21 et 22.In general, the decoder can use a simple interpolation method (without transmission of parameters from the coder for half-integer rank frames), an interpolation method with consideration of an interpolation error quantized (according to Figures 17 and 18), or an interpolation method with an optimal interpolator filter (according to Figure 19) to evaluate the half-integer rank frames in addition to the whole rank frames evaluated directly as explained with reference to FIGS. 8 to 13. The temporal synthesis module 116 can then combine all of these evaluated frames to form the synthesized signal x in the manner explained below with reference to FIGS. 14, 21 and 22.
Comme dans la méthode de synthèse temporelle précédemment décrite, le module 116 effectue une somme à recouvrement de trames modifiées par rapport à celles successivement évaluées en sortie du module 115, et cette modification peut être vue en deux étapes dont la première est identique à celle précédemment décrite en référence à la figure 14 (diviser les échantillons de la trame 2' par la fenêtre d'analyse fA).As in the temporal synthesis method previously described, the module 116 performs an overlap sum of modified frames with respect to those successively evaluated at the output of the module 115, and this modification can be seen in two stages, the first of which is identical to that previously described with reference to FIG. 14 (divide the samples of the frame 2 'by the analysis window fA).
La seconde étape (figure 21 ) consiste à multiplier les échantillons de la trame renormalisée 2" par une fenêtre de synthèse fs vérifiant les propriétés suivantes : fs(i) = 0 pour 0 < i < N/2 - M/p et N/2 + M/p < i <N (24)The second step (Figure 21) consists in multiplying the samples of the renormalized 2 "frame by a synthesis window f s verifying the following properties: f s (i) = 0 for 0 <i <N / 2 - M / p and N / 2 + M / p <i <N (24)
fs(') + fs(' + /p) = A pour N/2 - M/p < i < N/2 (25) où A désigne une constante positive arbitraire, par exemple A = 1 , et p est l'entier tel que le décalage temporel entre les trames successives (calculées
directement et interpolées) soit de M/p échantillons, soit p = 2 dans l'exemple décrit. La fenêtre de synthèse fs(i) croît progressivement pour i allant defs (') + fs (' + / p) = A for N / 2 - M / p <i <N / 2 (25) where A denotes an arbitrary positive constant, for example A = 1, and p is the integer such as the time offset between successive frames (calculated directly and interpolated) either from M / p samples, or p = 2 in the example described. The summary window f s (i) gradually increases for i going from
N/2 - M/p à N/2. C'est par exemple une sinusoïde surélevée sur l'intervalleN / 2 - M / p to N / 2. It is for example a sinusoid raised on the interval
N/2 - M/p < i < N/2 + M/p. En particulier, la fenêtre de synthèse fs peut être, sur cet intervalle, une fenêtre de Hamming (comme représenté sur la figure 21 ) ou une fenêtre de Hanning.N / 2 - M / p <i <N / 2 + M / p. In particular, the synthesis window f s can be, over this interval, a Hamming window (as shown in FIG. 21) or a Hanning window.
La figure 21 montre les trames successives 2" repositionnées dans le temps par le module 116. Les hachures indiquent les portions éliminées des trames (fenêtre de synthèse à 0). On voit qu'en effectuant la somme à recouvrement des échantillons des trames successives, la propriété (25) assure une pondération homogène des échantillons du signal synthétisé.FIG. 21 shows the successive frames 2 "repositioned in time by the module 116. The hatching indicates the portions eliminated from the frames (summary window at 0). It can be seen that by performing the overlapping sum of the samples of the successive frames, the property (25) ensures a homogeneous weighting of the samples of the synthesized signal.
Comme dans la méthode de synthèse illustrée par les figures 14 et 15, la procédure de pondération des trames obtenues par transformée de Fourier inverse des spectres Y peut être effectuée en une seule étape, avec une fenêtre composée fc( = fs(')/fA(i) - La figure 22 montre la forme de la fenêtre composée fc dans le cas où les fenêtres fA et fs sont de type Hamming.As in the synthesis method illustrated by FIGS. 14 and 15, the procedure for weighting the frames obtained by inverse Fourier transform of the spectra Y can be carried out in a single step, with a compound window fc (= fs (') / f A (i) - Figure 22 shows the shape of the compound window f c in the case where the windows f A and fs are of the Hamming type.
Comme la méthode de synthèse temporelle illustrée par les figures 14 à 17, celle illustrée par les figures 14, 21 et 22 permet de prendre en compte un recouvrement L entre deux trames d'analyse (pour lesquelles l'analyse est effectuée de façon complète) plus petit que la moitié que la taille N de ces trames. De façon générale, cette dernière méthode est applicable lorsque les trames d'analyse successives présentent des décalages temporels mutuels M de plus de N/2 échantillons (même éventuellement de plus de N échantillons si un très bas débit est requis), l'interpolation conduisant à un ensemble de trames dont les décalages temporels mutuels sont de moins de N/2 échantillons.Like the temporal synthesis method illustrated by FIGS. 14 to 17, that illustrated by FIGS. 14, 21 and 22 makes it possible to take into account an overlap L between two analysis frames (for which the analysis is carried out completely) smaller than half the size N of these frames. In general, this last method is applicable when the successive analysis frames have mutual time shifts M of more than N / 2 samples (even possibly more than N samples if a very low bit rate is required), the interpolation leading to a set of frames whose mutual time offsets are less than N / 2 samples.
Les trames interpolées peuvent faire l'objet d'une transmission réduite de paramètres de codage, comme décrit précédemment, mais cela n'est pas obligatoire. Ce mode de réalisation permet de conserver un intervalle M relativement grand entre deux trames d'analyse, et donc de limiter le débit de transmission requis, tout en limitant les discontinuités susceptibles d'apparaître en raison de la taille de cet intervalle par rapport aux échelles de temps typiques des variations des paramètres du signal audio, notamment les coefficients cepstraux et la fréquence fondamentale.
The interpolated frames can be the subject of a reduced transmission of coding parameters, as described above, but this is not compulsory. This embodiment makes it possible to maintain a relatively large interval M between two analysis frames, and therefore to limit the required transmission rate, while limiting the discontinuities likely to appear due to the size of this interval relative to the scales. of time typical of the variations of the parameters of the audio signal, in particular the cepstral coefficients and the fundamental frequency.
Claims
1. Procédé de codage d'un signal audio (x), dans lequel on estime une fréquence fondamentale (F0) du signal audio, on détermine un spectre du signal audio par une transformée dans le domaine fréquentiel d'une trame du signal audio, et on inclut dans un flux numérique de sortie (Φ) des données représentatives d'amplitudes spectrales associées à certaines au moins des fréquences du spectre, caractérisé en ce que les données incluses dans le flux numérique de sortie comprennent des données de codage d'une composante non-harmonique du signal audio, comprenant des données représentatives d'amplitudes spectrales associées à des fréquences situées dans des zones du spectre intermédiaires par rapport aux fréquences multiples de la fréquence fondamentale estimée.1. Method for coding an audio signal (x), in which a fundamental frequency (F 0 ) of the audio signal is estimated, a spectrum of the audio signal is determined by a frequency domain transform of a frame of the audio signal , and data representative of spectral amplitudes associated with at least some of the frequencies of the spectrum are included in a digital output stream (Φ), characterized in that the data included in the digital output stream comprise coding data of a non-harmonic component of the audio signal, comprising data representative of spectral amplitudes associated with frequencies located in regions of the intermediate spectrum with respect to the frequencies multiple of the estimated fundamental frequency.
2. Procédé selon la revendication 1 , dans lequel lesdites amplitudes spectrales associées aux fréquences situées dans les zones intermédiaires sont des valeurs du module du spectre pour des fréquences de la forme (k+1/2).F0, k désignant un entier et F0 la fréquence fondamentale estimée.2. Method according to claim 1, in which said spectral amplitudes associated with the frequencies located in the intermediate zones are values of the modulus of the spectrum for frequencies of the form (k + 1/2) .F 0 , k denoting an integer and F 0 the estimated fundamental frequency.
3. Procédé selon la revendication 1 ou 2, dans lequel lesdites données représentatives d'amplitudes spectrales associées aux fréquences situées dans les zones intermédiaires sont obtenues au moyen de coefficients cepstraux (cxjnf) calculés en transformant dans le domaine cepstral une enveloppe inférieure comprimée (LX_inf) du spectre du signal audio.3. Method according to claim 1 or 2, wherein said data representative of spectral amplitudes associated with the frequencies located in the intermediate zones are obtained by means of cepstral coefficients (cxjnf) calculated by transforming in the cepstral domain a compressed lower envelope (LX_inf ) of the audio signal spectrum.
4. Procédé selon la revendication 3, dans lequel l'enveloppe inférieure comprimée (LX_inf) est déterminée par interpolation desdites amplitudes spectrales associées aux fréquences situées dans les zones intermédiaires, avec application d'une fonction de compression spectrale.4. Method according to claim 3, in which the compressed lower envelope (LX_inf) is determined by interpolation of said spectral amplitudes associated with the frequencies located in the intermediate zones, with application of a spectral compression function.
5. Procédé selon la revendication 3 ou 4, dans lequel la transformation dans le domaine cepstral de l'enveloppe inférieure comprimée (LX_inf) est effectuée suivant une échelle de fréquences non-linéaire.5. Method according to claim 3 or 4, wherein the transformation in the cepstral domain of the compressed lower envelope (LX_inf) is carried out according to a non-linear frequency scale.
6. Procédé selon l'une quelconque des revendications 3 à 5, dans lequel les coefficients cepstraux (cx_inf) sont quantifiés pour former lesdites données représentatives des amplitudes spectrales associées aux fréquences situées dans les zones intermédiaires.6. Method according to any one of claims 3 to 5, wherein the cepstral coefficients (cx_inf) are quantified to form said data representative of the spectral amplitudes associated with the frequencies located in the intermediate zones.
7. Procédé selon la revendication 6, dans lequel la quantification des coefficients cepstraux (cxjnf) porte sur un résidu de prédiction pour chacun des coefficients cepstraux.7. The method of claim 6, wherein the quantification of cepstral coefficients (cxjnf) relates to a prediction residue for each of the cepstral coefficients.
8. Procédé selon la revendication 7, dans lequel le résidu de prédiction pour un coefficient cepstral est de la forme (cx[n,i] - α(i).rcx_q[n-1 ,i])/[2-α(i)], où cx[n,i] désigne une valeur courante dudit coefficient cepstral, rcx_q[n-1 ,i] désigne une valeur précédente du résidu de prédiction quantifié, et α(i) désigne un coefficient de prédiction.8. Method according to claim 7, in which the prediction residue for a cepstral coefficient is of the form (cx [n, i] - α (i) .rcx_q [n-1, i]) / [2-α ( i)], where cx [n, i] denotes a current value of said cepstral coefficient, rcx_q [n-1, i] denotes a previous value of the quantized prediction residue, and α (i) denotes a prediction coefficient.
9. Procédé selon la revendication 7 ou 8, dans lequel on emploie des prédicteurs différents pour déterminer les résidus de prédiction pour au moins deux des coefficients cepstraux.9. The method of claim 7 or 8, in which different predictors are used to determine the prediction residues for at least two of the cepstral coefficients.
10. Procédé selon l'une quelconque des revendications 1 à 9, dans lequel les données incluses dans le flux numérique de sortie (Φ) comprennent en outre des données de codage d'une composante harmonique du signal audio, comprenant des données représentatives d'amplitudes spectrales associées à des fréquences multiples de la fréquence fondamentale estimée (F0).10. Method according to any one of claims 1 to 9, in which the data included in the digital output stream (Φ) further comprises data for coding a harmonic component of the audio signal, comprising data representative of spectral amplitudes associated with frequencies multiple of the estimated fundamental frequency (F 0 ).
11. Procédé selon la revendication 10, dans lequel l'amplitude spectrale associée à une desdites fréquences multiples de la fréquence fondamentale (F0) est un maximum local du module du spectre au voisinage de ladite fréquence multiple.11. The method of claim 10, wherein the spectral amplitude associated with one of said frequencies multiple of the fundamental frequency (F 0 ) is a local maximum of the spectrum module in the vicinity of said multiple frequency.
12. Procédé selon la revendication 10 ou 11 , dans lequel lesdites données représentatives d'amplitudes spectrales associées à des fréquences multiples de la fréquence fondamentale (F0) sont obtenues au moyen de coefficients cepstraux (cx_sup) calculés en transformant dans le domaine cepstral une enveloppe supérieure comprimée (LX_sup) du spectre du signal audio.12. The method of claim 10 or 11, wherein said data representative of spectral amplitudes associated with frequencies multiple of the fundamental frequency (F 0 ) are obtained by means of cepstral coefficients (cx_sup) calculated by transforming in the cepstral domain a compressed upper envelope (LX_sup) of the audio signal spectrum.
13. Procédé selon la revendication 12, dans lequel l'enveloppe supérieure comprimée (LX_sup) est déterminée par interpolation desdites amplitudes spectrales associées aux fréquences multiples de la fréquence fondamentale (F0), avec application d'une fonction de compression spectrale.13. The method of claim 12, wherein the compressed upper envelope (LX_sup) is determined by interpolation of said spectral amplitudes associated with frequencies multiple of the fundamental frequency (F 0 ), with application of a spectral compression function.
14. Procédé selon la revendication 13, dans lequel la transformation dans le domaine cepstral de l'enveloppe supérieure comprimée (LX_sup) est effectuée suivant une échelle de fréquences non-linéaire.14. The method of claim 13, wherein the transformation in the cepstral domain of the compressed upper envelope (LX_sup) is performed according to a non-linear frequency scale.
15. Procédé selon la revendication 13 ou 14, dans lequel lesdites données représentatives d'amplitudes spectrales associées aux fréquences situées dans les zones intermédiaires sont obtenues au moyen de coefficients cepstraux (cx_inf) calculés en transformant dans le domaine cepstral une enveloppe inférieure comprimée (LX_inf) du spectre du signal audio, l'enveloppe inférieure comprimée étant déterminée par interpolation desdites amplitudes spectrales associées aux fréquences situées dans les zones intermédiaires avec application d'une fonction de compression spectrale, dans lequel les données de codage de la composante non-harmonique comprennent des données de quantification d'un vecteur de NCI coefficients cepstraux (cx_inf) d'ordres 0 à NCI - 1 résultant de la transformation dans le domaine cepstral de l'enveloppe inférieure comprimée, et dans lequel les données de codage de la composante harmonique comprennent des données de quantification d'un vecteur de NCS coefficients cepstraux (cx_sup) d'ordres 0 à NCS - 1 résultant de la transformation dans le domaine cepstral de l'enveloppe supérieure comprimée (LX_sup).15. The method of claim 13 or 14, wherein said data representative of spectral amplitudes associated with the frequencies located in the intermediate zones are obtained by means of cepstral coefficients (cx_inf) calculated by transforming in the cepstral domain a compressed lower envelope (LX_inf ) of the spectrum of the audio signal, the compressed lower envelope being determined by interpolation of said spectral amplitudes associated with the frequencies located in the intermediate zones with application of a spectral compression function, in which the coding data of the non-harmonic component comprises quantification data of an NCI vector cepstral coefficients (cx_inf) of orders 0 to NCI - 1 resulting from the transformation in the cepstral domain of the compressed lower envelope, and in which the coding data of the harmonic component comprise quantization data of a vector d e NCS cepstral coefficients (cx_sup) of orders 0 to NCS - 1 resulting from the transformation in the cepstral domain of the compressed upper envelope (LX_sup).
16. Procédé selon la revendication 15, dans lequel NCS est un nombre sensiblement plus grand que NCI.16. The method of claim 15, wherein NCS is a number substantially greater than NCI.
17. Procédé selon l'une quelconque des revendications 1 à 16, dans lequel on forme une trame estimée de la composante non-harmonique à partir du spectre du signal audio, on subdivise la trame estimée en plusieurs segments temporels, on évalue des énergies de l'estimation de la composante non-harmonique dans les différents segments de la trame estimée, et on inclut dans le flux numérique de sortie, parmi les données de codage de la composante non-harmonique, des données de quantification des énergies évaluées. 17. Method according to any one of claims 1 to 16, in which an estimated frame of the non-harmonic component is formed from the spectrum of the audio signal, the estimated frame is subdivided into several time segments, the energies of the estimation of the non-harmonic component in the different segments of the estimated frame, and in the digital output stream, among the coding data of the non-harmonic component, quantization data of the evaluated energies are included.
18. Procédé selon la revendication 17, dans lequel on détermine la plus grande desdites énergies évaluées (EM), par laquelle on divise chacune des énergies évaluées pour obtenir un vecteur (Emix) de composantes comprises entre 0 et 1 qu'on soumet à une quantification vectorielle.18. The method of claim 17, wherein the largest of said evaluated energies (EM) is determined, by which each of the evaluated energies is divided to obtain a vector (Emix) of components between 0 and 1 which is subjected to a vector quantization.
19. Procédé selon la revendication 17 ou 18, dans lequel lesdites données représentatives d'amplitudes spectrales associées aux fréquences situées dans les zones intermédiaires sont obtenues au moyen de coefficients cepstraux (cxjnf) calculés en transformant dans le domaine cepstral une enveloppe inférieure comprimée (LX_inf) du spectre du signal audio, et dans lequel la formation de la trame estimée de la composante non-harmonique à partir du spectre du signal audio comprend une transformation vers le domaine temporel d'un bloc de signal complexe dont le module est donné par l'enveloppe inférieure et dont la phase est celle du spectre du signal audio.19. The method of claim 17 or 18, wherein said data representative of spectral amplitudes associated with the frequencies located in the intermediate zones are obtained by means of cepstral coefficients (cxjnf) calculated by transforming in the cepstral domain a compressed lower envelope (LX_inf ) of the spectrum of the audio signal, and in which the formation of the estimated frame of the non-harmonic component from the spectrum of the audio signal comprises a transformation towards the time domain of a complex signal block whose modulus is given by l 'lower envelope and whose phase is that of the spectrum of the audio signal.
20. Procédé selon la revendication 17 ou 18, dans lequel lesdites données représentatives d'amplitudes spectrales associées aux fréquences situées dans les zones intermédiaires sont obtenues au moyen de coefficients cepstraux (cx_inf) calculés en transformant dans le domaine cepstral une enveloppe inférieure comprimée (LX_inf) du spectre du signal audio, et dans lequel la formation de la trame estimée de la composante non-harmonique à partir du spectre du signal audio comprend les étapes suivantes :20. The method of claim 17 or 18, wherein said data representative of spectral amplitudes associated with the frequencies located in the intermediate zones are obtained by means of cepstral coefficients (cx_inf) calculated by transforming in the cepstral domain a compressed lower envelope (LX_inf ) of the spectrum of the audio signal, and in which the formation of the estimated frame of the non-harmonic component from the spectrum of the audio signal comprises the following steps:
- identifier des régions harmoniques et des régions non-harmoniques du spectre du signal audio ;- identify harmonic regions and non-harmonic regions of the audio signal spectrum;
- former un signal complexe égal à la valeur du spectre dans chaque région non-harmonique, et ayant dans chaque région harmonique un module donné par l'enveloppe inférieure et la même phase que le spectre ;- form a complex signal equal to the value of the spectrum in each non-harmonic region, and having in each harmonic region a modulus given by the lower envelope and the same phase as the spectrum;
- transformer ledit signal complexe vers le domaine temporel.- transform said complex signal to the time domain.
21. Procédé selon la revendication 3, dans lequel le spectre du signal audio et les coefficients cepstraux (cx_inf) résultant de la transformation de l'enveloppe inférieure comprimée (LX_inf) sont déterminés pour des trames successives de N échantillons du signal audio qui présentent des recouvrements mutuels, et dans lequel lesdites données représentatives d'amplitudes spectrales associées aux fréquences situées dans les zones intermédiaires, obtenues au moyen des coefficients cepstraux calculés en transformant l'enveloppe inférieure comprimée, sont incluses dans le flux numérique de sortie (Φ) pour seulement un sous-ensemble des trames.21. The method of claim 3, wherein the spectrum of the audio signal and the cepstral coefficients (cx_inf) resulting from the transformation of the compressed lower envelope (LX_inf) are determined for successive frames of N samples of the audio signal which have mutual recoveries, and in which said data representative of spectral amplitudes associated with the frequencies located in the intermediate zones, obtained by means of the cepstral coefficients calculated in transforming the compressed lower envelope, are included in the digital output stream (Φ) for only a subset of the frames.
22. Procédé selon la revendication 21 , dans lequel, pour les trames ne faisant pas partie dudit sous-ensemble; on inclut dans le flux numérique de sortie (Φ) des données (icx[n-1/2]) de quantification d'une erreur (ecx[n-1/2]) d'interpolation des coefficients cepstraux résultant de la transformation de l'enveloppe inférieure comprimée (LX_inf).22. The method of claim 21, wherein, for the frames not forming part of said subset; we include in the digital output stream (Φ) data (icx [n-1/2]) for quantification of an error (ecx [n-1/2]) of interpolation of cepstral coefficients resulting from the transformation of the compressed lower envelope (LX_inf).
23. Procédé selon la revendication 21 , dans lequel, pour les trames ne faisant pas partie dudit sous-ensemble, on détermine un filtre interpolateur optimal (128) pour les coefficients cepstraux résultant de la transformation de l'enveloppe inférieure comprimée (LX_inf), et on inclut dans le flux numérique de sortie (Φ) des données (iP) représentant ledit filtre interpolateur optimal.23. The method as claimed in claim 21, in which, for the frames not forming part of said subset, an optimal interpolator filter (128) is determined for the cepstral coefficients resulting from the transformation of the compressed lower envelope (LX_inf), and data (iP) representing said optimal interpolator filter is included in the digital output stream (Φ).
24. Codeur audio, comprenant des moyens pour exécuter un procédé selon l'une quelconque des revendications 1 à 23.24. Audio coder, comprising means for executing a method according to any one of claims 1 to 23.
25. Procédé de décodage d'un flux numérique d'entrée (Φ) représentant un signal audio codé, dans lequel on génère, sur l'étendue du spectre du signal audio, une estimation spectrale (Xv) d'une composante harmonique du signal audio sur la base de premières données de codage incluses dans le flux numérique d'entrée, on génère, sur l'étendue du spectre du signal audio, une estimation spectrale (Xuv) d'une composante non-harmonique du signal audio sur la base de secondes données de codage incluses dans le flux numérique d'entrée, et on combine les estimations spectrales des composantes harmonique et non-harmonique pour former une estimation spectrale globale (Y) qu'on transforme dans le domaine temporel pour produire une version décodée (x ) du signal audio.25. Method for decoding an input digital stream (Φ) representing an encoded audio signal, in which a spectral estimate (X v ) of a harmonic component of the audio signal is generated over the full spectrum of the audio signal audio signal on the basis of first coding data included in the digital input stream, a spectral estimate (X uv ) of a non-harmonic component of the audio signal is generated over the spectrum of the audio signal the base of second coding data included in the digital input stream, and we combine the spectral estimates of the harmonic and non-harmonic components to form a global spectral estimate (Y) which we transform in the time domain to produce a version decoded (x) audio signal.
26. Procédé selon la revendication 25, dans lequel on détermine un vecteur (Emix) de pondération énergétique de segments d'une trame du signal audio à partir de données de quantification incluses dans les secondes données de codage, on génère une trame de bruit qu'on pondère par segments conformément audit vecteur de pondération énergétique, on transforme la trame de bruit pondéré dans le domaine fréquentiel, on calcule une enveloppe spectrale inférieure (X_inf) du signal audio à partir de données de quantification incluses dans les secondes données de codage, et on module la transformée en fréquence de la trame de bruit pondéré par l'enveloppe spectrale inférieure pour former l'estimation spectrale (Xuv) de la composante non-harmonique du signal audio.26. The method of claim 25, wherein a vector (Emix) of energy weighting of segments of a frame of the audio signal is determined from quantization data included in the second coding data, a noise frame is generated which we weight by segments in accordance with said energy weighting vector, we transform the weighted noise frame in the frequency domain, we calculate a lower spectral envelope (X_inf) of the audio signal from data quantization parameters included in the second coding data, and the frequency transform of the noise frame weighted by the lower spectral envelope is modulated to form the spectral estimate (X uv ) of the non-harmonic component of the audio signal.
27. Procédé selon la revendication 25 ou 26, dans lequel la génération des estimations spectrales (Xv, Xuv) des composantes harmonique et non- harmonique du signal audio comporte le calcul d'une enveloppe spectrale supérieure (X_sup) et d'une enveloppe spectrale inférieure (Xjnf) du signal audio à partir de données de quantification de coefficients cepstraux (cx_sup_q, cx_inf_q) incluses dans les premières et secondes données de codage.27. The method of claim 25 or 26, wherein the generation of the spectral estimates (X v , X uv ) of the harmonic and non-harmonic components of the audio signal comprises the calculation of a higher spectral envelope (X_sup) and of a lower spectral envelope (Xjnf) of the audio signal from quantification data of cepstral coefficients (cx_sup_q, cx_inf_q) included in the first and second coding data.
28. Procédé selon la revendication 27, dans lequel les premières données de codage comprennent des données de quantification d'un vecteur de NCS coefficients cepstraux (cx_sup_q) d'ordres 0 à NCS - 1, et les secondes données de codage comprennent des données de quantification d'un vecteur de NCI coefficients cepstraux (cxjnf q) d'ordres 0 à NCI — 1 , NCS étant un nombre sensiblement plus grand que NCI, et dans lequel on complète les NCI coefficients cepstraux d'ordres 0 à NCI - 1 des secondes données de codage par les coefficients cepstraux d'ordres NCI à NCS - 1 des premières données de codage pour calculer l'enveloppe spectrale inférieure (Xjnf) du signal audio.28. The method of claim 27, wherein the first coding data comprises quantization data of a vector of NCS cepstral coefficients (cx_sup_q) of orders 0 to NCS - 1, and the second coding data comprise data of quantification of a vector of NCI cepstral coefficients (cxjnf q) of orders 0 to NCI - 1, NCS being a number significantly greater than NCI, and in which the NCI cepstral coefficients of orders 0 to NCI - 1 are completed second coding data by cepstral coefficients of orders NCI to NCS - 1 of the first coding data for calculating the lower spectral envelope (Xjnf) of the audio signal.
29. Procédé selon la revendication 27 ou 28, dans lequel l'enveloppe spectrale inférieure (Xjnf) est calculée pour des trames successives de N échantillons du signal audio qui présentent des recouvrements mutuels, alors que le flux binaire d'entrée (Φ) n'inclut des données complètes de quantification des coefficients cepstraux (cx_sup_q, cx_inf_q) que pour un sous-ensemble des trames, et dans lequel on interpole les coefficients cepstraux relatifs aux trames dudit sous-ensemble pour calculer l'enveloppe spectrale inférieure relative à une trame ne faisant pas partie dudit sous- ensemble.29. Method according to claim 27 or 28, in which the lower spectral envelope (Xjnf) is calculated for successive frames of N samples of the audio signal which exhibit mutual overlaps, whereas the input bit stream (Φ) n 'includes complete data for quantifying cepstral coefficients (cx_sup_q, cx_inf_q) only for a subset of the frames, and in which the cepstral coefficients relative to the frames of said subset are interpolated to calculate the lower spectral envelope relative to a frame not being part of said subset.
30. Procédé selon la revendication 29, dans lequel, pour les trames ne faisant pas partie dudit sous-ensemble, on corrige les coefficients cepstraux interpolés (cx_i[n-1/2]) sur la base de données (icxjq[n-1/2]) de quantification d'erreur d'interpolation (ecxjq[n-1/2J) incluses dans les données de codage.30. The method of claim 29, wherein, for the frames not forming part of said subset, the cepstral coefficients are corrected. interpolated (cx_i [n-1/2]) on the interpolation error quantification (ecxjq [n-1 / 2J) database (icxjq [n-1/2]) included in the coding data.
31. Procédé selon la revendication 29, dans lequel, pour les trames ne faisant pas partie dudit sous-ensemble, on interpole les coefficients cepstraux par un filtre (128) déterminé sur la base de données de quantification de filtre interpolateur (iP) incluses dans les données de codage.31. The method as claimed in claim 29, in which, for the frames not forming part of said subset, the cepstral coefficients are interpolated by a filter (128) determined on the basis of the interpolator filter quantization data (iP) included in coding data.
32. Procédé selon l'une quelconque des revendications 27 à 31 , dans lequel on détermine une fréquence fondamentale (F0) du signal audio à partir de données de quantification incluses dans le flux binaire d'entrée (Φ), on compare les enveloppes spectrales supérieure et inférieure (X_sup, Xjnf) du signal audio aux fréquences multiples de la fréquence fondamentale pour estimer un degré d'harmonicité (W) du signal audio dépendant de la fréquence, et on pondère les estimations spectrales (Xv, Xuv) des composantes harmonique et non-harmonique en fonction du degré d'harmonicité estimé avant de les sommer pour former l'estimation spectrale globale (Y).32. Method according to any one of claims 27 to 31, in which a fundamental frequency (F 0 ) of the audio signal is determined from quantization data included in the input bit stream (Φ), the envelopes are compared upper and lower spectral (X_sup, Xjnf) of the audio signal at frequencies multiple of the fundamental frequency to estimate a frequency dependent harmonic level (W) of the audio signal, and we weight the spectral estimates (X v , X uv ) harmonic and non-harmonic components as a function of the estimated degree of harmonicity before summing them to form the overall spectral estimate (Y).
33. Procédé selon la revendication 32, dans lequel le degré d'harmonicité (W) estimé à une fréquence multiple de la fréquence fondamentale (F0) est une fonction croissante du rapport entre l'enveloppe spectrale supérieure (X sup) et l'enveloppe spectrale inférieure (Xjnf).33. The method as claimed in claim 32, in which the degree of harmony (W) estimated at a frequency multiple of the fundamental frequency (F 0 ) is an increasing function of the ratio between the upper spectral envelope (X sup) and the lower spectral envelope (Xjnf).
34. Procédé selon la revendication 32 ou 33, dans lequel l'estimation spectrale (Xv) de la composante harmonique est pondérée en module par un gain (gv) dépendant par une fonction non-linéaire croissante du degré d'harmonicité estimé (W), et l'estimation spectrale de la composante non- harmonique (Xuv) est pondérée par un gain (guv) dépendant par une fonction non-linéaire décroissante du degré d'harmonicité estimé, la somme des deux gains (gv, guv) étant constante.34. The method as claimed in claim 32 or 33, in which the spectral estimate (X v ) of the harmonic component is weighted in modulus by a gain (g v ) dependent by an increasing non-linear function on the estimated degree of harmony ( W), and the spectral estimate of the non-harmonic component (X uv ) is weighted by a gain (g uv ) dependent by a decreasing non-linear function of the estimated degree of harmonicity, the sum of the two gains (g v , g uv ) being constant.
35. Procédé selon l'une quelconque des revendications 32 à 34, dans lequel on effectue une estimation préliminaire de la phase (φv) du spectre de la composante harmonique du signal audio, et on détermine la phase de l'estimation spectrale de la composante harmonique comme une combinaison linéaire de ladite estimation préliminaire et de la phase (φuv) de l'estimation spectrale de la composante non-harmonique respectivement pondérées par des premier et second gains (gv guv ), le premier gain (gv ) dépendant par une fonction non-linéaire décroissante du degré d'harmonicité estimé (W), et la somme des premier et second gains étant égale à 1.35. Method according to any one of claims 32 to 34, in which a preliminary estimation of the phase (φ v ) of the spectrum of the harmonic component of the audio signal is carried out, and the phase of the spectral estimation of the frequency is determined. harmonic component as a linear combination of said preliminary estimate and the phase (φ uv ) of the estimate spectral of the non-harmonic component respectively weighted by first and second gains (g v g uv ), the first gain (g v ) depending by a decreasing non-linear function of the estimated degree of harmonicity (W), and the sum first and second winnings being equal to 1.
36. Procédé selon la revendication 35, dans lequel le premier gain (gv ) dépend de la fréquence par une fonction non-linéaire croissante.36. The method of claim 35, wherein the first gain (g v ) depends on the frequency by an increasing non-linear function.
37. Décodeur audio, comprenant des moyens pour exécuter un procédé selon l'une quelconque des revendications 25 à 36. 37. Audio decoder, comprising means for carrying out a method according to any one of claims 25 to 36.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9908636A FR2796192B1 (en) | 1999-07-05 | 1999-07-05 | AUDIO ENCODING AND DECODING METHODS AND DEVICES |
FR9908636 | 1999-07-05 | ||
PCT/FR2000/001907 WO2001003119A1 (en) | 1999-07-05 | 2000-07-04 | Audio encoding and decoding including non harmonic components of the audio signal |
Publications (1)
Publication Number | Publication Date |
---|---|
EP1192620A1 true EP1192620A1 (en) | 2002-04-03 |
Family
ID=9547705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP00949622A Withdrawn EP1192620A1 (en) | 1999-07-05 | 2000-07-04 | Audio encoding and decoding including non harmonic components of the audio signal |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP1192620A1 (en) |
AU (1) | AU6292100A (en) |
FR (1) | FR2796192B1 (en) |
WO (1) | WO2001003119A1 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU696092B2 (en) * | 1995-01-12 | 1998-09-03 | Digital Voice Systems, Inc. | Estimation of excitation parameters |
US5754974A (en) * | 1995-02-22 | 1998-05-19 | Digital Voice Systems, Inc | Spectral magnitude representation for multi-band excitation speech coders |
WO1999010719A1 (en) * | 1997-08-29 | 1999-03-04 | The Regents Of The University Of California | Method and apparatus for hybrid coding of speech at 4kbps |
-
1999
- 1999-07-05 FR FR9908636A patent/FR2796192B1/en not_active Expired - Fee Related
-
2000
- 2000-07-04 EP EP00949622A patent/EP1192620A1/en not_active Withdrawn
- 2000-07-04 AU AU62921/00A patent/AU6292100A/en not_active Abandoned
- 2000-07-04 WO PCT/FR2000/001907 patent/WO2001003119A1/en not_active Application Discontinuation
Non-Patent Citations (1)
Title |
---|
See references of WO0103119A1 * |
Also Published As
Publication number | Publication date |
---|---|
FR2796192A1 (en) | 2001-01-12 |
FR2796192B1 (en) | 2001-10-05 |
WO2001003119A1 (en) | 2001-01-11 |
AU6292100A (en) | 2001-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
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 | |
EP1692689B1 (en) | Optimized multiple coding method | |
EP1593116B1 (en) | Method for differentiated digital voice and music processing, noise filtering, creation of special effects and device for carrying out said method | |
WO2005106852A1 (en) | Improved voice signal conversion method and system | |
EP0428445B1 (en) | Method and apparatus for coding of predictive filters in very low bitrate vocoders | |
FR2784218A1 (en) | LOW-SPEED SPEECH CODING METHOD | |
EP1606792A1 (en) | Method for analyzing fundamental frequency information and voice conversion method and system implementing said analysis method | |
FR2653557A1 (en) | APPARATUS AND METHOD FOR SPEECH PROCESSING. | |
WO2023165946A1 (en) | Optimised encoding and decoding of an audio signal using a neural network-based autoencoder | |
EP1192619B1 (en) | Audio coding and decoding by interpolation | |
EP0616315A1 (en) | Digital speech coding and decoding device, process for scanning a pseudo-logarithmic LTP codebook and process of LTP analysis | |
EP1192621B1 (en) | Audio encoding with harmonic components | |
EP1192618B1 (en) | Audio coding with adaptive liftering | |
EP1190414A1 (en) | Encoding and decoding with harmonic components and minimum phase | |
EP1194923B1 (en) | Methods and device for audio analysis and synthesis | |
EP1192620A1 (en) | Audio encoding and decoding including non harmonic components of the audio signal | |
FR2773653A1 (en) | Input sound digital word decoding/coding device, especially for analyzing and compressing inputs for recording | |
WO2013135997A1 (en) | Modifying the spectral characteristics of a linear prediction filter of a digital audio signal represented by the lsf or isf coefficients thereof | |
FR2737360A1 (en) | Audio digital signal coding method of successive sample blocks - using spectral analysis to select vector dictionary for each sample block and allocating vector and scalar quantisation bits | |
WO2002029786A1 (en) | Method and device for segmental coding of an audio signal | |
FR2739482A1 (en) | Speech signal analysis method e.g. for low rate vocoder | |
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: 20020107 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL |
|
AX | Request for extension of the european patent |
Free format text: AL;LT;LV;MK;RO;SI |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: NORTEL NETWORKS FRANCE |
|
17Q | First examination report despatched |
Effective date: 20040226 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20040708 |