PROCEDE DE RECHERCHE D'UN MODELE DE BRUIT DANS DES SIGNAUX SONORES BRUITES
L'invention concerne l'amélioration de l'intelligibilité des communications vocales en présence de bruit. Elle s'applique plus spécialement mais non exclusivement aux communications téléphoniques ou radiotéléphoniques ou par d'autres moyens électroniques, à la reconnaissance vocale, etc., chaque fois que l'environnement de la prise de son est bruité et risque de détériorer la perception ou la reconnaissance de la voix transmise.
Un exemple peut en être donné à propos des communications vocales à l'intérieur d'un avion ou d'un autre véhicule bruyant. Dans le cas d'un avion, les bruits résultent des moteurs, de la climatisation, de la ventilation des équipements de bord, des bruits aérodynamiques. Ces bruits sont captés par le microphone dans lequel parle le pilote ou un membre de l'équipage.
L'invention propose un procédé de recherche d'un modèle de bruit pouvant servir en particulier dans des traitements de réduction du bruit. Les traitements de réduction de bruit fondés sur le modèle de bruit trouvé permettent d'augmenter le rapport signal/bruit du signal transmis, un but étant de détériorer le moins possible l'intelligibilité du signal. Dans cette demande, les néologismes débruitage et débruiter seront utilisés pour parler des opérations visant à enlever ou réduire des composantes de bruit présentes dans le signal.
Le débruitage pourra se fonder comme on le verra sur la recherche permanente d'un modèle de bruit ambiant, sur l'analyse spectrale numérique de ce bruit, et sur la reconstruction numérique d'un signal utile éliminant autant que possible le bruit modélisé.
Le modèle de bruit est recherché dans les signaux bruités eux- mêmes et chaque fois qu'un modèle de bruit plausible a été trouvé, ce modèle de bruit est stocké pour pouvoir être utilisé. Puis, une nouvelle recherche commence pour trouver un modèle plus adapté ou simplement plus récent.
Plus précisément, l'invention propose un procédé de recherche automatique de modèles de bruit dans des signaux d'entrée sonores bruités, dans lequel on numérise les signaux d'entrée, et on traite ces signaux à partir d'un modèle trouvé (par exemple en vue d'éliminer au mieux le bruit correspondant au modèle), caractérisé en ce que les signaux d'entrée sont découpés en trames successives de P échantillons chacune, et une recherche répétitive d'un modèle de bruit est effectuée en permanence dans les signaux d'entrée eux-mêmes, en recherchant N trames successives ayant les caractéristiques attendues d'un bruit, en stockant les NxP échantillons correspondants pour constituer un modèle de bruit utile au traitement de débruitage des signaux d'entrée, et en réitérant la recherche pour trouver un nouveau modèle de bruit et stocker le nouveau modèle en remplacement du précédent ou conserver le modèle précédent selon les caractéristiques respectives des deux modèles. Par conséquent, le modèle de bruit servant notamment au débruitage n'est pas un modèle prédéterminé connu ou un modèle choisi parmi plusieurs modèles prédéterminés, mais c'est un modèle trouvé dans le signal bruité lui-même, ce qui permet non seulement d'adapter le débruitage au véritable bruit gênant, mais aussi d'adapter le débruitage aux variations de ce bruit.
Le modèle de bruit est obtenu en considérant que les signaux dont l'énergie est stable (et, de préférence, comme on le verra, dont l'énergie est minimale), sur une certaine durée représentent probablement du bruit; la recherche d'un modèle de bruit comprend alors la recherche de N trames successives dont les énergies sont proches les unes des autres (N étant compris entre une valeur minimale N1 et une valeur maximale N2), le calcul de l'énergie moyenne des N trames successives trouvées, et le stockage des NxP échantillons à titre de nouveau modèle actif si le rapport entre cette énergie moyenne et l'énergie moyenne des trames du modèle actif précédemment stocké est inférieur à un seuil de remplacement déterminé.
La recherche de N trames successives comprend alors au moins les étapes itératives suivantes : calcul de l'énergie d'une trame courante de rang n susceptible d'être ajoutée à un modèle en cours d'élaboration comprenant déjà n-1 trames successives; calcul du rapport
entre cette énergie et l'énergie de la trame précédente de rang n-1 (et de préférence celle d'autres trames précédentes entre 1 et n-1 ); comparaison de ce rapport avec un seuil bas inférieur à 1 et un seuil haut supérieur à 1 ; et décision sur la possibilité d'incorporer la trame de rang n au modèle en cours d'élaboration : la trame n'est pas incorporée au modèle si le rapport n'est pas compris entre les deux seuils; elle est incorporée au modèle si le rapport est compris entre les deux seuils. La procédure est réitérée sur la trame courante suivante des signaux d'entrée, avec incrémentation de n, jusqu'à l'arrêt de l'élaboration du modèle. L'élaboration du modèle est arrêtée soit dans le cas où n atteint la valeur haute N2, soit dans le cas où la trame de rang n n'est pas incorporée au modèle parce que le rapport d'énergies calculé sort de la gamme prescrite. Dans ce dernier cas, le modèle élaboré ne peut être pris en compte comme modèle actif que si n-1 est déjà supérieur ou égal au minimum N1 , car le principe est qu'un modèle de bruit est représentatif s'il a une énergie à peu près stable sur au moins N1 trames.
De préférence, le modèle élaboré ne devient actif à la place du modèle précédent que si le rapport entre son énergie moyenne par trame et l'énergie moyenne du modèle précédent ne dépasse pas un seuil de remplacement prédéterminé.
Dans tous les cas, la recherche d'un nouveau modèle recommence dès que l'élaboration du précédent est interrompue.
Enfin, de préférence, on peut prévoir que le remplacement d'un modèle précédent par un nouveau modèle est inhibé dès que de la parole est détectée dans les signaux bruités. La présence de parole peut en effet être détectée par des procédures de traitement de signal numérique (telles que celles qu'on peut utiliser dans la reconnaissance de parole).
D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit et qui est faite en référence aux dessins annexés dans lesquels :
- la figure 1 représente un organigramme général d'un procédé de réduction de bruit utilisant le procédé de l'invention;
- la figure 2 représente un exemple typique de signal issu d'une prise de son bruitée;
- la figure 3 représente l'organigramme des étapes de recherche d'un modèle de bruit dans le signal d'entrée;
- la figure 4 représente un exemple d'architecture de circuit électronique pour la mise en oeuvre d'opérations de débruitage utilisant le procédé selon l'invention.
Dans l'analyse de la parole, il est usuel de considérer que les régimes stationnaires de production du son s'établissent sur des durées comprises entre 10 et 20 millisecondes. L'analyse de signaux qui permet le débruitage reposera sur l'analyse spectrale des signaux dans des intervalles de temps de durée D, qu'on appellera "trames", et qui auront à peu près cette durée.
Chaque trame comportera P = 2P échantillons de signal numérisé, le nombre P dépendant de la fréquence d'échantillonnage du signal traité, de manière que la trame ait une durée de l'ordre de 10 à 20 ms quelle que soit la fréquence d'échantillonnage Fβ = 1 Tβ. Par exemple, pour une fréquence d'échantillonnage de 10 kHz, la trame comportera P = 128 échantillons (p = 7) et durera 12,8 ms.
Le schéma de la figure 1 est un organigramme expliquant le principe général du procédé de débruitage.
Le signal d'entrée à traiter, issu par exemple d'un microphone, est noté u(t), avec une partie utile s(t) et un bruit indésirable b(t), avec u(t) = s(t) + b(t), le temps t étant supposé discret (t = kTβ) puisque le signal est échantillonné avant d'être numérisé dans un convertisseur analogique- numérique.
Dans la suite, on considérera, à titre d'exemple représentant l'application principale de l'invention, que le traitement des signaux d'entrée est un traitement de débruitage à partir du modèle de bruit trouvé. D'autres applications peuvent être envisagées (recherche de consonnes sifflantes ou chuintantes, par exemple).
Le principe général du procédé de débruitage repose sur une recherche permanente et automatique d'un modèle de bruit qui servira à traiter le signal d'entrée pour le débruiter. Cette recherche est faite sur les échantillons de signal u(t) numérisés et stockés dans une mémoire tampon d'entrée. Cette mémoire est capable de mémoriser simultanément tous les
échantillons de plusieurs trames du signal d'entrée (par exemple au moins 2 trames).
Le modèle de bruit recherché est constitué par une succession de plusieurs trames dont la stabilité en énergie et le niveau d'énergie relative font penser qu'il s'agit d'un bruit ambiant et non d'un signal de parole ou d'un autre bruit perturbateur. On verra plus loin comment se fait cette recherche automatique.
Lorsqu'un modèle de bruit est trouvé, tous les échantillons des N trames successives représentant ce modèle de bruit sont conservés en mémoire, de sorte que le spectre de ce bruit peut être analysé et peut servir au débruitage. Mais la recherche automatique de bruit continue à partir du signal d'entrée u(t) pour trouver éventuellement un modèle plus récent et plus adapté, soit parce qu'il représente mieux le bruit ambiant, soit parce que le bruit ambiant a évolué. Le modèle de bruit plus récent est mis en mémoire à la place du précédent, si la comparaison avec le précédent montre qu'il est plus représentatif du bruit ambiant.
Le débruitage du signal d'entrée u(t) se fait à partir du modèle de bruit qui est en mémoire, et plus précisément à partir des caractéristiques spectrales de ce modèle. Une transformée de Fourier et une estimation de densité spectrale moyenne de bruit sont donc effectuées sur le modèle de bruit stocké. L'opération de débruitage se fait de préférence grâce à un filtrage numérique de Wiener sur lequel on reviendra plus en détail. Le filtre de Wiener est paramétré par les caractéristiques spectrales du modèle de bruit enregistré et par les caractéristiques spectrales du signal u(t) à debruiter. Le signal d'entrée numérisé subit donc une transformée de Fourier et une estimation de densité spectrale. Les valeurs numériques de la transformée de Fourier, c'est-à-dire le signal d'entrée représenté par ses composantes fréquentielles, sont traitées par le filtre de Wiener et la sortie du filtre de Wiener représente, dans l'espace fréquentiel, le signal numérique débruite, c'est-à-dire débarrassé le mieux possible du bruit représenté par le modèle enregistré.
Le signal numérique filtré sert soit à la reconstruction d'un signal sonore dans lequel le bruit ambiant a été en partie éliminé, soit à la reconnaissance vocale.
La phase de recherche automatique d'un modèle de bruit et la mise à jour permanente de ce modèle sont des étapes cruciales du procédé et font plus précisément l'objet de l'invention.
Les postulats de départ pour l'élaboration automatique d'un modèle de bruit sont les suivants :
- le bruit qu'on veut éliminer est le bruit de fond ambiant;
- le bruit ambiant a une énergie relativement stable à court terme,
- la parole est le plus souvent précédée d'un bruit de respiration du pilote qu'il ne faut pas confondre avec le bruit ambiant; mais ce bruit de respiration s'éteint quelques centaines de millisecondes avant la première émission de parole proprement dite, de sorte qu'on ne retrouve que le bruit ambiant juste avant l'émission de parole;
- et enfin, les bruits et la parole se superposent en termes d'énergie de signal, de sorte qu'un signal contenant de la parole ou un bruit perturbateur, y compris la respiration dans le microphone, contient forcément plus d'énergie qu'un signal de bruit ambiant.
Il en résulte qu'on fera l'hypothèse simple suivante : le bruit ambiant est un signal présentant une énergie minimale stable à court terme. Par court terme il faut entendre quelques trames, et on verra dans l'exemple pratique donné ci-après que le nombre de trames destiné à évaluer la stabilité du bruit est de 5 à 20. L'énergie doit être stable sur plusieurs trames, faute de quoi on doit supposer que le signal contient plutôt de la parole ou un bruit autre que le bruit ambiant. Elle doit être minimale, faute de quoi on considère que le signal contient de la respiration ou des éléments phonétiques de parole ressemblant à du bruit mais se superposant au bruit ambiant.
La figure 2 représente une configuration typique d'évolution temporelle de l'énergie d'un signal microphonique au moment d'un début d'émission de parole, avec une phase de bruit de respiration, qui s'éteint pendant quelques dizaines à centaines de millisecondes pour faire place au bruit ambiant seul, après quoi un niveau d'énergie élevé indique la présence de parole, pour revenir enfin au bruit ambiant.
La recherche automatique du bruit ambiant consiste alors à trouver au moins N1 trames successives (par exemple N1 = 5) dont les
énergies sont proches les unes des autres, c'est-à-dire que le rapport entre l'énergie de signal contenue dans une trame et l'énergie de signal contenue dans la ou, de préférence, les trames précédentes est situé à l'intérieur d'une gamme de valeurs déterminée (par exemple compris entre 1/3 et 3). Lorsqu'une telle succession de trames d'énergie relativement stable a été trouvée, on stocke les valeurs numériques de tous les échantillons de ces N trames. Cet ensemble de NxP échantillons constitue le modèle courant de bruit. Il est utilisé dans le débruitage. L'analyse des trames suivantes continue. Si on trouve une autre succession d'au moins N1 trames successives répondant aux mêmes conditions de stabilité d'énergie (rapports d'énergies de trames dans une gamme déterminée), on compare alors l'énergie moyenne de cette nouvelle succession de trames à l'énergie moyenne du modèle stocké, et on remplace ce dernier par la nouvelle succession si le rapport entre l'énergie moyenne de la nouvelle succession et l'énergie moyenne du modèle stocké est inférieur à un seuil de remplacement déterminé qui peut être de 1 ,5 par exemple.
De ce remplacement d'un modèle de bruit par un modèle plus récent moins énergétique ou pas beaucoup plus énergétique, il résulte que le modèle de bruit se cale globalement sur le bruit ambiant permanent. Même avant une prise de parole, précédée d'une respiration, il existe une phase où le bruit ambiant seul est présent pendant une durée suffisante pour pouvoir être pris en compte comme modèle de bruit actif. Cette phase de bruit ambiant seul après respiration est brève; le nombre N1 est choisi relativement faible, afin qu'on ait le temps de recaler le modèle de bruit sur le bruit ambiant après la phase de respiration.
Si le bruit ambiant évolue lentement, l'évolution sera prise en compte du fait que le seuil de comparaison avec le modèle stocké est supérieur à 1. S'il évolue plus rapidement dans le sens croissant, l'évolution risque de ne pas être prise en compte, de sorte qu'il est préférable de prévoir de temps en temps une réinitialisation de la recherche d'un modèle de bruit. Par exemple, dans un avion au sol à l'arrêt, le bruit ambiant sera relativement faible, et il ne faudrait pas qu'au cours de la phase de décollage le modèle de bruit reste figé sur ce qu'il était à l'arrêt du fait qu'un modèle de bruit n'est remplacé que par un modèle moins énergétique ou pas
beaucoup plus énergétique. On expliquera plus loin les méthodes de réinitialisation envisagées.
La figure 3 représente un organigramme des opérations de recherche automatique d'un modèle de bruit ambiant. Le signal d'entrée u(t), échantillonné à la fréquence Fθ = 1/Tβ et numérisé par un convertisseur analogique-numérique, est stocké dans une mémoire tampon capable de stocker tous les échantillons d'au moins 2 trames.
Le numéro de la trame courante dans une opération de recherche d'un modèle de bruit est désigné par n et est compté par un compteur au fur et à mesure de la recherche. A l'initialisation de la recherche, n est mis à 1. Ce numéro n sera incrémenté au fur et à mesure de l'élaboration d'un modèle de plusieurs trames successives. Lorsqu'on analyse la trame courante n, le modèle comprend déjà par hypothèse n-1 trames successives répondant aux conditions imposées pour faire partie d'un modèle.
On considère d'abord qu'il s'agit d'une première élaboration de modèle, aucun autre modèle précédent n'ayant été construit. On verra ensuite ce qui se passe pour des élaborations ultérieures. L'énergie de signal de la trame est calculée par sommation des carrés des valeurs numériques des échantillons de la trame. Elle est conservée en mémoire.
On lit ensuite la trame suivante de rang n = 2, et son énergie est calculée de la même manière. Elle est également conservée en mémoire.
On calcule le rapport entre les énergies des deux trames. Si ce rapport est compris entre deux seuils S et S' dont l'un est supérieur à 1 et l'autre est inférieur à 1 , on considère que les énergies des deux trames sont proches et que les deux trames peuvent faire partie d'un modèle de bruit. Les seuils S et S' sont de préférence inverses l'un de l'autre (S' = 1/S) de sorte qu'il suffit de définir l'un pour avoir l'autre. Par exemple, une valeur typique est S = 3, S' = 1/3. Si les trames peuvent faire partie d'un même modèle de bruit, les échantillons qui les composent sont stockés pour commencer à construire le modèle, et la recherche continue par itération en incrémentant n d'une unité.
Si le rapport entre les énergies des deux premières trames sort de l'intervalle imposé, les trames sont déclarées incompatibles et la recherche est réinitialisée en remettant n à 1.
Dans le cas où la recherche continue, on incrémenté le rang n de la trame courante, et on effectue, dans une boucle de procédure itérative, un calcul d'énergie de la trame suivante et une comparaison avec l'énergie de la trame précédente ou des trames précédentes, en utilisant les seuils S et S".
On notera à ce propos que deux types de comparaison sont possibles pour ajouter une trame à n-1 trames précédentes qui ont déjà été considérées comme homogènes en énergie : le premier type de comparaison consiste à comparer uniquement l'énergie de la trame n à l'énergie de la trame n-1. Le deuxième type consiste à comparer l'énergie de la trame n à chacune des trames 1 à n-1. La deuxième manière aboutit à une plus grande homogénéité du modèle mais elle a l'inconvénient de ne pas prendre en compte suffisamment bien les cas où le niveau de bruit croît ou décroît rapidement.
Ainsi, l'énergie de la trame de rang n est comparée avec l'énergie de la trame de rang n-1 et éventuellement d'autres trames précédentes (pas forcément toutes d'ailleurs).
Si la comparaison indique qu'il n'y a pas homogénéité avec les trames précédentes, du fait que le rapport des énergies n'est pas compris entre 1/S et S, deux cas sont possibles :
- ou bien n est inférieur ou égal à un nombre minimal N1 en dessous duquel le modèle ne peut pas être considéré comme significatif du bruit ambiant parce que la durée d'homogénéité est trop courte; par exemple N1 = 5; dans ce cas on abandonne le modèle en cours d'élaboration, et on réinitialise la recherche au début en remettant n à 1 ;
- ou bien n est supérieur au nombre minimal N1. Dans ce cas, puisqu'on trouve maintenant un manque d'homogénéité, on considère qu'il y a peut-être un début de parole après une phase de bruit homogène, et on conserve à titre de modèle de bruit tous les échantillons des n-1 trames de bruit homogènes qui ont précédé le manque d'homogénéité. Ce modèle reste stocké jusqu'à ce qu'on trouve un modèle
plus récent qui semble également représenter du bruit ambiant. La recherche est réinitialisée de toutes façons en remettant n à 1.
Mais la comparaison de la trame n avec les précédentes aurait pu encore aboutir à la constatation d'une trame encore homogène en énergie avec la ou les précédentes. Dans ce cas, ou bien n est inférieur à un deuxième nombre N2 (par exemple N2 = 20) qui représente la longueur maximale souhaitée pour le modèle de bruit, ou bien n est devenu égal à ce nombre N2. Le nombre N2 est choisi de manière à limiter le temps de calcul dans les opérations ultérieures d'estimation de densité spectrale de bruit. Si n est inférieur à N2, la trame homogène est ajoutée aux précédentes pour contribuer à construire le modèle de bruit, n est incrémenté et la trame suivante est analysée.
Si n est égal à N2, la trame est également ajoutée aux n-1 trames homogènes précédentes et le modèle de n trames homogènes est stocké pour servir dans l'élimination du bruit. La recherche d'un modèle est par ailleurs réinitialisée en remettant n à 1.
Les étapes précédentes concernent la première recherche de modèle. Mais une fois qu'un modèle a été stocké, il peut à tout moment être remplacé par un modèle plus récent. La condition de remplacement est encore une condition d'énergie, mais cette fois elle porte sur l'énergie moyenne du modèle et non plus sur l'énergie de chaque trame.
Par conséquent, si un modèle possible vient d'être trouvé, avec N trames où N1 <N<N2, on calcule l'énergie moyenne de ce modèle qui est la somme des énergies des N trames, divisée par N, et on la compare à l'énergie moyenne des N' trames du modèle précédemment stocké.
Si le rapport entre l'énergie moyenne du nouveau modèle possible et l'énergie moyenne du modèle actuel en vigueur est inférieur à un seuil de remplacement SR, le nouveau modèle est considéré comme meilleur et on le stocke à la place du précédent. Sinon, le nouveau modèle est rejeté et l'ancien reste en vigueur.
Le seuil SR est de préférence légèrement supérieur à 1. Si le seuil SR était inférieur ou égal à 1 , on stockerait à chaque fois les trames homogènes les moins énergétiques, ce qui correspond bien au fait qu'on considère que le bruit ambiant est le niveau d'énergie au
dessous duquel on ne descend jamais. Mais, on éliminerait toute possibilité d'évolution du modèle si le bruit ambiant se mettait à augmenter.
Si le seuil SR était trop élevé au dessus de 1 , on risquerait de mal distinguer le bruit ambiant et d'autres bruits perturbateurs (respiration), voire même certains phonèmes qui ressemblent à du bruit (consonnes sifflantes ou chuintantes par exemple). L'élimination de bruit à partir d'un modèle de bruit calé sur la respiration ou sur des consonnes sifflantes ou chuintantes risquerait alors de nuire à l'intelligibilité du signal débruite.
Dans un exemple préféré le seuil SR est d'environ 1 ,5. Au dessus de ce seuil on conservera l'ancien modèle; en dessous de ce seuil on remplacera l'ancien modèle par le nouveau. Dans les deux cas, on réinitialisera la recherche en recommençant la lecture d'une première trame du signal d'entrée u(t), et en mettant n à 1.
Pour rendre l'élaboration du modèle de bruit plus fiable, on peut prévoir que la recherche d'un modèle est inhibée si une émission de parole est détectée dans le signal utile. Les traitements numériques de signal couramment utilisés en détection de parole permettent d'identifier la présence de paroles en se fondant sur les spectres caractéristiques de périodicité de certains phonèmes, notamment les phonèmes correspondant à des voyelles ou à des consonnes voisées.
Le but de cette inhibition est d'éviter que certains sons soient pris pour du bruit alors que ce sont des phonèmes utiles, qu'un modèle de bruit fondé sur ces sons soit stocké et que la suppression du bruit postérieure à l'élaboration du modèle tende alors à supprimer tous les sons similaires.
Par ailleurs, il est souhaitable de prévoir de temps en temps une réinitialisation de la recherche du modèle pour permettre une remise à jour du modèle alors que les augmentations du bruit ambiant n'ont pas été prises en compte du fait que SR n'est pas beaucoup supérieur à 1. Le bruit ambiant peut en effet augmenter de façon importante et rapide, par exemple pendant la phase d'accélération des moteurs d'un avion ou d'un autre véhicule, aérien, terrestre ou maritime. Mais le seuil SR impose que le modèle de bruit précédent soit conservé lorsque l'énergie moyenne de bruit augmente trop vite.
Si on souhaite remédier à cette situation, on peut procéder de différentes manières, mais la manière la plus simple est de réinitialiser le modèle périodiquement en recherchant un nouveau modèle et en l'imposant comme modèle actif indépendamment de la comparaison entre ce modèle et le modèle précédemment stocké. La périodicité peut être basée sur la durée moyenne d'élocution dans l'application envisagée; par exemple les durées d'élocution sont en moyenne de quelques secondes pour l'équipage d'un avion, et la réinitialisation peut avoir lieu avec une périodicité de quelques secondes. Le traitement de débruitage proprement dit, effectué à partir d'un modèle de bruit stocké, peut être effectué de la manière suivante, en travaillant sur les transformées de Fourier du signal d'entrée.
La transformée de Fourier du signal d'entrée est effectué trame par trame et fournit pour chaque trame P échantillons dans l'espace fréquentiel, chaque échantillon correspondant à une fréquence F \ avec i variant de 1 à P. Ces P échantillons seront traités de préférence dans un filtre de Wiener. Le filtre de Wiener est un filtre numérique de P coefficients correspondant chacun à une des fréquences FJ\ de l'espace fréquentiel. Chaque échantillon du signal d'entrée dans l'espace fréquentiel est multiplié par le coefficient Wj respectif du filtre. L'ensemble des P échantillons ainsi traités constitue une trame de signal débruite, dans l'espace fréquentiel. Pour les applications de reconnaissance vocale, on utilise directement ces trames débruitées dans l'espace fréquentiel. Pour des applications où on veut reconstituer un signal sonore réel débruite, on effectue successivement une transformée de Fourier inverse sur chaque trame, une conversion numérique-analogique, et un lissage.
Les coefficients Wj du filtre de Wiener sont calculés à partir de la densité spectrale du signal d'entrée bruité et de la densité spectrale de bruit du modèle de bruit stocké. La densité spectrale d'une trame du signal d'entrée est obtenue à partir de la transformée de Fourier du signal d'entrée bruité. Pour chaque fréquence, on prend le module au carré de l'échantillon fourni par la transformée de Fourier, pour obtenir une valeur DSj pour chaque fréquence F,/!.
Pour la densité spectrale du modèle de bruit, on calcule le module au carré des P échantillons pour chaque trame, et on moyenne sur les N trames du modèle de bruit les N modules au carré correspondant à une même fréquence
On obtient P valeurs de densité de bruit DB, . Le coefficient de Wiener W, pour la fréquence F est alors
W, = 1 - DB./DS, .
L'échantillon de rang i de la transformée de Fourier d'une trame de signal d'entrée est multiplié par W, et la succession des P échantillons ainsi multipliés par P coefficients de Wiener constitue la trame d'entrée débruitée.
La mise en oeuvre du procédé selon l'invention peut se faire à partir de calculateurs non spécialisés, pourvus des programmes de calcul nécessaires et recevant les échantillons de signaux numérisés tels qu'ils sont fournis par un convertisseur analogique-numérique. Cette mise en oeuvre peut aussi se faire à partir d'un calculateur spécialisé à base de processeurs de signaux numériques, ce qui permet de traiter plus rapidement un plus grand nombre de signaux numériques.
La figure 4 représente un exemple d'architecture générale d'un calculateur spécialisé recevant le signal sonore à debruiter et fournissant en temps réel un signal sonore débruite.
Le calculateur comprend deux processeurs de signaux numériques DSP1 et DSP2 et des mémoires de travail associées à ces processeurs. Les signaux sonores bruités passent dans un convertisseur analogique-numérique CA/N et sont stockés en parallèle dans deux mémoires tampons FIF01 et FIF02 (du type "first-in, first-out", c'est-à-dire premier entré premier sorti). L'une des mémoires est reliée au processeur DSP1 , l'autre au processeur DSP2. Le processeur DSP1 est le processeur maître et il est dédié plutôt à la recherche d'un modèle de bruit. Il est donc programmé pour exécuter au moins les opérations suivantes : calcul d'énergie de trames, calculs de moyennes d'énergie, comparaison avec des seuils, comparaison de rang de trame avec N1 et N2, etc. Il calcule également des densités spectrales d'énergie du modèle de bruit. Ce processeur DSP1 est couplé à
une mémoire de travail dynamique DRAM1 dans laquelle on stocke l'échantillon de trame courante pendant un calcul, l'énergie d'une trame courante, l'énergie de la ou des trames précédentes, les échantillons de transformée de Fourier du modèle de bruit. Il est couplé également à une mémoire de travail statique dans laquelle sont stockées les tables servant au calcul de transformées de Fourier, et les seuils de comparaison S et SR.
Le processeur DSP2 est dédié plutôt au calcul de transformées de Fourier du signal à debruiter, au calcul de densité spectrale de ce signal, au calcul des coefficients de Wiener, au filtrage de Wiener, et à la transformée de Fourier inverse si cette dernière doit être effectuée. Le processeur DSP2 est couplé à une mémoire de travail dynamique DRAM2 et une mémoire de travail statique SRAM2. La mémoire DRAM2 stocke des échantillons de trame courante, des résultats de calcul de transformée de Fourier, des résultats de calcul de densité spectrale d'énergie du signal, les coefficients de Wiener calculés, etc.. La mémoire SRAM2 stocke notamment des tables servant au calcul de transformées de Fourier.
Les échantillons de signal sonore débruités calculés par le processeur DSP2 sont transmis, à travers une mémoire tampon circulante FIFO3, à un convertisseur numérique analogique CN/A, et à un circuit de lissage qui reconstitue sous forme analogique le signal sonore débruite.