Brevet FR2825826A1 — publié le 20021213

du mode sélectionné. L'invention concerne un codeur de signal vocal comportant un dispositif amélioré de détection d'activité vocale, et notamment un codeur conforme à la norme ITU-T G.729A, annexe B. Un signal vocal comporte jusqu'à 60% de silence ou de bruit de fond. Pour réduire la quantité d'informations à transmettre, il est connu de discriminer les portions de signal vocal qui contiennent réellement des signaux utiles et les portions qui ne contiennent que du silence ou du bruit; et de les coder respectivement selon deux algoritEmes différents, chaque portion qui ne contient que du silence ou du bruit étant codée avec très peu d'informations représentant les caractéristiques du bruit ambiant. Un tel codeur comporte un dispositif de détection d'activité vocale qui réclise cette discrimination d'après les caractéristiques spectrales et d'après l'énergie du signal vocal à coder (calculée sur chaque trame de signal). Le signal vocal est découpé en trames numériques correspondant à une durée de 10ms, par exemple. Pour chaque trame, un jeu de paramètres est extrait du signal. Les paramètres principaux sont des coefficients d'auto corrélation. Un ensemble de coefficients de codoge par prédiction linéaire, et un jeu de paramètres fréquentiels sont ensuite débuits de ces coefficients d'auto corrélation. Une des étape du procédé de discrimination des portions de signal vocal qui contiennent récilement des signaux utiles et des portions qui ne contiennent que du silence ou du bruit consiste à comparer l'énergie d'une trame du signal avec un seuil. Un dispositif de calcul de la valeur du seuil adapte la valeur du seuil en fonction des variations du bruit. Le bruit affectant le signal vocal est composé de bruit d'origine électrique et de bruit ambiant. Ce dernier peut augmenter ou diminuer de manière importante au cours d'une méme communication. D'autre part, des coefficients de filtrage fréquentiel du bruit doivent étre adaptés eux aussi aux variations du bruit. L'article Communication Magazine, September 1997, décrit un tel codeur. 2 2825826 Le décodeur chargé de décoder le signal vocal codé doit utiliser alternativement deux algorithmes de décodoge correspondant respectivement aux portion de signal codées comme de la voix et aux portions de signal codées comme du silence ou bruit de fond. Le passage d'un algorithme à l'autre est synchronisé par les informations codant les périodes de silence ou bruit. Les codeurs connus qui implémentent la norme ITU-T G. 729A, annexe B. 11/96, ne sont plus capables de faire la distinction entre le signal utile et le bruit lorsque le niveau de bruit est supérieur à 8000 échelons de l'échelle de quantification définie par cette norme. Il en résulte de nombreuses transitions inutiles du signal de détection d'activité vocale, et donc la perte de portions du signal utile. On conna^'t une solution décrite dans la contribution G.723.1 VAD et qui consiste à inkiber complètement la détection d'activité vocale dans le codeur, lorsque le rapport signal sur bruit est inférieur à une valeur prédétermince. Cette solution préserve l'intégrité du signal utile mais a pour inconvénient d'augmenter le traffic. Le but de l'invention est de proposer une solution plus efficace, qui préserve l'efficacité de la détection d'activité vocale en termes de trafic, mais qui ne nuise pas à la qualité du signal restitué après le décodoge. L'objet de l'invention est un procédé pour détecter l'activité vocale dans un signal, ce signal étant découpé en trames, et ce procédé comportant une étape de lissage d'une décision initiale, >, prise pour chaque trame; caractérisé en ce que cette étape de lissage comporte une étape qui consiste à prendre une décision définitive >, pour la trame n, si: - la décision initiale pour la trame n est ; - et la décision déTinitive pour la trame n-2 était ; - et l'énergie de la trame n-1 était supérieure à celle de la trame n-2; - et l'énergie de la trame n est supérieure à l'énergie de la trame n-2. Le procédé ainsi caractérisé évite une transition indésirable 3 2825826 prise pour la trame n-1 précéJant la trame courante n, pour décider une transition > vers >. Selon un mode de mise en _uvre préTérentiel, si une décision définitive " voix >, a été prise pour la trame n, le procédé selon l'invention consiste en outre à empécher toute décision définitive un nombre entier définissant une durée d'inertie. Le procédé ainsi caractérisé évite le phénomène de perte de segments de paroles parce que la fonction de lissage présente une inertie correspondant à la durce de trames, pour le retour à une décision >. L'invention a aussi pour objet un codeur de signal vocal comportant des moyens de lissage pour mettre en _uvre le procédé selon l'invention. L'invention sera mieux comprise et d'autres caractéristiques appara'^tront à l'aide de la description ci-dessous et des figures l'accompagnant: - La figure 1 représente le schéma fonctionnel d'un exemple de réclisation de codeur pour la mise en _uvre du procédé selon 1'invention. - La figure 2 représente 1'organigramme de la prise de décision " voix " / annexe B. 1 1/96. - La figure 3 représente de manière plus détaillée les opérations de lissage du signal de détection d'activité vocale, selon le procédé de codoge connu par la norme G.729 annexe B. 11/96. - La figure 4 représente 1'organigramme d'un exemple de mise en _uvre du lissage du signal de détection d'activité vocale, dans le procédé selon l'invention. La figure 5 représente respectivement les pourcentages d'erreurs avec le procédé connu et avec le procédé selon l'invention, pour différentes valeurs du rapport signal sur bruit. La figure 6 représente les pourcentages de pertes de parole avec le procédé connu et avec le procédé selon l'invention, pour différentes valeurs du rapport signal sur bruit. 4 2825826 L'exemple de réclisation d'un codeur, dont le schéma fonctionnel est représenté sur la figure 1 comporte: - une borne d'entrée l recevant, sous forme analogique, un signal vocal à coder; - un circuit 2 pour filtrer, échantillonner, quantifier, et mettre dans des trames, le signal vocal; un commutateur 3 ayant une entrée reliée à la sortie du circuit 2, et deux sorties; - un circuit 4 de codoge des trames considérées comme représentant véritablement un signal utile, ayant une entrce relice à une première sortie du commutateur 3; - un circuit 5 de codoge des trames considérées comme représentant du silence ou du bruit, ayant une entrée reliée à une second sortie du commotateur 3; - un second commutateur 6 ayant: une première et une seconde entrée reliées respectivement à une sortie du circuit 4 et à une sortie du circuit 5, et une borne de sortie 9 constituant la borne de sortie du codeur; - et un détecteur 7 d'activité vocal ayant une entrce relice à la sortie du circuit 2 et une sortie relice notamment à une entrée de commande de chacun des commutateurs 3 et 6, afin de sélectionner les trames codées correspondant au contenu reconnu dans le signal vocal: soit signal utile, soit silence (ou bruit). Quand le signal vocal est un signal utile, le codeur fournit une trame toutes les 10 ms. Quand le signal vocal est constitué de silence (ou de bruit), le codeur fournit une seule trame, au début de la période de silence (ou de bruit). En pratique, un tel codeur peut étre réulisé au moyen d'un processeur convenablement programmé. En particulier, le procédé selon l'invention peut étre mis en _uvre par un logiciel dont la réclisation est à la portée de l'homme de l'Art. La figure 2 représente l'organigramme de la prise de décision " voix >' ou 2825826 11/96. Le procédé est appliqué à des trames de signal numérisé ayant une d urce fixe de 1 0 ms. Une première étape 11 consiste à extraire quatre paramètres pour la trame courante du signal à coder: I'énergie de cette trome dans toute la bande de fréquences, I'énergie de cette trame dans les basses fréquences, un jeu de coefficients spectraux, et le taux de passages à zéro. L'étape suivante 12 consiste à mettre à jour la taille minimale d'une mémoire tampon. L'étape suivante 13 consiste à comparer le numéro de la trame courante 1 0 avec une valeur prédéterminée Ni: - S'il est inférieur à Ni: -- L'étape suivante 14 consiste à initialiser les valeurs des moyennes glissantes des paramètres du signal à coder: Les coefficients spectraux; I'énergie moyenne dans toute la bande; I'énergie moyenne dans les fréquences basses; et le taux moyen de passages à zéro. -- Puis une étape 15 consiste à comparer l'énergie de la trame à une valeur de seuil prédéterminée, pour décider que le signal est de la voix si l'énergie de la trame est supérieure à cette valeur, ou 2û décider que le signal est du bruit si l'énergie de la trame est inférieure à cette valeur. Le traitement de la trame courante atteint alors sa fin 16. - Si le numéro de trame n'est pas inférieur à Ni, une étape suivante 17 consiste à déterminer s'il est égal ou s'il est supérieur à Ni: -- s'il est égal à Ni, une étape suivante 18 consiste à initialiser la valeur de l'énergie moyenne du bruit dans toute la bande et la valeur de l'énergie moyenne du bruit dans les basses fréquences. -- S'il est supérieur à Ni: --- une étape suivante 19 consiste à calculer un jeu de paramètres différences, en soustrayant la valeur courante d'un paramètre de trame à la valeur moyenne glissante de ce 6 2825826 paramètre de trame, cette dernière étant représentative du bruit. Ces paramètres différences sont: la distorsion spectrale, la différence d'énergie dans toute la bande, la différence d'énergie dans les basses fréquences, et la différence des taux de passage à zéro. --- Une étape suivante 20 consiste à comparer l'énergie de la trame à une valeur de seuil prédéterminée: ---- Si elle n'est pas inférieure à cette valeur, une étape 21 consiste à prendre une décision initiale ( > cette décision pour éviter de trop nombreux changements de décision. ---- Si elle est inférieure ou égale à cette valeur, une étape 23 consiste à décider que le signal est du bruit, puis l'étape 22 consiste à -- Après l'étape 22 de lissage, une étape suivante 24 consiste à comparer l'énergie de la trame courante avec un seuil adaptatif égal à la moyenne glissante de l'énergie dans toute la bande, augmentée d'une constante: --Si elle est supérieure à la valeur de seuil, une étape suivante 25 consiste à mettre à jour les valeurs des moyennes glissantes des paramètres représentatifs du bruit, puis le traitement de la trame courante atteint la fin 26. --- Si elle n'est pas supérieure à la valeur de seuil, le traitement de la trame courante atteint la fin 27. La figure 3 représente de manière plus détaillée les opérations de lissage du signal de détection d'activité vocale, selon le procédé de codoge connu par la norme G.729 annexe B. 11/96. Ce lissage comporte quatre étapes, qui suivent la prise de décision initiale 21 (" voix >> ou " bruit >) basée sur une pluralité de critères: 7 2825826 - Une première étape consiste en un test 31 pour prendre la décision . courante est nettement supérieure à l'énergie moyenne du bruit. Da ns le cas contra ire, la décision > 42 est prise d élin itivement. - Une deuxième étape 32 à 35 consiste en un test 32 pour confirmer la décision diminué de la trame précédente à la trame courante. Cette deuxième étape consiste en outre à incrémenter un compteur (opération 33), puis comparer son contenu à la valeur 4 (opération 34), puis à désactiver (opération 35) ce test 32 pour la prochaine trame, si la trame courante est la quatrième trame d'affilée pour laquelle la décision est " voix ". Si la décision " voix " n'est pas confirmée, la décision " bruit " 42 est prise définitivement. - Une troisième étape 36 à 39 consiste en un test 36 pour prendre la décision " bruit " 42 délinitivement si: -- Une décision " bruit >> a été prise pour les dix trames précéJant la trame courante (la décision "voix" ayant été prise pour celle-ci dans les étapes 31-35). -- L'énergie de la trame courante est inférieure à l'énergie de la trame précédente augmentée d'une constante, autrement dit l'énergie n'a pas beaucoup augmenté de la trame précédente à la trame courante. 8 2825826 Cette troisième étape consiste en outre à réinitialiser (opération 37) le test 36 en réinitialisant le comptage des trames (opération 39), si la trame courante est la dixième trame d'affilée pour laquelle la décision est > (test 38). - Une quatrième étape consiste en un test 40 prendre la décision > 42 définitivement si l'énergie de la trame courante est inférieure à la somme de la moyenne glissante de l'énergie des trames précédentes, augmentée d'une constante égale à 614. Autrement dit, la décision > n'est confirmoe délinitivement (opération 41) que si l'énergie de la trame est nettement supérieure à la moyenne glissante de l'énergie des trames précédentes. Dans le cas contraire, la décision " bruit" 42 est prise définitivement. Cette quatrième étape 40 (décision finale) fournit de mauvaises décisions " bruit >' lorsque le signal est fortement bruité. En effet, cette étape 40 décide que le signal est du bruit sans tenir compte des décisions qui précédent, mais en se basant simpiement sur la différence d'énergie entre la trame courante et le bruit de fond, représenté par la valeur de la moyenne glissante de l'énergie des trames précédentes, augmentée de la constante 614. En fait, lorsque ie bruit de fond est élevé, le seuil constitué par cette constante 614 niest plus valable. Le procédé selon l'invention se distingue du procédé connu par la norme G.279.1, Annexe B. 11/96, au niveau des étapes de lissage. La figure 4 représente l'organigramme d'un exemple de mise en _uvre du lissage du signal de détection d'activité vocale, dans le procédé selon l'invention. Ce lissage comporte quatre étapes, qui suivent la prise de décision initiale 21 ( > ou ) basée sur une pluralité de critères. Parmi ces quatre étapes, trois étapes (tests 131, 132, 136) sont analogues à trois étapes décrites ci-dessus (tests 31, 32, 36); la quatrième étape 40 décrite précédemment est supprimée; et une étape dite préliminaire est rojoutée avant la première étape 31 décrite ci-dessus. Un comptage dit d'inertie est rojouté pour obtenir une inertie d'une durée égale à cinq fois la durée d'une trame, par exemple, avant de changer la décision "voix>> en décision > lorsque 9 2825826 I'énergie de la trame est devenue faible. Cette durée est donc égale à 50 ms dans cet exemple. Ce comptage d'inertie n'est actif que lorsque l'énergie moyenne du bruit devient supérieure à à 8000 échelons de l'échelle de quantification délinie par la norme G.279.1, Annexe B. 11/96. - L'étape préliminaire 101 à 104 ra joutée consiste à: -- Si la décision initiale de l'étape 21 est compteur d'inertie (opérations 102) et enfin passer au test 131. -- Si la décision initiale de l'étape 21 est " bruit", déterminer si l'énergie de la trame courante est supérieure à une valeur de seuil fixée, et déterminer si le contenu du compteur d'inertie est inférieur à 6 et supérieur à 1 (opération 103J. Puis: --- Prendre la décision > (en contradiction avec la décision initiale) si ces deux conditions sont remplies, puis incrémenter le compteur d'inertie d'une unité (opération 104) et enfin passer au test 131. --- Ou prendre la décision " bruit " 142 définitivement si l'une de ces conditions n'est pas remplie. - La première étape consiste en un test 131 (analogue au test 31) qui consiste à maintenir la décision " voix " si la décision précédente était " voix " et I'énergie moyenne de la trame courante est supérieure à la moyenne glissante de l'énergie des trames précédentes, augmentée d'une constante fixée. - La deuxième étape 132 à 135 (analogue à l'étape 32 à 35) consiste à prendre la décision " voix " si: -- la décision pour les deux trames précédentes était diminué de la trame précédente à la trame courante. Cette deuxième étape 132 à 135 consiste en outre à désactiver ce test pour la prochaine trame, si la trame courante est la quatrième trame d'affilée pour laquelle la décision est 2825826 comparaison 134 de son contenu avec la valeur 4, et désactivation 135 si la valeur 4 est atteinte). - La troisième étape 136 à 139,143 (peu différente de l'étape 36 à 39) consiste à prendre la décision " bruit >> 142 délinitivement si: -- Une décision > a été prise pour les dix dernières trames; -- et l'énergie de la trame courante est inférieure à l'énergie de la trame précédente augmentée d'une constante, autrement dit si l'énergie n'a pas beaucoup augmenté de la trame précédente à la trame courante. Cette troisième étape consiste en outre à réinitialiser ce test 136 en réinitialisant le comptage des trames, si la trame courante est la dixième trame d'affilée pour laquelle la décision est pour éviter toute interaction entre ce test 136 et le compteur d'inertie. - Il n'y a pas de quatrième étape analogue à l'étape 40. Sur la figure 5 les courbes E1 et E2 représentent respectivement les pourcentages d'erreurs avec le procédé connu et avec le procédé selon l'invention, pour différentes valeurs du rapport signal sur bruit. Sur la figure 6 les courbes L1 et L2 représentent respectivement les pourcentages de pertes de parole avec le procédé connu et avec le procédé selon l'invention, pour différentes valeurs du rapport signal sur bruit. Elles montrent que le comportement de la détection d'activité vocale est largement amélioré en milieu bruyant. Le pourcentage d'erreur global diminue, et, surtout, le pourcentage de parole perdue est considérablement réduit. L'intégrité de la parole est préservée et la conversation reste compréhensible. 1 1 2825826 REVENDICATIONS: 1) Procédé pour détecter l'activité vocale dans un signal, ce signal étant découpé en trames, et ce procédé comportant une étape de lissage d'une décision initiale, - et l'énergie de la trame n est supérieure à l'énergie de la trame n-2. 2) Procédé selon la revendication 1, caractérisé en ce que, si une décision délinitive ' pour les trames n+1 à n+i o i est un nombre entier déTinissant une durée d'inertie. 3) Procédé selon la revendication 1, caractérisé en ce que cette étape de lissage comporte une étape qui consiste, pour une trame n, à: -- Si la décision initiale est "voix", initialiser à 0 un compteur d'inertie ( 102). -- Si la décision initiale est " bruit >>, déterminer si l'énergie de la trame n est supérieure à une valeur de seuil, et déterminer si le contenu du compteur d'inertie est inférieur à un seuil fixé, et supérieurà un (103). Puis: --- Prendre la décision "voix" si ces trois conditions sont remplies, puis incrémenter le compteur d'inertie d'une unité (1 04). --- Ou prendre la décision " bruit " si l'une de ces conditions n'est pas remplie. 1 2 2825826 4) Codeur de signal vocal comportant un dispositif de détection d'activité vocale, ce signal étant découpé en trames, et ce dispositif comportant des moyens de lissage d'une décision initiale, " voix >> ou " bruit >>, prise pour chaque trame; caractérisé en ce que ces moyens de lissage comportent des moyens pour prendre une décision délinitive ; - et la décision définitive pour la trame n-2 était ; - et l'énergie de la trame n-l était supérieure à celle de la trame n-2; - et l'énergie de la trame n est supérieure à l'énergie de la trame n-2. ) Codeur selon la revendication 4, caractérisé en ce que les moyens de lissage comportent des moyens pour empécher toute décision définitive " bruit >> pour les trames n+1 à n+i o est un nombre entier délinissant une durce d'inertie, si une décision définitive > a été prise pour la trame n. 6) Codeur selon la revendication 4, caractérisé en ce que les moyens de lissage comportent des moyens pour: - Si la décision initiale est > pour la trame n, initialiser à O un compteur d'inertie (102). - Si la décision initiale est " bruit ", déterminer si l'énergie de la trame n est supérieure à une valeur de seuil, et déterminer si le contenu du compteur d'inertie est inférieur à un seuil fixé et est supérieur à un (103). Puis: -- Prendre la décision ' si ces trois conditions sont remplies, puis incrémenter le compteur d'inertie d'une unité (l 04j. -- Ou prendre la décision ' si l'une de ces conditions n'est