Brevet FR2980620A1 — publié le 20130329

Traitement d'amélioration de la qualité des signaux audiofréquences décodés La présente invention se rapporte au domaine du traitement des signaux audiofréquences et notamment des signaux de parole ou de musique qui ont été codés et décodés par codeurs et décodeurs de parole. Le dispositif de traitement audio selon l'invention est adapté notamment pour la transmission et/ou le stockage des signaux audiofréquences. L'invention concerne plus particulièrement le post-traitement des signaux décodés pour améliorer la qualité des signaux musicaux décodés. Différentes techniques existent pour convertir sous forme numérique et compresser un signal audiofréquence (parole, musique, etc.). Les techniques les plus courantes dans les services de télécommunications sont les méthodes de codage de forme d'onde, telles que le codage MIC (pour "Modulation par Impulsions Codées") et MICDA (pour "Modulation par Impulsion et Codage Différentiel adaptatif") dits aussi "PCM" ou "ADPCM" en anglais, les méthodes de codage paramétrique par analyse par synthèse comme le codage CELP (pour "Code Excited Linear Prediction" en anglais), et les méthodes de codage perceptuel en sous-bandes ou par transformée. Ces techniques traitent le signal d'entrée de façon séquentielle échantillon par échantillon (MIC ou MICDA) ou par blocs d'échantillons dits trames (CELP, codage par 20 transformée). On s'intéresse ici plus particulièrement au cas du codage CELP comme exemple de codeur-décodeur de parole, cependant l'invention s'applique au cas général des codeurs de parole (ex: MIC, MICDA, CELP, etc...) . 25 Le codage CELP - dont sa variante appelée ACELP (pour "Algebraic CELP") utilisée par exemple dans les normes 3GPP AMR et AMR-WB - est un codage prédictif fondé sur le modèle source-filtre de production de la parole. Le filtre correspond en général à un filtre tout-pôle de fonction de transfert 1/ A(z) obtenu par prédiction linéaire LPC (pour "Linear Predictive Coding" en anglais). Le signal est synthétisé à l'aide de la version quantifiée, 30 1/ Â(z) , du filtre 1/ A(z) . La source - c'est-à-dire l'excitation du filtre linéaire prédictif 1/ Â(z) - est en général représentée comme la combinaison d'une excitation adaptative (obtenue par prédiction long-terme modélisant la vibration des cordes vocales), et d'une excitation fixe (ou innovation) codée efficacement sous la forme de dictionnaires d'impulsions (ACELP), de dictionnaires de bruit, etc. La recherche de l'excitation "optimale" est réalisée par 35 minimisation d'un critère d'erreur quadratique dans le domaine du signal pondéré par un filtre de fonction de transfert I4(4 dérivée du filtre de prédiction linéaire A(z), de la forme IMA- A(z/MIA(z/y2). On peut noter que dans le codec 3GPP AMR-WB, qui est décrit dans l'article de B. Bessette et al., intitulé "The Adaptive Multirate Wideband Speech Coder (AMR-WB)", IEEE Transactions on Speech, Audio and Language Processing, Nov. 2002, le codage ACELP est en fait appliqué par trames de 20 ms non pas au signal direct échantillonné à 16 kHz mais à un signal pré-accentué échantillonné à 12,8 kHz dans une bande audio réduite (0-6400 Hz); la pré-accentuation (ou pré-emphase) est réalisée par le filtre de fonction de transfert 1- az-1 avec a =0,68. Le filtre de pondération perceptuelle utilisé pour la mise en forme de bruit de codage est de la forme W(z) = A(z 1 y) /(1- az-1) avec 7=0,92. Le codage CELP repose sur une approche de codage temporelle et prédictive à partir d'un modèle de signal (LPC); ce type de codage est très efficace sur la parole (propre), mais il donne à bas débit une qualité souvent médiocre pour les cas des signaux s'éloignant des hypothèses du modèle de production de la parole. Ainsi, pour les signaux musicaux ayant une structure composée de composantes tonales qui sont mal codées par un modèle CELP (ex: signaux harmoniques, multipitch, ou inharmoniques, tels que les sons d'orgue, de piano, etc.), il est bien connu qu'un codage par transformée est beaucoup plus adapté. Néanmoins, les codeurs de parole de type CELP sont historiquement déployés dans les applications de téléphonie fixe et mobile car ils fournissent une meilleure qualité à bas débit pour les signaux de parole qui sont les signaux les plus importants pour les applications de téléphonie. Cependant, les signaux musicaux ou les contenus mixtes (mélange de parole et musique) représentent malgré tout une classe de signaux importante dans certains cas d'usage tels que la musique d'attente, la tonalité de retour, etc. Il est donc pertinent et important de chercher à améliorer pour la musique et les contenus mixtes la qualité des codeurs de parole qui sont déjà déployés dans les services. La figure 1 montre l'exemple concret d'un signal musical (un son d'orgue) échantillonné à 16 kHz, préfiltré par un masque P.341 (50-7000 Hz) et analysé par FFT à court-terme sur un support de 512 échantillons (32 ms). Le spectre du signal ('sig') sur la trame considérée fait apparaître un certain nombre de composantes tonales (ct). Après codage du signal par le codeur AMR-WB à 12,65 kbit/s, le spectre de bruit ('err') correspondant apparaît comme relativement fort entre les composantes tonales. Cette caractéristique du bruit de codage s'explique par le fait que le codage CELP est temporel et met en forme le bruit en principe selon la réponse en fréquence du filtre W(z) 1, contrairement à un codage par transformée opérant dans un domaine fréquentiel, le codage CELP ne peut pas "creuser" entre les harmoniques (ou composantes tonales). Un exemple de technique améliorant le décodage CELP pour les signaux musicaux est présenté dans l'article de T. Vaillancourt et al. intitulé "Inter-tone noise reduction in a low bit rate CELP decoder", Proc. ICASSP 2009. Cette technique est utilisée dans le mode "bande étroite" de la norme UIT-T G.718. Le principe de cette technique consiste à réaliser un post-traitement dans le domaine fréquentiel (par FFT court-terme) du signal CELP décodé et de réduire le bruit de codage CELP entre les partiels (composantes tonales) par une fonction d'atténuation spectrale et un ajustement de gain (ou d'énergie). Ce post-traitement s'apparente à une réduction de bruit classique par atténuation spectrale à court-terme. Il comporte les étapes suivantes illustrées à la figure 2: - Une pré-emphase (bloc 201) et une transformation de Fourier discrète (FFT) à court-terme (bloc 202) sont appliquées par trames de 20 ms sur le signal décodé échantillonné à 16 kHz - la FFT a un support temporel de 30 ms - Une classification du signal CELP décodé (bloc 203) afin d'évaluer le niveau de stationnarité dans la trame courante et ajuster la zone de fréquence du post-traitement et le niveau de réduction de bruit maximal. - Une atténuation du bruit de codage (bloc 204): à chaque trame d'indice temporel t, le niveau de bruit de codage AT,(;(i) est estimé par sous-bandes critiques d'indice i (CB pour "Critical Bands" en anglais). Un rapport signal à bruit SNR(f) a posteriori est ensuite estimé par raie fréquentielle, celui-ci étant défini comme le rapport entre l'énergie du signal décodé à la raie de fréquence fet l'énergie du bruit AT,(;,),(i) dans la bande critique incluant la raie de fréquence f Une fonction d'atténuation spectrale g,(f) est finalement calculée raie par raie, en fonction du signal à bruit, et le gain gs(f) est ensuite lissé. - La correction de l'atténuation (bloc 205) par un gain de correction gc,(f) pour compenser la perte d'énergie due à l'atténuation spectrale du bloc 204 ainsi que l'atténuation des hautes fréquences par le modèle CELP. - La synthèse temporelle (bloc 206) par addition-recouvrement (bloc 207) et la dé- emphase (bloc 208). La technique de Vaillancourt et al. est de complexité raisonnable et elle occasionne un retard additionnel (10 ms) compatible avec les applications conversationnelles. Cependant, elle présente plusieurs inconvénients: - La découpe en "bandes critiques" divise le spectre en régions adjacentes arbitraires; l'estimation du bruit de codage par sous-bandes est simpliste et imprécise. Or, la qualité du traitement de réduction de bruit dépend fortement de la fiabilité de l'estimation du niveau de bruit et donc du rapport signal à bruit. Cette technique peut produire des artefacts tels que du bruit musical. - La réduction de bruit entre les composantes tonales (bloc 204) est réalisée en appliquant un facteur d'atténuation (gain) à chaque raie du spectre d'amplitude mélangeant signal et bruit de codage. L'atténuation spectrale peut ainsi affecter à la fois le signal, et plus particulièrement sa structure harmonique (dont les lobes associés à chaque composante tonale), et le bruit de codage, alors qu'il serait préférable de ne pas perturber le signal et d'atténuer uniquement le bruit de codage. Il existe donc un besoin, pour le post-traitement des signaux musicaux, de préserver le signal et plus particulièrement sa structure harmonique court-terme tout en réduisant efficacement le bruit de codage. Cette technique doit s'appliquer dans le cas où il n'est pas nécessaire de transmettre (du codeur au décodeur) d'information supplémentaire pour le traitement - on considère en effet ici le cas d'un post-traitement en aveugle au décodeur. La présente invention vient améliorer la situation. Elle propose à cet effet, un procédé de traitement d'un signal audiofréquence décodé tel qu'il comporte les étapes suivantes: identification de composantes tonales dans le signal audiofréquence représenté dans le domaine fréquentiel; calcul d'un spectre des composantes tonales identifiées à partir d'un modèle sinusoïdal; obtention d'un résidu par la différence entre le signal audiofréquence décodé et un signal issu du spectre des composantes tonales; atténuation spectrale du résidu; et combinaison du résidu atténué et du signal issu du spectre des composantes tonales. Ainsi, le modèle sinusoïdal utilisé pour obtenir un spectre de composantes tonales est adapté à représenter la structure harmonique (ou structure tonale) court-terme des signaux musicaux. Le fait d'effectuer l'atténuation spectrale sur le résidu obtenu par la différence entre le signal décodé et celui issu du spectre des composantes tonales, permet de ne pas affecter la structure harmonique (ou structure tonale) du signal lors du traitement. Les différents modes particuliers de réalisation mentionnés ci-après peuvent être ajoutés indépendamment ou en combinaison les uns avec les autres, aux étapes du procédé d'allocation défini ci-dessus. Dans un premier mode de réalisation, les étapes d'obtention du résidu, d'atténuation et de combinaison sont effectués dans le domaine fréquentiel. Ainsi, le résidu est obtenu par la différence entre le spectre du signal décodé et le spectre des composantes tonales. Dans un deuxième mode de réalisation les étapes d'obtention du résidu, d'atténuation et de combinaison sont effectuées dans le domaine temporel. Le résidu est ici obtenu par la différence entre le signal décodé et le signal temporel issu du spectre des composantes tonales. La transformée inverse temps-fréquence est alors ici effectuée après l'obtention du spectre des composantes tonales. Selon un mode particulier de réalisation, l'identification des composantes tonales s'effectue par une méthode d'interpolation sur un nombre prédéterminé de raies fréquentielles. Ainsi, l'estimation de certains paramètres (fréquence, amplitude) des composantes tonales s'effectue par une méthode d'interpolation à partir d'un nombre prédéterminé de raies fréquentielles. L'interpolation permet d'identifier les composantes tonales avec une précision dépassant la résolution inter-raie de la transformée temps-fréquence. Dans un mode de réalisation particulier, l'identification des composantes tonales, plus particulièrement l'estimation des paramètres (amplitude, phase), utilise un motif spectral pré-calculé et stocké en mémoire. Ce motif spectral permet d'effectuer une analyse sinusoïdale en boucle fermée, c'est- à-dire de tenir compte de la synthèse par motif à l'analyse. Cette méthode est avantageuse pour assurer une correspondance totale entre analyse et synthèse dans le modèle sinusoïdal. De façon avantageuse, le calcul du spectre des composantes tonales utilise un motif spectral pré-calculé et stocké en mémoire. L'utilisation d'un motif spectral permet ici d'obtenir le spectre sinusoïdal associé à un pic fréquentiel avec une précision dépassant la résolution inter-raie de la transformée temps-fréquence. Dans un mode possible de réalisation, l'atténuation spectrale s'effectue en fonction d'une donnée de classification du signal audiofréquence. Le post-traitement étant destiné à améliorer la qualité sur les signaux musicaux, il est essentiel de l'appliquer sur des signaux classifiés comme étant de la musique. Ainsi, dans un mode de réalisation possible, lorsque le signal n'est pas détecté comme un signal musical, le gain d'atténuation est différent. Il peut par exemple être égal à 1 pour un signal qui n'est pas détecté comme musical, annulant ainsi l'atténuation, afin de préserver les signaux tels que la parole ou les transitoires. Dans le cas d'une atténuation dans le domaine temporel, l'atténuation spectrale s'effectue par un filtrage du résidu dans le domaine temporel. La présente invention vise également un dispositif de traitement d'un signal audiofréquence décodé, tel qu'il comporte: un module d'identification de composantes tonales dans le signal audiofréquence représenté dans le domaine fréquentiel; un module de calcul d'un spectre des composantes tonales identifiées à partir d'un modèle sinusoïdal; un module d'obtention d'un résidu par la différence entre le signal audiofréquence décodé et un signal issu du spectre des composantes tonales; un module d'atténuation spectrale du résidu; et un module de combinaison du résidu atténué et du signal issu du spectre des composantes tonales. Ce dispositif présente les mêmes avantages que le procédé décrit précédemment, qu'il met en oeuvre. L'invention vise aussi un décodeur de signal audiofréquence comportant un dispositif de traitement tel que décrit ci-dessus. Elle vise un programme informatique comportant des instructions de code pour la mise en oeuvre des étapes du procédé de traitement tel que décrit, lorsque ces instructions sont exécutées par un processeur. Enfin l'invention se rapporte à un support de stockage, lisible par un processeur, intégré ou non au dispositif de traitement, éventuellement amovible, mémorisant un programme informatique mettant en oeuvre un procédé de traitement tel que décrit précédemment. D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante, donnée uniquement à titre d'exemple non limitatif, et faite en référence aux dessins annexés, sur lesquels : la figure 1 décrite précédemment, illustre un exemple de spectre court-terme d'un signal musical et du bruit de codage CELP associé; la figure 2 représente un organigramme de la méthode de réduction de bruit de l'état de l'art, telle que décrite précédemment; la figure 3 illustre sous forme de bloc diagramme, à la fois le dispositif de traitement et le procédé de traitement qu'il met en oeuvre selon un premier mode de réalisation de l'invention; les figures 4a et 4b montrent des exemples d'analyse fréquentielle court-terme d'un signal sinusoïdal utilisés dans un mode de réalisation de l'invention; la figure 5 illustre le principe d'interpolation parabolique utilisé dans un mode de réalisation particulier de l'invention; les figures 6a, 6b et 6c illustrent des exemples de fenêtres temporelles utilisées pour la mise en oeuvre des étapes de transformée temps-fréquence ou de transformée inverse, dans un mode de réalisation de l'invention; les figures 7a et 7b illustrent un exemple de spectre de composantes tonales dans un mode de réalisation de l'invention et d'un motif fréquentiel calculé et mémorisé dans un mode de réalisation de l'invention; la figure 8 illustre sous forme d'organigramme les étapes mises en oeuvre pour le calcul d'un spectre de composantes tonales selon un mode de réalisation de l'invention; la figure 9 illustre sous forme d'organigramme le détail d'une étape de calcul du spectre de composantes tonales selon un mode de réalisation de l'invention; les figures 10a et 10b illustrent des exemples de facteurs d'atténuation utilisés dans le procédé de traitement selon l'invention; la figure 11 illustre les étapes de fenêtrages et de synchronisation du signal d'entrée et du signal de sortie du dispositif de traitement, dans un mode de réalisation de l'invention; la figure 12 illustre sous forme de bloc diagramme, à la fois le dispositif de traitement et le procédé de traitement qu'il met en oeuvre selon un deuxième mode de réalisation de l'invention; et la figure 13 illustre un exemple de représentation matérielle d'un dispositif de traitement selon l'invention. La figure 3 selon un premier mode de réalisation de l'invention, représente un dispositif de traitement 320 d'amélioration de la qualité d'un signal audiofréquence décodé. Ce dispositif de traitement peut être intégré à un décodeur, comprenant alors le module 301 de décodage, ou peut être indépendant du décodeur et recevoir ainsi en entrée un signal audiofréquence décodé (x(n)) - l'intérêt d'intégrer le module de traitement 320 au décodeur est qu'il peut bénéficier de paramètres internes au décodeur, comme par exemple les paramètres décodés. La figure 3 sert également à illustrer les principales étapes mises en oeuvre par le procédé de traitement selon ce premier mode de réalisation de l'invention. Un signal audiofréquence, par exemple, en provenance d'un codeur de parole de type normalisé 3GPP AMR-WB est donc d'abord décodé par un module de décodage 301. Dans ce mode de réalisation particulier, sans perte de généralité, on considère ici que les signaux audiofréquences sont échantillonnés à F=16 kHz et divisés en trames de L=320 échantillons (20 ms). Dans une variante de réalisation, le traitement peut s'appliquer également au signal décodé filtré par un filtre perceptuel I/1/(z) ou par un filtre de prédiction linéaire. Dans ce cas, l'homme de l'art comprendra que le filtre inverse devra être utilisé après le post-traitement 320. Dans l'exemple de réalisation illustré, ce bloc de décodage 301 correspond au décodeur AMR-WB tel que décrit dans l'article de B. Bessette et al., intitulé "The Adaptive Mutlirate Wideband Speech Coder (AMR-WB)", IEEE Transactions on Speech, Audio and Language Processing, Nov. 2002. Il réalise un décodage ACELP à la fréquence d'échantillonnage de 12,8 kHz, une extension de bande pour générer les fréquences de 6,4-7 kHz et une combinaison de la bande basse (0-6400 Hz) et de la bande haute (6400-7000 Hz). Le bloc 301 fonctionne par trame de 20 ms (L=320 échantillons à 16 kHz) et synthétise un signal noté x(n) , dont les échantillons sont par convention numérotés par les indices n =0,...,L -1, avec L=320, dans la trame courante - suivant cette convention la trame décodée précédente correspond donc aux indices n = -N,...,-1. On rappelle ici que le décodeur AMR-WB traite un train binaire toutes les 20 ms, et que ce train binaire contient la représentation binaire des paramètres décodés suivants: o Coefficients LPC codés sous forme d'ISF (pour "Immittance Spectral Frequencies" en anglais) pour un ordre LPC de 16 - pour chaque trame de 20 ms o Retard de pitch - pour chaque sous-trame de 5 ms o Indicateur binaire (dit "pitch flag" en anglais) indiquant si la contribution de pitch est filtrée passe-bas ou non - pour chaque sous-trame de 5 ms o Indices de dictionnaire fixe pour chaque sous-trame - pour chaque sous-trame de 5 ms o Gains de dictionnaires adaptatif et fixe - pour chaque sous-trame de 5 ms On ne liste pas ici les paramètres décodés uniquement au débit de 23,85 kbit/s concernant la bande haute (6400-7000 Hz) car le dispositif de post-traitement est plutôt dédié à l'amélioration du signal décodé par le modèle CELP dans la bande basse (0-6400 Hz). Dans une variante du mode de réalisation, le post-traitement 320 est appliqué au signal décodé en bande basse par le décodeur ACELP d'AMR-WB. Dans ce cas, le post-traitement 320 fonctionne avec des trames de 20 ms (256 échantillons) à la fréquence d'échantillonnage de 12,8 kHz. La bande haute (6,4-7 kHz) du décodeur AMR-WB est alors décalée temporellement d'un nombre prédéterminé d'échantillons, afin d'aligner la bande haute synthétisée (6400-7000 Hz) avec la bande basse (0-6400 Hz) décodée et post-traitée. Cette variante du mode de réalisation, où le signal décodé est échantillonné à 12,8 kHz d'échantillonnage, pourrait également comprendre le cas où le signal décodé est pré-filtré avant d'appliquer le post-traitement 320, le pré-filtrage étant réalisé par exemple par un filtre de pondération perceptuelle de la forme F(z) = Â(z / y)/(1-az 1) ), où Â(z) est le filtre LPC décodé dans chaque sous-trame CELP. Ce pré-filtrage permettrait d'appliquer le post-traitement 320 dans le domaine du "signal pondéré" correspondant au domaine de l'analyse par synthèse du codage CELP. Cette variante implique d'appliquer un post-filtrage par 1/ F(z) sur le résultat x post (n) du post-traitement. Le bloc 302 réalise une analyse fréquentielle court-terme (E302) du signal x(n) , n = -(N - L),...,L -1, incluant les échantillons de la trame décodée courante ( n = 0, ..., L-1) et une partie de la trame décodée précédente (n = -(N - L),..., -1 ). L'analyse fréquentielle du module 302 est mise en oeuvre, dans le mode de réalisation décrit, par fenêtrage et transformation de Fourier rapide (FFT): o Une fenêtre d'analyse est appliquée au signal pour obtenir le signal fenêtré xw(m)= wa(m).x(m- (N - L)) , m = 0, ... , N -1 où la fenêtre d'analyse wa (m) est définie comme une fenêtre de Hamming de longueur N =512 : wa (m) = 0.54 - 0.46 cos 22r m , m = 0, ..., N -1 N 1 Cette fenêtre est illustrée à la figure 6a. Bien entendu, d'autres fenêtres d'analyse peuvent être prévues, par exemple des fenêtres asymétriques qui permettraient de mieux conditionner la fenêtre de synthèse utilisée par la suite en 307, mais qui possèdent des propriétés spectrales moins intéressantes à l'analyse. o Pour des questions d'efficacité de calcul justifiées plus loin, on préconise en pratique d'intégrer à la transformée temps/fréquence (puis son inverse, pour la synthèse) un « recentrage de phase ». Celui-ci consiste à opérer une permutation circulaire du signal fenêtré de N/2 échantillons vers la gauche (pour l'analyse), soit la demi-longueur de la fenêtre, avant d'effectuer la Transformée de Fourier. Alternativement, cela revient à appliquer une correction du spectre de phase résultant de la Transformée de Fourier par ajout d'une phase linéaire irk/V/K . Par l'un ou l'autre moyen, cela revient à changer la définition de la transformée en : K-1 2z1c N X (k) = K 2 k = 0, ... , K -1 m=0 Dans une variante du mode de réalisation, le signal fenêtré xi,v(m), m = 0, ... , N -1, est transformé par FFT de longueur K= N=512 pour obtenir le spectre discret X (k) : K-1 2z1c X (k) = xi,(m).e K , k = 0, ... , K -1 m=0 Dans ce cas, l'homme de l'art comprendra facilement comment adapter le mode de réalisation principal pour tenir compte du déphasage impliqué par la permutation circulaire de N/2 échantillons. Dans les deux modes de réalisation décrits pour la transformée temps/fréquence (avec ou sans recentrage de phase), la FFT est calculée suivant la méthode décrite dans l'article de H.V. Sorensen et al.., intitulé "Real-valued fast Fourier transform algorithm," IEEE Trans. on Signal Processing, Vol.35, No.6, pp 849-863, 1987. Dans une variante supplémentaire du mode de réalisation, d'autres transformée temps-fréquence pourront être utilisées, par exemple la "Modulated Complex Lapped Transform" (MCLT) combinant des transformées en cosinus et sinus discrètes modifées mises en quadrature. Pour que le modèle sinusoïdal s'applique il est important d'utiliser une transformée complexe afin d'estimer l'amplitude et la phase des composantes tonales. Des techniques d'analyse temps-fréquence telles que les représentations temps-fréquences parcimonieuses (sparse en anglais) s'appliquent également pour mettre en oeuvre le modèle sinusoïdal. Dans le mode de réalisation privilégié, la longueur de FFT est choisie comme étant identique à celle de la fenêtre d'analyse, ce qui se justifie parfaitement dans le cas où K=N=512 est une puissance de 2. Cependant, le choix de K= N n'est pas restrictif au sens de l'invention, et l'invention s'applique également au cas où la longueur K de FFT est rendue supérieure à celle N du signal fenêtré au moyen d'un bourrage de zéros et éventuellement décalage temporel du signal - cette alternative est en général intéressante dans le cas où la longueur Ndu signal fenêtré n'est pas une puissance de 2. Le signal xi,(m) étant réel, le spectre X (k) est à symétrie hermitienne et seules les fréquences positives k = 0, , K I 2 sont nécessaires. Le spectre obtenu X (k) , k = 0, ... ,K 2 est mis en coordonnées polaires en séparant amplitude X(k) et phase /X (k) . Comme on le verra plus loin, dans un certain mode de réalisation, il n'est pas nécessaire de calculer ce terme de phase, économisant une certaine quantité d'opération. On décrit à présent une méthode standard d'analyse fréquentielle de signaux composés de sinusoïdes pures. La sinusoïde discrète d'amplitude A0, de fréquence normalisée coo et de phase 00, v(n) = Aocos(coon+ 00), a pour transformée de Fourier (à temps discret): V (co) =-(5(co+ coo)e»9° + .5(c o- coo)e-'8°), coe[-7-1-,71-] 2 Pour réaliser une analyse fréquentielle court-terme, les signaux sont en général pondérés par une fenêtre w(n) de longueur entière N>0 telle que w(n) 0 pour n = 0,..., N -1 et w(n) = 0 sinon. Dans ce cas la sinusoïde fenêtrée vw(n)= w(n)v(n) a pour transformée de Fourier: V.(co)= 2(W (co+ w0 )e'8° +W (co- coo)e-18°) où il est important de noter que le spectre W(co) est périodique avec une période de 271- . Ainsi la sinusoïde fenêtrée a pour spectre le résultat de la convolution de la transformée périodisée de la fenêtre W(co) par deux Diracs centrés sur -±coo . Ce résultat s'étend facilement au cas où le signal est une combinaison linéaire de I sinusoïdes. Par linéarité, si 1-1 v(n) = cos(Coin±ei), i=o /-1 A 17' (co) E(1 /Vo+ +W(o - ci)e- . ,=0 2 Lorsque le signal est analysé par transformée de Fourier discrète de longueur K N, la transformée devient VW co= , k = 0, ...,K -1; pour alléger les notations, la K 10 transformée de Fourier discrète de vi,(n) est notée y, (k) au lieu de V K . On obtient alors: /-1 A V'(k)=E(W(k+ki)efe' +W (k - ki)e- fe') , k = 0, K -1 i=0 2 avec k =-Kw . 2,r Le spectre W,,(k) (également nommé 14«, ici) de longueur K N de la fenêtre n(m) est 15 défini par l'équation : K-1 2zIc WK (k) =wzp(m)e K , k = 0, K -1; m=0 la fenêtre wzp (m) étant obtenue par un bourrage de zéros ("zero padding" en anglais) autour de la fenêtre n(m) [w(m) m = 0, N -1 wzP(m) 0 m e [0, N[ 20 Avantageusement et de façon cohérente avec la transformée du signal fenêtré xM,(m), on préconise d'utiliser la version modifiée de la transformée temps-fréquence intégrant le recentrage de phase » décrit plus haut, et qui s'écrit mathématiquement : K-1 -i-2z1c(rn-1) K (k) =wzp (m)e. K 2 k =0,...,K -1 m=0 L'intérêt est qu'ayant à faire à une fenêtre symétrique, le « recentrage de phase » lui 25 assure un spectre réel (c'est-à-dire que la partie imaginaire du spectre est nulle, ou encore que sa phase est nulle à n près), et cela quel que soit le sur-échantillonnage fréquentiel choisi (lequel dépend du bourrage de zéros). alors Un exemple d'analyse fréquentielle à court-terme est montré aux figures 4a et 4b pour les conditions suivantes : o 1=2 sinusoïdes avec A0 =1 et Al = 0,5 con = 27r-4 co = 2z12,5 - 32 32 00 =0 91 =0 o Fenêtrage de Hamming (normalisé) de longueur N=32: (n) w(l) Nwh am n = 0, ...,N -1 Ewham(n) n=0 avec n wh.(n) = 0.54 - 0.46cos 27r , n = N -1 N -1} On peut noter que la normalisation par la moyenne de la fenêtre n'est ici qu'un exemple, la fenêtre pourrait ne pas être normalisée ou un autre facteur de normalisation pourrait être utilisé, ce qui ne fait que translater en dB les valeurs spectrales discutées ici. o FFT de longueur K=N=32 (figure 4a) ou K=8/1=256 (figure 4b) Les spectres d'amplitude (en dB) obtenus par transformées de Fourier discrètes de longueurs respectives K=32 et K=256 sont donc représentés aux figures 4a et 4b; seule la partie correspondant aux fréquences positives est montrée. On distingue bien 2 pics (de forme -117,(k+ ki) ) autour de k0 et A la figure 2 4a la seconde sinusoïde a une position k1 fractionnaire, alors que sur la figure 4b les deux sinusoïdes sont localisées sur des raies entières ("tins" en anglais); on vérifie par la même occasion que la transformée de longueur K=256 est une version interpolée de celle de longueur K=32 (signalée par les points 'o'). Le procédé de traitement selon l'invention permet de déterminer, à partir d'un spectre d'amplitude de résolution limitée (comme à la figure 4a), le nombre et les paramètres de sinusoïdes présentes à court-terme dans un signal audio et d'extraire spectralement ces composantes sinusoïdales par soustraction complexe du spectre discret de la forme A 2(1/11,(k +kl)e18' +1/11,(k -1(,)e-A) . L'exemple des figures 4a et 4b montre bien que la précision d'une transformation de Fourier discrète de longueur K est en général insuffisante pour obtenir directement une estimation de la fréquence des composantes tonales. Il est important de noter que dans le domaine de la transformée de Fourier à temps A discret l'amplitude du "pic" associé à la i-ème sinusoïde est W(0) à la position ±ki. Dans 2 le domaine de la transformée de Fourier rapide de longueur K, le pic à la position ±ki n'est pas forcément directement observable à cause de la précision inter-raie; en supposant que la position correspond à une raie de Fourier, l'amplitude du "pic" associé à la sinusoïde devient: a = 2141,(0) Par la suite, la terminologie "amplitude" d'une sinusoïde fera essentiellement référence à l'amplitude dans le domaine de Fourier, ai, et non l'amplitude de la sinusoïde dans le domaine temporel, A . On peut remarquer que la valeur de ai intègre naturellement la longueur de la fenêtre K, si la fenêtre d'analyse est normalisée de façon adéquate, il est possible de s'assurer que WK (0) =1. Dans un mode particulier de réalisation, une méthode d'interpolation est utilisée pour améliorer la précision de cette estimation. Celle-ci est réalisée dans le module 303 de la figure 3, à une étape E603a d'identification des composantes tonales dans le signal audiofréquence représenté dans le domaine fréquentiel (X(k)). L'interpolation est utile pour estimer précisément les paramètres des sinusoïdes (fréquence, amplitude et phase) à partir d'un spectre d'amplitude issu d'une transformée de Fourier discrète de longueur N relativement limitée. Le bourrage de zéros ("zero padding") n'améliore pas la résolution de la transformée de Fourier, mais il permet d'échantillonner la transformée de Fourier à temps discret sur plus de raies et par suite d'obtenir une meilleure précision. Dans un mode de réalisation privilégié, le bourrage de zéros n'est pas utilisé pour l'analyse du signal, mais seulement pour le pré-stockage de la transformée de la fenêtre d'analyse afin de faciliter la synthèse de sinusoïdes dont la fréquence est estimée avec une précision supérieure à la résolution inter-raie de la transformée de Fourier discrète d'analyse. L'estimation des paramètres ( , qui sont l'amplitude maximale et la fréquence fractionnaire de la sinusoïde) est réalisée selon l'invention par interpolation parabolique du spectre d'amplitude, telle que décrite dans l'article de J.O. Smith et X. Serra, intitulé "PARSHL: A Program for the Analysis/Synthesis of Sounds Based on a Sinusoidal Representation", Proceedings of the International Computer Music Conference, Urbana- Champaign, Illinois, 1987. Le principe de l'interpolation parabolique pour l'analyse spectrale est rappelé à la figure 5, où l'exemple décrit aux figures 4 est repris. L'interpolation parabolique repose sur le fait qu'une parabole est complètement déterminée par les valeurs en 3 points distincts; ainsi, étant données les amplitudes (en dB) Y(/, -1), Y(/,), Y(/, +1) de 3 raies de Fourier adjacentes d'indices 1, -1, 1., 1. +1, il est facile de déterminer les paramètres agi, d, et ,/3 de la parabole d'équation générale : Y (k)= (k -( d,))2 + A où ce, est la courbure de la parabole, 1. + d, donne la position du sommet de la parabole, et ,/3 est la valeur de la parabole à son sommet (car/ =Y(1, + d,)). A partir de l'équation générale de la parabole et étant données les valeurs Y (k -1) , Y (k) , Y (k +1), on obtient : IY (li -1) = ai(1+ di)2 + fli Y (1i) = aidi2 +,13 Y (li +1) = a(1- di)2 + fli En calculant Y(1, +1)+Y(1, -1) -2Y (1,) , à partir des 3 équations précédentes on trouve : 1 = 2-(Y (li +1)+Y (li -1) -2Y (0) Ensuite, en calculant Y(1,-1)-Y(1,+ 1) , on trouve: d. = (1, -1)- Y (1, +1) 4a. Z Enfin, le dernier paramètre se calcule comme étant : Y (1,) = aidi2 + A j3, = Y (1,)- d i2 En combinant les expressions de di et , on peut également écrire : = Y(1i) - (aid ) d ce qui donne : Y(0 Y(1, -1) -Y(1, +1) d 4 Pour l'exemple de la figure 5, l'interpolation parabolique sur les 2 "pics" centrés en /0 = 4 et /1=12 donne les paramètres estimés suivants: lao = -7,1964 ai = -8,2003 do = -0,0001 et d1 = -0,4926 130 = -5,9779 /31 = -11,6735 Sur cet exemple, l'interpolation parabolique donne une estimation de la fréquence de la i-ème sinusoïde sous la forme h + ; cette estimation est précise dans cet exemple. De plus A l'amplitude estimée en dB, )6 =101og10 (ai) où at = 2 (la fenêtre d'analyse étant normalisée telle que WK (0) = 1 , pour cet exemple), est proche des valeurs exactes de -6 dB et -12 dB. Ainsi dans le mode de réalisation illustré à la figure 3, le spectre du signal x(n) est analysé dans le bloc 303 afin d'extraire les composantes tonales qui sont à préserver par le post-traitement. L'analyse comporte les étapes E603a d'identification des composantes tonales dans le signal audiofréquence représenté dans le domaine fréquentiel et E603b de calcul d'un spectre des composantes tonales identifiées, à partir d'un modèle sinusoïdal tel que décrit précédemment. A noter que l'identification des composantes sinusoïdales est réalisée en combinant la détection de sinusoïdes et l'estimation de leurs paramètres (fréquence, amplitude, phase); la détection sert à déterminer si un pic correspond à une sinusoïde "valide" (ou "sélectionnée"). L'ensemble des sinusoïdes ainsi détectées et estimées constitue le modèle sinusoïdal du signal dans la trame courante. Ce modèle sinusoïdal est représenté de façon équivalente par le spectre complexe combinant les différentes sinusoïdes identifiées. Ce modèle sert à l'extraction des composantes tonales du signal. L'extraction est ici réalisée en retranchant au spectre du signal courant le spectre issu du modèle sinusoïdal, pour obtenir un résidu qui sera post-traité. L'étape E603a comporte une détection des pics fréquentiels dans le spectre d'amplitude du signal. Un pic est détecté à une raie d'indice kdans le spectre d'amplitude IX (k)1 si le critère suivant est vérifié: X(k)1>IX(k -1)1 et 1X(k)11X(k +1)1, k -1,...,K /2 -1 Les indices k localisant les différents pics ainsi trouvés sont rassemblés dans un vecteur - - -,/i ), où /est le nombre de pics détectés. Dans une variante du mode de réalisation, on pourra s'assurer que I ne dépasse pas un nombre prédéterminé de pics, par exemple 100, afin de réduire la complexité des opérations qui dépendent du nombre de pics. Suivant cette notation, 1, correspond au numéro de raie de Fourier localisant le pic d'indice Afin d'extraire les composantes tonales par ordre d'importance, les pics détectés sont triés en amplitude, de sorte qu'ils vérifient: X(4)1X(/2)1...1X(//)1 Les pics détectés de position 1,, 1=1,...,1 servent à l'identification et l'extraction de composantes tonales dans le spectre X (k) . Un pic d'indice 1, est supposé être associé à une sinusoïde dont l'amplitude ai et la fréquence k, sont estimés par interpolation parabolique du spectre d'amplitude X(k) à partir des 3 raies de Fourier contiguës d'indices li -1, 1, et 1,+1. La courbure de la parabole est calculée comme décrit précédemment suivant l'équation: 1 ai= -(X )-2.X,m(1,)+X dB(1, ± 1)) où X dB (k) 201ogio(X(k)) . La fréquence de la i-ème sinusoïde correspond à la position du sommet de la parabole : X (1 - 1) - X dB (1 +1) k, =1, + 4a, ce qui peut également être écrit: = 1 +1 X dB (1 -1)- X dB (1 ± 1) 2 X dB (li -1) - 2.XdB (0+ X dB (1 +1) L'amplitude de la i-ème sinusoïde correspond à la valeur au sommet de la parabole : a, =10120 avec X dB (1 i - X dB (1 +1) (k,-1,) = X dB (1 i) 4 Une sinusoïde associée au pic d'indice i est sélectionnée, autrement dit considérée comme "valide", si elle vérifie les critères suivants: i r, LX (ki+) est d'abord modifiée de la façon suivante: LX (k ) = {LX (ki+ ) + 2z si LX (ki-) 0 LX (ki) - 2z si LX (k ) IX(11-1)1 2 I X(/i)I -IX(/, -1) 11X(/1 , +1)-1X(/ +1) li + autrement 2 IX(01-1X(/, +1)1 - le centre de gravité avec X (/, +1)1-1X (/, +1)1 k = 11 + (1, -1)1+1X (11)1+1X (1, +1)1 Il va de soi que les variantes d'estimation de fréquence ci-dessus peuvent également être adaptées en remplaçant 1X (/, )1 par une valeur dérivée, comme1X(012. De même, étant donnée la fréquence estimée, l'estimation de l'amplitude et la phase sus-décrite peut être avantageusement remplacée par celle d'un facteur multiplicatif complexe (synthétisant donc le rôle de l'amplitude et de la phase) c, = a,.efi9' en utilisant la méthode suivante. La fréquence du sinus détecté étant maintenant connue, on peut donc définir, comme décrit plus loin, la portion Y, de spectre de référence (un "motif') qui sera additionnée au spectre de modélisation sinusoïdale, après application du facteur multiplicatif complexe c., qu'il 15 s'agit ici d'évaluer. Dans la variante proposée ici, le coefficient ci est calculé de sorte de minimiser l'erreur de reconstruction de la portion de spectre concernée au sens des moindres carrés. Cette optimisation dite LS (pour "Least Square" en anglais) se résume en la forme bien connue d'un ratio entre un produit scalaire et une norme au carré : ci = Wi*.X/11Wi112= Wi*.X/(Wi*.Wi) 20 où la notation *, appliquée ici à un vecteur colonne de coefficients complexes, correspond au transposé conjugué du dit vecteur, et la multiplication de vecteurs (vecteur ligne à gauche, vecteur colonne à droite) s'entend comme un produit scalaire. En pratique, chaque élément du motif - défini précisément plus loin - comprend 277 25 éléments; chaque produit scalaire implique les produits et somme de i paires de termes complexes, chaque produit complexe impliquant 2 multiplications et une addition. Il est important de noter que le calcul du coefficient c, est applicable que lorsque la fréquence de la sinusoïde est au moins à distance /7/2 de la fréquence nulle et de la fréquence de Nyquist, afin d'éviter le repliement spectral. Dans le cas contraire, l'homme de l'art saura adapter la formule en tenant compte du repliement fréquentiel, ou il pourra utiliser l'interpolation linéaire de la phase. Par convention, dans la suite du document ainsi que dans les figures, on pourra désigner par (a'k'0,) les paramètres de la sinusoïde i, de façon équivalente aux paramètres (c'k,) même si c'est le coefficient complexe c, qui est estimé et utilisé, et que notamment la phase 0, n'a pas lieu d'être calculée explicitement. Dans le cas d'une fenêtre d'analyse symétrique et d'une « transformée à phase recentrée » telle que décrite plus haut, le "motif' stocké est un spectre réel. On peut donc réduire de moitié le nombre de multiplications et d'additions. Dans une variante recommandée de l'invention, on aura stocké en mémoire une version du motif normalisée de telle sorte que la norme du motif calculé sur les sous-échantillons fréquentiels soit toujours égale à 1 Cette normalisation réduit le nombre d'opérations. L'estimation de l'amplitude et de la phase à l'aide du motif est une alternative avantageuse à l'estimation séparée de l'amplitude et de la phase par interpolation parabolique et linéaire, en ce qu'elle évite un certain nombre d'opérations coûteuses (divisions, calculs de phase par arc-tangente...). Cette estimation par motif est une forme d'analyse par synthèse, car l'estimation des paramètres des sinusoïdes repose sur le motif utilisé à la synthèse. A noter que la raie d'indice k=0 est également comptée comme une sinusoïde valide avec : 4 =1X(0)1, ki =0 , = 0 ou ir suivant que la valeur de X(0) est respectivement positive ou négative. Le bloc 303 effectue ensuite une étape E303b de calcul du spectre (S(k)) des composantes tonales ou sinusoïdes "valides" ainsi identifiées. Pour cela, il utilise dans un exemple de réalisation un motif précalculé et mis en mémoire à une étape E300 par un module 300. Selon le mode de réalisation décrit ici du procédé de traitement de l'invention, le spectre d'une sinusoïde est calculé en tenant compte de la fenêtre d'analyse utilisée pour réaliser l'analyse spectrale de Fourier à cout-terme dans le bloc 302. Comme rappelé précédemment, le spectre d'une sinusoïde fenêtrée s'obtient par convolution du spectre de la fenêtre considérée avec des Diracs ce qui est équivalent à des opérations de translation (modulo 27c) et addition/recouvrement. Etant donné que la fréquence k peut prendre n'importe quelle valeur dans [-- K , 1±], y compris des valeurs 2 2 fractionnaires, la translation du spectre de la fenêtre par un décalage fréquentiel arbitraire est mise en oeuvre à l'aide d'une interpolation du spectre de la fenêtre sur une longueur M, où M>K. Avantageusement, le dispositif suivant l'invention utilise une méthode rapide de calcul du spectre court-terme de sinusoïdes à partir d'un "motif' P(k) fréquentiel pré-calculé et stocké en mémoire en 300. On suppose ici que la fenêtre d'analyse de longueur N appliquée à chaque trame dans le bloc 302 est une fenêtre de Hamming normalisée, telle que décrite plus haut mais en posant N=512, et que nous noterons wa(m). Cependant, l'invention s'applique à n'importe quelle fenêtre de pondération de longueur N. Dans le mode de réalisation privilégié de l'invention, on utilise une transformée de longueur K=N=512 et un facteur d'interpolation M/K = 128, soit M=65536, ce qui nous fournit un spectre W4k) qui correspond au spectre discret (normalisé) de la fenêtre wa(m) avec une interpolation d'un facteur MIK=128. L'interpolation garantit une précision suffisante pour représenter des fréquences (fractionnaires) ki avec une précision inter-raie de 1/128 (par rapport à une transformée de Fourier discrète de longueur M. En fait pour K=512, la résolution de la FFT (voir la description du bloc 302) est de 16000/512=31,25 Hz. Le spectre WM (k) est quant à lui représenté avec une résolution de 31,25/128 0,24 Hz. Une partie du spectre WM (k) est illustré à la figure 7a où les fréquences négatives sont incluses à des fins d'illustration. Il apparaît que l'atténuation du lobe secondaire est de l'ordre de -43 dB ce qui justifie d'utiliser essentiellement le lobe principal pour représenter le spectre de la fenêtre. Pour réduire le nombre de valeurs de WM (k) à stocker et la complexité de la soustraction complexe (voir la description du bloc 304), on définit le "motif' (normalisé) comme: P(k)= WM (k) , k = 147m(0)1 en ne retenant que l'intervalle 0, 2 pour la longueur de transformée N. M 2 K Ce motif ne correspond qu'aux fréquences positives car les fréquences négatives s'obtiennent par symétrie hermitienne. Dans le mode de réalisation décrit ici, on utilise ri = 4 raies (pour la longueur de transformée K). Le choix de ri = 4, étant donné le facteur d'interpolation M/K = 128, limite avantageusement le stockage du "motif' P(k) à 2 +1=257 valeurs. Le motif P(k) K est illustré à la figure 7b représentant son amp itude, sa phase étant nulle dans le cas privilégié d'une fenêtre symétrique et d'une transformée à « phase recentrée ». Ainsi, le "motif' P(k) , k = 0,...,256, est calculé préalablement aux étapes mises en oeuvre dans le procédé de traitement et pré-stocké en mémoire ROM dans le bloc 300. Ce motif spectral peut aussi bien être stocké en représentation polaire (amplitude, phase) qu'en représentation cartésienne (partie réelle, partie imaginaire), selon les modalités de calcul choisies. Il va de soi que l'invention couvre la variante où ce motif P(k) est stocké de façon redondante en incluant également les valeurs correspondant aux fréquences négatives; cette variante n'apporte cependant qu'un avantage négligeable en termes de complexité de calcul. L'étape E303b du bloc 303 effectue alors le calcul du spectre combiné. Le spectre combiné des sinusoïdes est d'abord initialisé à la valeur nulle : S(k) = , k =0,...,K / 2 On considère par la suite que ces valeurs sont rassemblées dans un vecteur de longueur /Q2+1 : S =(S(0),S(1),...,S(K/ 2)) Le vecteur S est mis à jour de façon itérative en ajoutant le spectre discret de chaque sinusoïde (ou composante tonale) d'indice i. On approxime le spectre discret d'une sinusoïde de paramètres (a' k,0) par translation fréquentielle de ±k raies fréquentielles (avec la précision inter-raie de K/M=1/128) et addition-recouvrement du "motif' pré-calculé P(k) , k = 0,...,256, et multiplication par ci ou ateA . Ce calcul est illustré en détail à la figure 8, pour l'itération i, c'est-à-dire pour le calcul du spectre discret de la sinusoïde d'indice i (>0) dans le cas où cette sinusoïde est valide. Ainsi, le bloc E801 indique que l'organigramme de la figure 8 met en oeuvre la construction (const) du spectre à partir des paramètres estimés a,, 0, de la sinusoïde. Une étape E802 initialise le résultat de la sommation, laquelle est mise en oeuvre sous la forme d'une boucle (E803, E804, E807, e808). Les termes de la somme sont calculés aux étapes E805 et E806, dont les détails sont présentés à la figure 9. Ainsi, pour la i-ème sinusoïde, les écarts kr et k7 entre la fréquence ki et les indices entiers des raies proches pour la transformée de longueur K sont convertis par homothétie en indices AT et 3.;' relatifs à la transformée en longueur M, de la façon suivante: Ati =K(kt-LkiJ)=K(ki-k = '1;7- j- ki)=`1147(ki+ -ki) où L.] représente l'arrondi à l'entier inférieur. Par définition Ai + Ai11/ Le spectre de la i-ème sinusoïde est construit en ne retenant que i = 4 raies du motif P(k) (pour les fréquences positives). L'organigramme de la figure 8 met en oeuvre la sommation selon l'équation suivante : 2 S = S + spec(KE p P(Lp.f,` + spec(kti + p, où la fonction spec(k, V) est maintenant définie à travers l'organigramme présenté à la figure 9. Afin de compléter la description faite plus haut de la méthode dite "LS" d'estimation du paramètre d'amplitude complexe c1équivalent aux paramètres d'amplitude aiet de phase 9' on reformule cette équation ainsi : S = S+ =S+ i 2 P P([19 1A+1+ = spec(ki+ - p -1,P([19.'+'+ ATM+ spec(KE p=0 Cette factorisation est exacte sous l'hypothèse (généralement vérifiée, sauf cas particuliers) que la sinusoïde n'est pas trop proche des fréquences nulle et de Nyquist (d'indices 0 et K/2), de sorte que le motif échantillonné s'additionne seulement sur le demi-spectre de synthèse, sans repliement spectral. Le bloc E901 indique que l'organigramme de la figure 9 met en oeuvre la mise à jour partielle du spectre (spec) dans l'intervalle [0, K/2] pour la sinusoïde considérée. Cette mise à jour prend pour paramètre la raie de Fourier ket la valeur spectrale Vassociée à cette raie. L'étape E902 initialise le résultat du calcul. Ensuite 4 cas sont distingués: o k KI2 (étape E907): la périodicité du spectre discret et la symétrie hermitienne pour les fréquences négatives est mise à profit à l'étape E908, ce qui revient à écrire le conjugué complexe de V à la raie de position K-k; o Dans les autres cas (étape E909): la valeur Vest directement additionnée à la position k. Le calcul de S présenté précédemment est répété pour chaque sinusoïde valide d'indice 4 ce qui revient à calculer: S i=0 2 P([19. '+' + ATM+ spec(ki+ + ql[p4+ Al)) SpeC (ki+ p =0 où I est le nombre de sinusoïdes valides, ou composantes tonales identifiées. On suppose ici, sans perte de généralité (car il suffit d'une indexation appropriée), que l'ensemble les sinusoïdes non valides ne sont pas comptées. On peut noter que pour la sinusoïde d'indice 0, qui correspond à la raie DC (composante continue) est prise en compte dans la formule ci-dessus. Cette opération permet de ne pas modifier la valeur DC (composante continue) par post-traitement. Dans une variante du mode de réalisation, le processus de détection de pics est répété de façon itérative, pour ne détecter à la i-ème itération que le pic de position correspondant au maximum du spectre X (k) auquel est retranché à chaque itération le spectre des sinusoïdes déjà extraites. Cette variante correspond à une forme d'analyse connue dans l'état de l'art sous le nom de "matching pursuit". Le bloc 304 de la figure 3 calcule à l'étape E304 un résidu par la différence entre le signal audiofréquence décodé et un signal issu du spectre des composantes tonales. Dans le cas présent de la figure 3, l'obtention de ce résidu s'effectue dans le domaine fréquentiel par la différence entre le spectre du signal audiofréquence et le spectre des composantes tonales identifiées. On obtient ainsi le spectre résiduel après extraction (soustraction) des sinusoïdes synthétisées. Le résidu s'obtient dans le domaine complexe comme suit: R(k)= X (k)- S(k), k = 0, , K 12 Dans le cas idéal où le signal original est constitué comme une combinaison de sinusoïdes qui sont préservées par codage-décodage, le résidu correspond alors au bruit de codage. Cependant en général, le résidu obtenu comporte : o une partie correspondant au résidu de modélisation sinusoïdale du signal original (incluant les composantes non-tonales du signal ainsi que les erreurs de modélisation) o une partie correspondant au bruit de codage. Dans le bloc 305 de la figure 3, une étape E305 d'atténuation spectrale est mise en oeuvre. Cette opération utilise en général toute l'information disponible. Elle peut par exemple être fonction de la classification des composantes tonales extraites, du signal résiduel et des paramètres décodés. Le bloc 305 réalise une atténuation spectrale du spectre du résidu sous la forme suivante: Rat, (k) = g (k).R(k) , k = 0, ... , K 1 2 où g(k) est un gain adaptatif vérifiant de façon générale : 0 g(k) 1. Dans une variante du mode de réalisation privilégié, le gain appliqué au résidu subira un lissage temporel afin d'atténuer les variations inter-trames et éviter certains artefacts. Dans ce cas le bloc 305 effectuera le calcul R (k) = (k).R(k) , k = 0, ... , K 1 2 où le gain lissé g(k) s'obtient par exemple par lissage exponentiel du g(k) suivant l'équation g (k) = (k) Dans ce mode de réalisation, le niveau de bruit de codage 5(k) est donc estimé à l'aide de bandes critiques "flottantes" dans le sens où chaque raie de Fourier d'indice kse voit associée à un intervalle d'intégration [start(k),stop(k)-1]. Les tableaux donnés ci-dessus correspondent à un intervalle de 1/2 Bark de part et d'autre de chaque raie d'indice k, autrement dit l'intervalle [start(k),stop(k)-1] a une largeur (approximative) de 1 Bark. Dans une variante du mode de réalisation, l'estimation du bruit de codage pourra utiliser des intervalles de taille différente, par exemple 2 Barks ou 1/2 Bark. Par ailleurs, le niveau d'atténuation maximale, gm,n, pourra être rendu adaptatif en fonction de la classification, comme dans la technique de Vaillancourt et al. De plus le gain de Wiener pourra être remplacée par une autre fonction de réduction utilisant le rapport signal à bruit RSB(k) Le rapport signal à bruit RSB(k) est par essence relativement élevé au voisinage des sinusoïdes extraites - en effet dans ce voisinage le résidu de modélisation sinusoïdal est de niveau inférieur à celui du signal puisqu'une sinusoïde a été retranchée ; par contre, pour les raies d'indice k situées dans les zones fréquentielles inter-tones, le résidu a un niveau correspondant à celui du signal et le rapport RSB(k) aura une valeur proche de 0 dB. Dans une variante du mode de réalisation, on pourra artificiellement baisser la valeur du rapport signal à bruit en lui appliquant un facteur (par exemple 1/16) afin de forcer une atténuation plus forte que le gain de Wiener associé à un RSB de 0 dB. Dans une variante du mode de réalisation, le gain g(k) est calculé à partir des coefficients du filtre LPC décodé Â(z) associés à la dernière sous-trame (5 ms) de la trame courante. Ces coefficients sont fournis par le bloc 301 de décodage. Soit donc le filtre de fonction de transfert : Â(z/yi) H(z)= A(z/r2) avec yi =0,6 et 72=0,95. On rappelle que les coefficients du filtre Â(z) et donc la fonction de transfert H(z), sont définis pour la fréquence d'échantillonnage de 12,8 kHz. Dans la présente description, le signal traité est échantillonné à 16 kHz. On définit alors K' = LKx12, 8/16 j= 410 , qui est l'indice fréquentiel correspondant approximativement à la fréquence 12,8 kHz. De là, le gain g(k) est calculé comme suit : g(k) go1H-(e,2zkix-) k=0,...,K72 g(K72) k=K72+1,...,K12 KY2 où go est un facteur de normalisation tel que g(k)=1. Il est bien évident qu'une k=0 transposition de l'invention à un domaine d'échantillonnage identique à celui où est défini Â(z) impliquerait une valeur K' =K. Afin d'éviter une atténuation trop forte, la valeur du gain g(102) k=K72+1,...,K/2 Cette variante qui utilise le filtre de prédiction linéaire décodé a l'avantage de fournir une fonction de pondération relativement lisse et variant lentement d'une trame à l'autre pour un signal stationnaire; par contre elle a le désavantage de colorer le résidu par la réponse (étendue) du filtre H(z). D'autres réalisations du calcul du gain sont possibles, sans changer le principe de l'invention. Dans une variante du mode de réalisation ainsi décrit, le gain est calculé en fonction du modèle sinusoïdal. Les composantes tonales qui sont extraites et synthétisées ont pour paramètres (a1 , k. ,6e) avec i E /1 , où /est le nombre de sinusoïdes valides (après élimination des sinusoïdes non valides qui ne sont pas comptées et après indexation appropriée) et k1 Dans une autre variante du mode de réalisation, l'information de classification pourrait être disponible au décodeur en tant que paramètre multiplexé dans le train binaire. Le bloc 306 de la figure 3 effectue une étape de combinaison du résidu atténué et du signal issu du spectre des composantes tonales. Dans ce mode de réalisation, l'étape E306 recombine le spectre résiduel atténué et le spectre des sinusoïdes identifiées comme suit: T (k) = S (k)+ Rajk) , k = 0, ... , K 1 2 Le spectre du signal post-traité T (k) , k = 0, ... , K 12 , est étendu en T (k) , k = 0, ... , K -1 avec T (k) =T* (K - k) , k = K 1 2+1, , K -1 où *est le conjugué complexe. Pour obtenir le signal temporel t(m) le signal T (k) est transformé par le bloc 307 qui comprend une FFT inverse (étape E307) de longueur K-512, suivie d'une permutation circulaire de N/2 échantillons temporels vers la droite effectuée pour compenser le « recentrage de phase » lorsque celui-ci est appliqué à l'analyse, comme cela décrit plus haut comme mode de réalisation principal. Cela revient à écrire la Transformée de Fourier inverse ainsi :: 1 K-1 2z/c N) t(M)=-T(k).e K 2 , = ... K -1 K k=0 Dans une variante de l'invention où le recentrage de phase n'est pas appliqué à l'analyse, la transformée fréquence-temps (bloc 307) pour la synthèse consiste en une simple FFT inverse : 1 K-1 2z/c t(m) =-T(k).e K , K -1 K k=0 Dans les deux modes de réalisation décrits, la FFT inverse est calculée suivant la méthode décrite dans l'article de H.V. Sorensen et al.., intitulé "Real-valued fast Fourier transform algorithm," IEEE Trans. on Signal Processing, Vol.35, No.6, pp 849-863, 1987. La fenêtre de synthèse ws (m) est définie comme 0 m = 0, ... , D -1 (vs (m) = wola(m -D) wa(m) m = D , N -1' m = 0, ... , N -1 où l'on a introduit par commodité la quantité D = N - L - L01 d'échantillons ignorés et rendus nuls par le fenêtrage de synthèse, et où la fenêtre vola (111) = L+ Lola -1 d'addition- recouvrement (OLA pour Overlap-Add en anglais) est définie par: vola (m) = ( ( m = 0 , Lola -1 -1 1-cos -Tt-(m + 0 .5) = Lola - - - L -1 2 Lola // m= L, , L + Lola -1 1 1 ( ( 1+ cos -Tt-((m- L)+0.5) 2 \ Lola avec 1,01a =40 et L=320. Les fenêtreswoia (m) et ws (m) sont par ailleurs illustrées aux figures 6b et 6c respectivement. Comme illustré par la figure 11, la fenêtre de synthèse a vocation à traduire simultanément le redressement d'enveloppe temporelle et préparer le procédé d'addition- recouvrement. On définit alors le vecteur d'échantillons résultant de ce fenêtrage : tw(m) = ws(m)t(m) . En pratique, les D premiers échantillons n'ont pas besoin d'être calculés car nuls. Les Lola derniers échantillons, affectés par la pente décroissante de la fenêtre vola (in) , ne sont exploitables que pour la synthèse de la trame suivante, et sont stockés à cet effet dans un vecteur tsave (n) = t. (n + N - D), n = 0 , ..., Lola Pour la synthèse de la trame courante, on combine les échantillons ts("")(n) aPv, sauvegardés à la trame précédente (ou bien mis à zéro si le post-traitement n'a pas été appliqué à la trame précédente) et une portion du vecteur tw(m), de la façon suivante, achevant le procédé d'addition-recouvrement : It.(n + D) + t s('a'rvee") (n) n = 0, ..., Lola -1 On vérifie bien que compte-tenu du processus d'addition-recouvrement, les L échantillons de signal post-traité x p s (n) sont obtenus avec un retard de Lola échantillons par rapport à la trame courante de L échantillons considérée en entrée du post-traitement. Ainsi, dans le mode de réalisation décrit, le post-traitement induit un retard algorithmique supplémentaire de Lola = 40 échantillons, soit 2.5 ms. Le mode de réalisation principal repose sur une atténuation spectrale du résidu de modélisation sinusoïdale ; l'atténuation décrite précédemment correspond à une convolution x post (n) = t. ola (n + D) n = L , L -1 circulaire (multiplication du résidu par un gain dans le domaine de la transformée Fourier discrète). Or, il est connu de l'homme de l'art qu'une fonction de gain ayant une dynamique trop forte peut entrainer un résultat de convolution circulaire très différent d'une convolution linéaire. Dans une variante du mode de réalisation, un bourrage à zéro et une technique d'addition-recouvrement/mémorisation ("overlapp-add/save" en anglais) pourra être mise en oeuvre pour prendre en compte la longueur non nulle de la réponse impulsionnelle associée à la fonction de gain réalisant l'atténuation spectrale. En général cette variante occasionne un retard temporel supplémentaire. Dans un deuxième mode de réalisation, les étapes d'obtention du résidu, d'atténuation et de combinaison du procédé de traitement tel que décrit en référence à la figure 3, peuvent être effectuées dans le domaine temporel. La figure 12 illustre ce procédé ainsi que le dispositif de traitement 1200 correspondant. Sur cette figure, les blocs 300, 301, 302, 303 et 310 restent identiques à ceux décrits précédemment en référence à la figure 3. Le signal modélisé en somme de sinus encore appelé spectre des composantes tonales (S(k)) est dans ce mode de réalisation d'abord restitué dans le domaine temporel (bloc 1201) par une étape E1201 de transformée inverse et son enveloppe temporelle redressée par un fenêtrage approprié, en laissant de côté la portion située sur la zone de recouvrement (les Lola derniers échantillons) pour le traitement de la trame suivante, et en combinant de façon appropriée la même portion sauvegardée à la trame précédente pour reconstituer le début de la trame (avec un retard Lola). Le résidu est alors calculé à l'étape E1202 par le bloc 1202 par simple soustraction entre le signal audiofréquence décodé (x(n)) retardé de Lda échantillons et le signal issu du spectre des composantes tonales (s(n)) après transformation en 1201. A ce résidu, est appliquée alors une atténuation spectrale (bloc 1203) par un filtrage temporel (étape E1203) dont le design des paramètres est piloté par le module de modélisation sinusoïdale (bloc 303) et/ou des paramètres décodés (p.decod.) à partir du train binaire et/ou le module de classification (bloc 310). L'étape de combinaison E1204 du résidu ainsi atténué (ratt(n)) et du signal temporel des composantes tonales (s(n)), est effectuée par le bloc 1204 pour obtenir le signal temporel traité (xpost(n)). De la même façon que le procédé décrit en référence à la figure 3, le traitement effectué sur le signal permet de réduire le bruit de codage qui pouvait subsister sur les signaux musicaux lors du décodage effectué par des décodeurs plus adaptés à des signaux de parole. Cette méthode permet donc d'obtenir des signaux à la fois de parole et de musique de meilleure qualité, tout en gardant les codeurs et décodeurs de parole existants. La figure 13 représente un exemple de réalisation matérielle d'un dispositif de traitement selon l'invention. Celui-ci peut faire partie intégrante d'un décodeur audiofréquence ou d'un équipement recevant des signaux audiofréquences décodés. Ce type de dispositif comporte un processeur PROC coopérant avec un bloc mémoire BM comportant une mémoire de stockage et/ou de travail MEM. Le bloc mémoire peut avantageusement comporter un programme informatique comportant des instructions de code pour la mise en oeuvre des étapes du procédé de traitement au sens de l'invention, lorsque ces instructions sont exécutées par le processeur PROC, et notamment les étapes d'identification de composantes tonales dans le signal audiofréquence représenté dans le domaine fréquentiel, de calcul d'un spectre des composantes tonales identifiées à partir d'un modèle sinusoïdal, d'obtention d'un résidu par la différence entre le signal audiofréquence décodé et un signal issu du spectre des composantes tonales, d'atténuation spectrale du résidu et de combinaison du résidu atténué et du signal issu du spectre des composantes tonales. Typiquement, la description de la figure 3 ou de la figure 12 reprend les étapes d'un algorithme d'un tel programme informatique. Le programme informatique peut également être stocké sur un support mémoire lisible par un lecteur du dispositif ou téléchargeable dans l'espace mémoire de celui-ci. La mémoire MEM enregistre le motif P(k) utilisé dans le procédé selon un mode de réalisation de l'invention et de manière générale, toutes les données nécessaires à la mise en oeuvre du procédé. Un tel dispositif comporte un module d'entrée E apte à recevoir un signal audiofréquence (x(n)) et un module de sortie S apte à transmettre le signal traité xpost(n). Dans un mode possible de réalisation, le dispositif ainsi décrit peut également comporter les fonctions de décodage en plus des fonctions de traitement selon l'invention. REVENDICATIONS1. Procédé de traitement d'un signal audiofréquence décodé, caractérisé en ce qu'il comporte les étapes suivantes: identification (E303a) de composantes tonales dans le signal audiofréquence représenté dans le domaine fréquentiel; calcul (E303b) d'un spectre des composantes tonales identifiées à partir d'un modèle sinusoïdal; obtention (E304, E1202) d'un résidu par la différence entre le signal audiofréquence décodé et un signal issu du spectre des composantes tonales; atténuation spectrale (E305, E1203) du résidu; et combinaison (E306, E1204) du résidu atténué et du signal issu du spectre des composantes tonales. 2. Procédé selon la revendication 1, caractérisé en ce que les étapes d'obtention du résidu, d'atténuation et de combinaison sont effectués dans le domaine fréquentiel. 3. Procédé selon la revendication 1, caractérisé en ce que les étapes d'obtention du résidu, d'atténuation et de combinaison sont effectués dans le domaine temporel. 4. Procédé selon la revendication 1, caractérisé en ce que l'identification des composantes tonales s'effectue par une méthode d'interpolation sur un nombre prédéterminé de raies fréquentielles. 5. Procédé selon la revendication 1, caractérisé en ce que l'identification des composantes tonales utilise un motif spectral (P(k)) pré-calculé et stocké en mémoire. 6. Procédé selon la revendication 1, caractérisé en ce que le calcul du spectre des composantes tonales utilise un motif spectral (P(k)) pré-calculé et stocké en mémoire. 7. Procédé selon la revendication 1, caractérisé en ce que l'atténuation spectrale s'effectue en fonction d'une donnée de classification du signal audiofréquence. 8. Procédé selon la revendication 3, caractérisé en ce que l'atténuation spectrale s'effectue par un filtrage du résidu dans le domaine temporel. 9. Dispositif de traitement d'un signal audiofréquence décodé, caractérisé en ce qu'il comporte: un module d'identification (303) de composantes tonales dans le signal audiofréquence représenté dans le domaine fréquentiel; un module de calcul (303) d'un spectre des composantes tonales identifiées à partir d'un modèle sinusoïdal; un module d'obtention (304, 1202) d'un résidu par la différence entre le signal audiofréquence décodé et un signal issu du spectre des composantes tonales; un module d'atténuation spectrale (305, 1203) du résidu; et un module de combinaison (306, 1204) du résidu atténué et du signal issu du spectre des composantes tonales. 10. Décodeur de signal audiofréquence caractérisé en ce qu'il comporte un dispositif de traitement selon la revendication 9. 11. Programme informatique comportant des instructions de code pour la mise en oeuvre des étapes du procédé de traitement selon l'une des revendications 1 à 8, lorsque ces instructions sont exécutées par un processeur. 25