PROCEDE D'EXTRACTION DE PARAMETRES D'UN SIGNAL AUDIO, ET CODEUR METTANT EN ŒUVRE UN TEL PROCEDE
La présente invention concerne les techniques de codage et décodage des signaux audio, en particulier, mais non exclusivement, de signaux de parole.
L'invention est notamment applicable dans des dispositifs permettant de compresser des signaux audio dans une gamme de débit de l'ordre de quelques kilobits par seconde, avec une bonne qualité, croissante en fonction du débit. Une déclinaison hiérarchique d'un tel dispositif, c'est-à-dire avec un train binaire de sortie composé de couches de bits permettant une amélioration progressive de la qualité est également possible.
Le domaine du codage de la parole et des sons a connu beaucoup d'activité au cours de la dernière décennie. Les progrès des processeurs ont permis la mise au point d'algorithmes de plus en plus complexes mais aussi de plus en plus performants.
La distinction entre les codeurs de parole et les codeurs de sons existe encore mais a tendance à se réduire. Dans les années passées, les codeurs de parole reposaient plutôt sur des techniques temporelles. A très bas débit, on rencontre également des codeurs reposant sur une analyse fréquentielle du signal : codeurs de type harmonique, sinusoïdal ou MBE (« Multi-Band Excitation »). L'invention relève de cette catégorie de techniques.
L'oreille travaille en fréquence, de sorte que la représentation spectrale d'un signal est bien adaptée à l'audition. Ainsi, l'essentiel des données sur la perception, aussi bien en ce qui concerne la perception des sons harmoniques, des bruits, que des phénomènes de masquage fréquentiel, sont expliquées dans le domaine fréquentiel. La représentation fréquentielle du signal permet donc d'introduire plus facilement des connaissances sur la perception et donc permet de se rapprocher d'un codage perceptuellement plus efficace.
En outre, la structure fréquentielle de ces codeurs se prête bien à la conception de codeurs à des débits différents, voire hiérarchiques.
Le codeur MBE s'inspire de modèles harmoniques (voir : L.B. Almeida et J.M. Tribolet, « Harmonie coding: a low bit rate, good-quality speech coding technique », Proc. ICASSP, 1982, pages 1664-1667 ; L.B. Almeida et J.M.
Tribolet, « Nonstationnary spectral modeling of voiced speech », IEEE Transactions on Acoustics, Speech, and Signal Processing, 1983, pages 664-677; L.B. Almeida et F. M. Silva, « Variable-Frequency Synthesis: An Improved Harmonie Coding Scheme », Proc. ICASSP, 1984, pages 27.5.1- 27.5.4) et sinusoïdaux (voir R.J. McAulay et T.F. Quatieri, « Speech Analysis / Synthesis based on a sinusoïdal représentation », IEEE Transactions on Acoustics, Speech, and Signal Processing, 1986, pages 744-754 ; T.F. Quatieri and R.J. McAulay, « Speech Transformation Based on a Sinusoïdal Représentation », IEEE Transactions on Acoustics, Speech, and Signal Processing, 1986, pages 1449-1464 ; R.J. McAulay and T.F. Quatieri, « Multirate sinusoïdal transform coding at rates from 2.4 KBPS to 8 KBPS », Proc. ICASSP, 1987, pages 38.7.1-38.7.4).
Depuis la première apparition du modèle MBE (D.W. Griffin et J.S. Lim, « Multiband Excitation Vocoder », IEEE Transactions on Acoustics, Speech, and Signal Processing, Vol. 36, No. 8, août 1988, pages 1223-1225), de nombreux codeurs se sont développés basés sur des principes similaires (voir J.C. Hardwick et J.S. Lim, « A 4.8 kbps Multi-Band Excitation speech coder », Proc. ICASSP, 1988, pages 374-377 ; P.C. Meuse, « A 2400 bps Multi-Band Excitation Vocoder », Proc. ICASSP, 1990, pages 9-12 ; M.S. Brandstein, P.A. Montea, J.C. Hardwick et J.S. Lim, « A Real-Time Implementation of the Improved MBE Speech Coder », Proc. ICASSP, 1990, pp. 5-8 ; M. Nishiguchi, J. Matsumoto, R. Wakatsuki et S. Ono, « Vector Quantized MBE With Simplified V/UV Division at 3.0 KBPS », Proc. ICASSP, 1990, pp.151-154, brevet US 5 754 974), jusqu'à l'apparition de la normalisation du codeur MBE en 1991 (voir Digital Voice Systems, « Inmarsat-M voice codée spécifications », 1991).
Le modèle MBE représente un signal de parole comme la multiplication d'une enveloppe spectrale par un spectre d'excitation.
Contrairement aux vocodeurs traditionnels qui utilisent une seule décision de voisement pour le spectre entier du signal, le modèle MBE divise le spectre en bandes fréquentielles et décide si une bande fréquentielle est voisée ou non. Le spectre d'excitation est modélisé soit par un spectre périodique si la bande fréquentielle est déclarée voisée, soit par un spectre de
bruit blanc si la bande fréquentielle est déclarée non voisée.
Les paramètres de sortie du modèle MBE sont la fréquence fondamentale, les décisions de voisement et les amplitudes spectrales. Ils sont calculés en minimisant l'erreur quadratique moyenne ε entre le spectre original et le spectre modélisé d'après la relation suivante :
où N
A représente la longueur d'une fenêtre d'analyse du signal, S
w(n) représente le spectre du signal original pondéré par la fenêtre d'analyse, et
Sw(n) représente le spectre modélisé, l'entier n indexant les fréquences du spectre discret.
Sachant que le spectre d'un signal parfaitement voisé présente des raies dont la forme correspond à celle du lobe principal du module de la transformée de Fourier à court terme de la fenêtre d'analyse, les paramètres άp de l'enveloppe spectrale sont estimés selon :
où W(ω) est le spectre de la fenêtre d'analyse et ώ
0 représente la fréquence fondamentale estimée du signal.
Le spectre synthétisé est alors donné par :
où L représente le nombre d'harmoniques pris en considération.
Pour chaque candidat de la fréquence fondamentale variant autour d'une valeur initiale estimée, l'estimateur idéal consiste donc à générer les amplitudes spectrales complexes selon (2). Ainsi, la réponse fréquentielle de la fenêtre d'analyse centrée sur la p-ième harmonique de la fréquence fondamentale et pondérée par l'amplitude spectrale complexe άp de la p-ième
harmonique est utilisée pour construire le spectre du signal synthétique, d'après l'équation (3). A la valeur minimum de ε donnée par (1) correspond alors la meilleure fréquence fondamentale parmi tous les candidats, à laquelle sont associées les amplitudes âp . Dans le codeur MBE normalisé, le spectre synthétisé est divisé en bandes fréquentielles [ak, bk] contenant chacune trois harmoniques, et le nombre total de bandes est plafonné à douze. Une décision de voisement est déterminée pour chaque bande d'indice k (k = 1 , 2, ...), sur la base de l'erreur spectrale normalisée Dk entre le spectre du signal original et le spectre du signal synthétisé sur la largeur de la bande considérée, donnée par :
Le signal synthétique étant supposé voisé, il est très similaire au signal original dans les régions spectrales voisées et très différent dans les régions spectrales non voisées. Cette mesure de similarité est utilisée pour la décision de voisement par bandes, en comparant Dk à un seuil adaptatif. Si l'erreur normalisée Dk est inférieure au seuil, alors la bande fréquentielle k a une structure harmonique et elle est déclarée voisée ; sinon elle est déclarée non voisée.
Le codeur MBE présente un certain nombre d'inconvénients, essentiellement dus à une modélisation très contrainte du signal. Il en résulte des distorsions audibles du signal : les voix de femme, en particulier, présentent parfois une qualité médiocre. De manière générale, la voix codée en MBE souffre d'un certain manque de naturel. Les présents inventeurs ont observé que, ces défauts apparaissent même si on ne quantifie pas les paramètres du codage (ώ0 et les άp pour les bandes voisées). Ils proviennent donc du modèle et non pas seulement de la quantification.
Dans « Speech Coding using Bi-harmonic spectral modeling », par C. Garcia-Mateo, J.L. Alba-Castro et E. R-Banga, (Proc. EUROSPEECH, 1994,
pages 391-394) et dans « Wideband speech coding based on the MBE structure », par A. Amodio et G. Feng, (Proc. EUROSPEECH, 1997, pages 1499-1502), il a été observé que les raies du spectre synthétisé et les raies du spectre original peuvent être décalées, surtout aux hautes fréquences. Ainsi, une bande voisée dans laquelle les raies spectrales sont décalées conduit à un mauvais calcul des amplitudes ou même à une prise de décision de voisement erronée. Aussi, durant les dernières années, plusieurs auteurs se sont intéressés à de nouveaux critères de voisement. Beaucoup de propositions ont été faites, mais toutes avec une complexité de calcul assez importante. Dans le modèle MBE normalisé, le spectre non voisé est construit en multipliant une enveloppe spectrale estimée par un spectre de bruit blanc, et le signal non voisé est obtenu par une transformée de Fourier inverse. Cependant, à cause de la variation temporelle des paramètres, qui amène des discontinuités du signal aux jonctions des trames, il est nécessaire d'utiliser une méthode de synthèse permettant d'assurer la continuité du signal de trame en trame. Une méthode par addition pondérée avec recouvrement qui consiste à construire le signal temporel en le multipliant par une fenêtre de synthèse de longueur deux fois la trame est utilisée dans le codeur MBE. Les composantes pondérées du signal de la trame courante correspondant à la partie croissante de la fenêtre de synthèse sont additionnées aux composantes pondérées de la trame précédente correspondant à la partie décroissante de la fenêtre de synthèse. La continuité du signal de trame en trame est alors garantie en additionnant les contributions pondérées des signaux issus de deux trames successives. Certains auteurs ont proposé de représenter les régions non voisées d'un signal audio par des méthodes de synthèse sinusoïdale à condition que les raies spectrales soient suffisamment proches (voir R.J. McAulay et T.F. Quatieri, « Speech Analysis/Synthesis based on a sinusoïdal représentation », IEEE Transactions on Acoustics, Speech, and Signal Processing, 1986, pages 744-754 ; J.S. Marques et L.B. Almeida, « Sinusoïdal Modeling of Voiced and Unvoiced Speech », Proc. EUROSPEECH, 1989, pages 203-206 ; J.S. Marques, « Sinusoïdal Modeling of Speech : Application to Médium to Low Bit Rate Coding », Thèse de Doctorat, Université Technique de Lisbonne, 1989 ;
J.S. Marques, L.B. Almeida et J.M. Tribolet, « Harmonie Coding at 4.8 KP/S », Proc. ICASSP, 1990, pages 17-20. Ainsi, même si pour modéliser les régions non voisées d'un signal, le premier des trois articles ci-dessus montre que la représentation sinusoïdale peut être effectuée en espaçant les raies spectrales d'environ 100 Hz pour une trame de 20 ms. En fait, les présents inventeurs ont constaté qu'une modélisation des régions non voisées d'un signal en espaçant les raies de 100 Hz pour une trame de 20 ms ne suffit pas à produire une qualité de signal non voisé satisfaisante. Par contre elle est satisfaisante pour une trame d'analyse de 10 ms. Afin d'obtenir une qualité du signal non voisé synthétisé très proche de l'original, une représentation des signaux bruités doit être effectuée en générant des raies spectrales très proches. La modélisation sinusoïdale des spectres bruités a pour but non pas de modéliser une structure spectrale harmonique, puisque celle ci n'existe pas, mais permet de donner une image de la répartition d'énergie dans le spectre. Cette modélisation peut être vue comme un échantillonnage fin de l'énergie spectrale. Les publications précitées proposent alors d'utiliser un nombre fixe de raies spectrales régulièrement espacées pour modéliser le spectre.
Dans "Harmonic-Plus-Noise Décomposition and its Application in Voiced/Unvoiced Classification", (IEEE Tencon '97, Brisbane, décembre 1997), R. Ahn et W.H. Holmes ont présenté un autre modèle de représentation des signaux de parole voisés sous forme d'une somme d'une composante harmonique et d'une composante de bruit. A partir de ce modèle, le rapport entre les énergies de la composante harmonique et de la composante de bruit est calculé dans différentes sous-bandes puis totalisé dans l'ensemble de la bande pour déterminer si le signal de parole est voisé ou non.
Un but principal de la présente invention est d'adapter la partie modélisation des codeurs de type MBE ou analogues, afin d'obtenir une bonne représentation de la répartition énergétique dans le spectre du signal audio.
L'invention propose ainsi un procédé d'extraction de paramètres d'un signal audio, comprenant les étapes suivantes :
- déterminer un spectre du signal par transformation d'une trame du signal audio dans le domaine fréquentiel ;
- évaluer des amplitudes de raies spectrales correspondant, dans le spectre du signal, à des harmoniques d'une fréquence fondamentale estimée ;
- subdiviser le spectre du signal en plusieurs portions correspondant à différentes bandes fréquentielles comprenant chacune au moins une harmonique de la fréquence fondamentale estimée ;
- sélectionner un type de modélisation pour chaque bande fréquentielle en fonction d'un critère de comparaison entre la portion du spectre correspondant à ladite bande et une représentation harmonique de ladite portion, définie par des quantités incluant chaque amplitude de raie spectrale correspondant à une harmonique comprise dans ladite bande ;
- inclure une indication des types de modélisation respectivement sélectionnés pour les différentes bandes fréquentielles dans des paramètres de sortie relatifs à la trame du signal audio ; - si un type de modélisation harmonique a été sélectionné pour au moins une bande fréquentielle, inclure dans les paramètres de sortie relatifs à la trame chaque amplitude de raie spectrale correspondant à une harmonique comprise dans une bande pour laquelle le type de modélisation harmonique a été sélectionné et, si le type de modélisation harmonique n'a pas été sélectionné pour au moins une autre bande fréquentielle, des grandeurs décrivant une représentation non- harmonique de la portion du spectre correspondant à ladite autre bande. Selon l'invention, le critère de comparaison entre une portion du spectre et sa représentation harmonique est déterminé par le rapport entre les énergies de ladite représentation harmonique et de ladite portion du spectre.
Ce critère est très simple pour la sélection entre sons voisés et sons non voisés. En fait l'objet du critère n'est pas à proprement parler de discriminer les régions voisées des régions non voisées, mais plutôt les régions bien modélisées des régions mal modélisées par la description des amplitudes de raies spectrales correspondant aux harmoniques ώ0 , 2ώ0 ) 3ώQ , ... d'une estimation ώ0 de la fréquence fondamentale du signal. Ayant supposé que le signal synthétisé était voisé, il est très similaire au signal original dans les régions voisées. Si le spectre du signal original présente une structure
harmonique dans une bande fréquentielle, alors le rapport des énergies intervenant dans le critère est proche de 1. Cependant, ce rapport peut être proche de 1 sans pour autant que le spectre du signal original présente une structure harmonique. En effet, on a vu que la représentation des signaux bruités peut être faite à l'aide d'un modèle sinusoïdal dès l'instant que les raies spectrales, correspondant aux sinusoïdes, sont assez proches. En résumé, si le rapport des énergies est faible, alors le spectre du signal original présente nécessairement une structure bruitée, tandis que s'il est relativement élevé, le spectre du signal original peut présenter soit une structure bruitée soit une structure harmonique.
Le critère préconisé par l'invention, qui repose sur ces considérations, donne une image de la répartition d'énergie dans le spectre afin que celle-ci ait la meilleure représentation possible. Les inventeurs ont en effet constaté qu'il était plus important de bien représenter cette distribution énergétique dans le spectre que de réaliser un ajustement précis sur la forme des raies spectrales correspondant aux harmoniques.
Une analyse spectrale montre que les raies du spectre synthétisé dans la modélisation harmonique et les raies du spectre original sont parfois décalées notamment aux hautes fréquences. La pente de la raie étant relativement raide dans le cas d'un signal voisé, une petite erreur de positionnement de l'harmonique peut provoquer une forte sous-estimation de son amplitude. Ainsi, dans le codeur MBE, une bande voisée dans laquelle les raies spectrales sont décalées conduit à un mauvais calcul des amplitudes spectrales et peut même faire déclarer la bande comme non voisée. Pour éviter un tel inconvénient, dans un mode de réalisation préféré du procédé selon l'invention, l'évaluation des amplitudes de raies spectrales comprend l'obtention d'une première estimation de la fréquence fondamentale pour la trame de signal audio et, pour au moins une harmonique de la première estimation de la fréquence fondamentale, le positionnement, dans un voisinage de ladite harmonique, d'une raie spectrale ayant une distance minimale avec le spectre du signal, l'amplitude évaluée pour ladite harmonique étant celle de la raie ainsi positionnée.
Afin de limiter le nombre de paramètres extraits, pour optimiser le débit
du codeur, on peut ne transmettre au décodeur qu'une seule fréquence harmonique par trame, à savoir celle de la première harmonique, étant remarqué que l'oreille est beaucoup plus sensible aux basses fréquences qu'aux hautes fréquences. Cette fréquence transmise représente une estimation affinée de la fréquence fondamentale résultant de la recherche du maximum local autour de la première raie spectrale. Les études menées ont montré que la transmission au décodeur de davantage de valeurs des fréquences harmoniques (les fréquences des maxima locaux) ne conduit pas à une amélioration perceptible du signal de parole synthétisé. Selon un autre aspect de l'invention, il est proposé de modéliser les régions non voisées du signal par des méthodes de synthèse sinusoïdale utilisant une répartition non uniforme du pas d'échantillonnage en fréquence, cette répartition non uniforme permettant une bonne qualité de synthèse pour un nombre relativement restreint de raies à coder. Ainsi, lorsque le type de modélisation harmonique n'a été sélectionné pour aucune des bandes fréquentielles, on inclut dans les paramètres de sortie relatifs à la trame courante des échantillons du spectre du signal à des fréquences ayant un espacement croissant vers les hautes fréquences.
Les méthodes mises en œuvre par l'invention permettent d'atteindre une qualité du signal très proche de celle de l'original, au niveau du modèle. Divers modes de quantification connus peuvent être appliqués pour communiquer des valeurs quantifiées des paramètres extraits au décodeur. Le procédé est utilisable pour tout type de signal, notamment signal de parole bruité ou non bruité, et un signal de musique. Un autre aspect de la présente invention se rapporte à un codeur audio, comprenant des moyens d'extraction de paramètres d'un signal audio et des moyens de quantification des paramètres extraits, les moyens d'extraction étant agencés pour mettre en œuvre un procédé tel qu'exposé ci-dessus.
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 ;
- la figure 2 est un schéma synoptique d'un décodeur audio correspondant.
L'invention est décrite ci-après dans son application non limitative à une amélioration du codée MBE normalisé. En l'absence de mention particulière, les éléments de ce codée peuvent être les mêmes que ceux prévus dans le document Digital Voice Systems, « Inmarsat-M voice codée spécifications », 1991 , qui est incorporé ici à titre de référence.
En référence à la figure 1 , le signal audio s(t), qu'on suppose disponible sous forme numérique à une cadence d'échantillonnage de 8 kHz par exemple, est réparti en trames successives auxquelles un module 1 applique une fonction de fenêtrage prédéfinie. Cette fonction correspond par exemple à une fenêtre de Hamming classique appliquée à une trame de 16 ms (128 échantillons).
Au niveau du codeur, un module 2 applique à chaque trame de signal pondéré une transformation vers le domaine fréquentiel, telle qu'une transformée de Fourier rapide (TFR). Le nombre de points de la TFR est par exemple de 256, incluant les 128 échantillons de la trame courante.
Un module 3 calcule une première estimation ώ0 de la fréquence fondamentale du signal sur la trame courante. Comme représenté sur la figure 1 , cette estimation peut être opérée dans le domaine fréquentiel à partir du spectre Sw(n). Elle pourrait aussi être effectuée dans le domaine temporel, par des méthodes connues.
Un module 4 du codeur effectue une analyse harmonique du spectre Sw(n) à l'aide de l'estimation ώ0 de la fréquence fondamentale.
On peut considérer que cette analyse revient à évaluer une fréquence fondamentale pour chaque harmonique, dans une zone fréquentielle limitée autour de ώ0 , plutôt que d'évaluer une fréquence fondamentale pour la trame entière comme il est fait dans le codeur MBE. Ceci permet de bien cadrer les harmoniques pour le cas où celles-ci ne se trouverait pas exactement sur les multiples entiers de l'estimation ώ0.
On prend en considération un nombre P de raies spectrales correspondant aux harmoniques de ώ0 . Pour chaque raie p (1 < p ≤ P), le module 4 recherche la fréquence ώp = ώ0 + Δωp pour laquelle la raie spectrale
du spectre à synthétiser, centrée sur p.ώp ) coïncide au mieux avec la raie du spectre original. A titre d'exemple, la recherche peut être effectuée en balayant dix valeurs possibles ωj de la fréquence autour de ώ0 , indexées par un entier j
et de la forme ώ^ = ?• _ < » avec 1 ≤ j ≤ 10. Pour chaque index j, une ώ0 8
amplitude άp est calculée par une projection similaire à (2) :
La fréquence fondamentale ώp retenue pour la p-ième raie est alors celle qui minimise la distance :
(p+1/2).ώj
FJ = Sw(n) α t^p..W /(tnn--pp. ω (6) n=(p-1/2). j L'amplitude spectrale correspondant au minimum, donnée par (5), est notée άp , et la p-ième raie spectrale synthétisée Sp(n) = âp.w(n-p.ώp ).
Le module 4 permet d'obtenir la fréquence fondamentale optimale pour laquelle la raie du spectre synthétisé coïncide au mieux avec la raie du spectre original. Ainsi, le calcul des amplitudes est beaucoup plus précis. Cela améliore sensiblement la prise de décision de voisement ultérieure puisqu'une erreur importante entre le spectre synthétisé et le spectre original ne peut plus provenir du décalage entre les raies spectrales mais bien du fait que le signal est réellement non voisé.
Le codeur de la figure 1 utilise une subdivision du spectre du signal en portions correspondant à K bandes fréquentielles contiguës. Par exemple, chacune de ces bandes k (1 ≤ k ≤ K) comprend trois harmoniques de la fréquence fondamentale, à savoir les harmoniques de rang p = 3k-2, p = 3k— 1 et p = 3k. Dans chaque bande k, le signal synthétisé suivant la représentation
harmonique est donné par
3k Λ sw(n) = ∑ Sp(n) (7) p=3k-2
Le nombre K de bandes considérées est par exemple limité à douze.
Pour chaque bande k, un module 5 du codeur calcule un critère de comparaison pk en vue d'une décision de modélisation du spectre dans la bande, prise par un module 6. L'expression du critère pk peut notamment être :
où le coefficient Coef
k = 1/kP traduit une décroissance générale du critère p
k en fonction de la fréquence (β > 0). On voit que pour chaque bande k, le critère p
k selon (8) est gouverné par le rapport entre l'énergie Num
k de la représentation harmonique approchée S^(n) de la portion du spectre et l'énergie Den
k de cette portion du spectre S
w(n).
Pour prendre la décision de modélisation dans chaque bande fréquentielle, le module 6 compare le critère pk à un seuil R qui peut être fixe ou adaptatif. Dans une réalisation particulière où pk est donné par (8) avec β = 1/8, ce seuil R est fixé à 0,65. Chaque décision de modélisation est exprimée par un bit γk, avec γk = 1 pour une modélisation harmonique (pk ≥ R) et γk = 0 pour une modélisation non harmonique (pk < R).
Les K bits γk sont fournis au module 7 qui extrait les échantillons spectraux qui seront adressés au décodeur.
Dès lors qu'au moins une bande k présente une modélisation harmonique (γk = 1 ), la fréquence fondamentale estimée est quantifiée par un module 8 pour être transmise au décodeur afin de lui permettre de retrouver la subdivision en bandes fréquentielles et les positions des harmoniques. Pour optimiser la représentation de la fréquence fondamentale, la valeur transmise
correspond avantageusement à celle qui a été retenue pour la première raie du spectre harmonique, soit ώ1. Le module 8 peut appliquer diverses méthodes de quantification scalaire bien connues dans le domaine du codage des signaux. Pour chaque bande k qui présente une modélisation harmonique
(γk = 1 ), les échantillons extraits par le module 7 sont constitués par les modules des amplitudes άp des trois raies correspondantes (p = 3k-2, p = 3k-1 et p = 3k). Si au moins une autre bande k' ne présente pas de modélisation harmonique d'après le critère de comparaison (γk> = 0), les échantillons extraits représentent le la portion correspondante du spectre Sw(n) échantillonnée à intervalles réguliers égaux à un ou plusieurs intervalles élémentaires de la transformée de Fourier. Ces derniers échantillons sont par exemple constitués par des modules du spectre.
Quand aucune bande ne présente une modélisation harmonique (γk = 0 pour 1 ≤ k ≤ K), il n'est pas nécessaire de transmettre une fréquence fondamentale au décodeur. Le spectre Sw(n) est alors échantillonné par le module 7 avec un pas en fréquence variable. Plus précisément, ce pas augmente avec la fréquence. L'échantillonnage peut ne porter que sur le module du spectre. La variation du pas d'échantillonnage est par exemple gouvernée par la fonction :
où C est un coefficient choisi en fonction du nombre prédéterminé Q d'échantillons extraits par le module 7 (1 ≤ q ≤ Q). Ce coefficient C peut lui- même avoir une croissance exponentielle en fonction de Q. A titre d'exemple, C « 90 pour Q = 70, ce qui donne une représentation fidèle d'un spectre non voisé. Les positions en fréquence abs(q) des échantillons extraits sont déterminées de façon récursive. On commence par prendre abs(1) = roι/nc/[f(1 )], round[x] désignant l'entier le plus proche du réel x, puis on calcule la q-ième position après avoir obtenu les q-1 précédentes :
abs(q) = abs(q-1 ) + rot/t7d[f(q)-f(q-1 )] (10)
En pratique, les valeurs abs(q) peuvent être lues par le codeur et le décodeur dans un tableau pré-calculé et mémorisé une fois pour toutes.
Cet échantillonnage non uniforme des portions non voisées du spectre permet d'améliorer nettement la qualité du signal synthétisé qui tend alors vers la qualité du signal original tout en conservant un nombre raisonnable de paramètres extraits lors de l'analyse pour une quantification à bas débit. Les inventeurs ont en effet constaté que l'utilisation d'un pas d'échantillonnage très faible aux basses fréquences et d'un pas d'échantillonnage beaucoup plus élevé aux hautes fréquences (plutôt qu'un même pas d'échantillonnage très faible sur tout le spectre) ne dégrade pas la qualité du signal synthétisé, même si sa modélisation spectrale aux hautes fréquences présente de nombreux trous d'énergie. Cette observation est s'explique par le fait que l'oreille est beaucoup plus sensible aux basses fréquences qu'aux hautes fréquences. Les décisions de modélisation γk sont codées par un module 9 pour être transmises au décodeur distant. Ce codage peut consister en un bitmap simple. Un module de quantification 10 opère d'autre part la quantification des échantillons spectraux extraits par le module 7. Ce module 10 peut appliquer diverses méthodes de quantification vectorielle bien connues dans le domaine du codage des signaux.
Les données de codage relatives à la trame courante, insérées dans le flux de sortie du codeur par le module 11 de la figure 1 comprennent les décisions γk codées par le module 9, les paramètres de quantification des échantillons spectraux délivrés par le module 10 et, s'il y a au moins une bande modélisée par la représentation harmonique, les paramètres de quantification de la fréquence fondamentale ώ1 délivrés par le module 8.
Le signal de synthèse est obtenu par le décodeur en générant un signal dans le domaine fréquentiel uniquement composé des raies spectrales sélectionnées à l'analyse. Chaque raie est représentée par un module et une phase.
Dans le décodeur illustré par la figure 2, un module 20 récupère les décisions de modélisation γk fournies dans les paramètres de codage de la
trame courante.
Lorsque aucune bande n'est représentée dans la modélisation harmonique (γ1 = γ2 = ... = 0), les échantillons spectraux à répartition non uniforme sont déterminés par un module 21 : leurs modules quantifiés sont calculés d'après les données d'entrée du décodeur et leurs phases sont générées aléatoirement.
Sinon, un module 22 récupère l'estimation quantifiée ώ1 de la fréquence fondamentale dans les données d'entrée du décodeur. Cette valeur ώ1 sert à positionner en fréquence les raies spectrales dont les amplitudes sont déterminées par le module 23. Les modules quantifiés de ces amplitudes sont extraits des données d'entrée du décodeur à l'aide des décisions γk. Les phases sont générées aléatoirement, à moins qu'elles soient indiquées dans les données de codage.
A partir des couples fréquence/amplitude décrivant les raies à restituer, le module 24 opère de façon connue la synthèse sinusoïdale d'un bloc de 256 échantillons relativement à la trame courante. Une fenêtre de synthèse (par exemple une fenêtre de Hamming de taille 256) est appliquée au bloc résultant par le module 25. Après décalage temporel d'une trame (128 échantillons), le module 26 ajoute le bloc pondéré et décalé à celui obtenu relativement à la trame précédente, ce qui produit l'estimation s(t) du signal audio original s(t) relativement à la trame de recouvrement.