Brevet FR2631146A1 — publié le 19891110

I Procédé et-dlspositif de codage de l'énergie du signal vocal dans des vocodeurs A très faibles débits La présente invention concerne un procédé et un dispositif de codage de l'énergie du signal vocal dans des vocodeurs à très faibles débits. Elle s'applique notamment à la réalisation de dispositifs vocodeurs à prédiction linéaire du type de ceux qui sont décrits dans les "Revues Techniques THOMSON-CSF" vol. 14 n 3 Septembre 1982 pages 715 à 731 et vol. 15 n 2 pages 495 à 516 éditées par MASSON, 120 boulevard Saint Germain 75280 Paris. io Dans ces dispositifs le signal vocal est découpé en tranches de temps ou fenêtres de longueurs fixes d'environ millisecondes dans les vocodeurs d'émission, et chaque fenêtre de signal est analysée pour extraire les paramètres nécessaires à la commande des filtres numériques des vocodeurs de réception. Ces paramètres se composent, des coefficients de commande des filtres de réception, de la valeur moyenne efficace VME du signal vocal et d'une indication sur la nature voisée ou non du signal vocal. Pour coder numériquement le signal de parole de façon à assurer des liaisons à très faible débit, typiquement moins de 1000 bits/s, la méthode de codage du paramètre VME consiste à quantifier le paramètre VME sur 32 valeurs (0 à 31) selon une échelle logarithmique normalisée par la norme OTAN "Stanag 4198" relative au codage prédictif linéaire d'ordre 10 dont une description figure dans l'article de M TREMAIN ayant pour titre nThe Government Standard Linear Predictive Coding Algorithm- LPC 10" et qui est publié dans la revue Speech Technology April 1982 pages 40-49. Le signal VME quantifié est ensuite codé sur 11 bits durant trois fenêtres consécutives. La valeur moyenne efficace de la fenêtre du milieu est codée sur 5 bits et celle de chacune des fenêtres extrêmes sont codées par une méthode de codage 26 3 1 1 4 6 différentielle sur 3 bits par rapport à la valeur moyenne efficace de la fenêtre médiane. Une description de ce procédé de codage peut être trouvée dans un article publié par les auteurs Wong D, Juang BH Gray AH dans la revue IEEE Transactions on ASSP vol. 30, 1982 pages 770-780 ayant pour titre "An 800 bits/s Vector Quantization LPC Vocoder". Cependant, le codage sur 11 bits du paramètre VME limite les possibilités de réduction de débit des vocodeurs notamment aux bas débits inférieurs à 800 bits/secondes. Le but de l'invention est de pallier l'inconvénient précité. A cet effet, l'invention a pour objet, un procédé de codage de l'énergie de signaux vocaux dans des vocodeurs à très faibles débits du type consistant A analyser les signaux vocaux dans des fenêtres consécutives, à quantifier sur un nombre déterminé m de niveaux le signal vocal dans chacune des fenêtres, et à mesurer dans chacune des fenêtres la valeur moyenne efficace des échantillons dil signal vocal caractérisé en ce qu'il consiste à construire, dans un espace vectoriel à n dimensions ayant pour première base los vecteurs unitaires (e1 à en) des énergies mesurées sur n fenêtres consécutives, un vecteur énergie résultant correspondant à la somme de n vecteurs énergie mesurés respectivement dans n fenêtres d'analyse du signal vocal, à opérer dans cet espace un changement de base ayant pour premier axe principal un axe orienté de vecteur unitaire ayant pour composantes les vecteurs unitaires de la première base, à projeter dans la nouvelle base obtenue le vecteur énergie résultant, et à coder sur q bits tels que 2q = m la composante du vecteur résultant projeté sur l'axe principal de la nouvelle base et sur un nombre réduit de bits inférieurs à q, les composantes du vecteur énergie projeté sur les n-1 autres axes principaux de l'espace vectoriel défini dans la nouvelle base. L'invention a également pour objet un dispositif pour la mise en oeuvre du procédé précité. D'autres caractéristiques et avantages de l'invention apparaîtront cl-apres à l'aide de la description faite en regard des dessins annexés qui représentent. La figure 1 le principe de codage mis en oeuvre par l'invention dans un espace à deux dimensions. La figure 2 le principe de codage mis en oeuvre par l'invention dans un espace à trois dimensions. La figure 3 un tableau récapitulatif des énergies portées par les axes principaux de l'espace à trois dimensions défini dans la nouvelle base. La figure 4 un dispositif mis en oeuvre par l'invention pour mesurer l'énergie des échantillons du signal à l'intérieur de chaque fenêtre de signal. La figure 5 un dispositif de selon l'invention. La figure 6 un dispositif de décodage du paramètre VME selon l'invention. Les figures 7 et 8 des deuxième et troisième variantes de réalisation de dispositifs de codage du paramètre VME selon l'invention. Le procédé selon l'invention repose sur la constatation que l'énergie contenue dans le signal vocal varie très lentement au cours du temps, de sorte que les énergies E0, E1 et E2 des échantillons quantifiés dans chaque fenêtre de signal peuvent être considérées comme fortement corrélées les unes aux autres. Il est possible de constater en effet, en considérant seulement un nombre très important de groupes de deux fenêtres successives, et en référençant le vecteur énergie correspondant de chaque groupe dans un espace vectoriel orthonormé- à deux dimensions o les énergies E1 et E2 de chaque fenêtre représentent les projections du vecteur énergie E de chaque groupe dans la base représentativ. de cet espace, les origines des vecteurs énergie E de tous les groupes étant confondues avec celle de I 'espace vectoriel à deux dimensions, que les extrémités des vecteurs énergie E se 26 3 1 146 répartissent, de la façon représentée A la figure 1, dans un domaine (D) du plan formé par les deux vecteurs E1 et E2, sensiblement symétriques par rapport à une bissectrice - E'1 de l'angle (E1, E2) formé par les deux vecteurs, en étant très allongé dans la direction de la bissectrice et par contre aplati dans la direction normale à celle-ci. La même constatation peut être faite en analysant l'énergie du signal de parole par groupes de n fenêtres successives. Par exemple, sur un nombre très grand d'observations on peut remarquer, en référençant comme sur la figure 2 les énergies EO E1 et E2 dans un espace à 3 dimensions, que les extrémités des vecteurs résultant chacun de la somme de trois vecteurs E0O E1 et E2 sont toutes contenues dans un domaine ou "nuage" comportant trois axes d'inertie principaux. Sur les axes EO, E1 et E2 du trièdre représenté à la figure 2, le vecteur unitaire du premier axe d'inertie a pour composantes (3-, 3-, 3 ), le vecteur unitaire du deuxième axe d'inertie a pour composantes (-2, 0, 2) et le vecteur unitaire du troisième axe d'inertie a pour. composantes (-6-, 2x6', -6'f). Comme indiqué dans le tableau de la figure 3, Il apparaît qu'en projetant l'énergie de chaque vecteur E de composantes E0, E E2 sur chaque axe d'inertie, que les pourcentages des énergies des vecteurs projetés sont de 90% pour le premier ax-, 8% pour le deuxième et 2% seulement pour le troisième. Il apparaît, qu'une économie en bits de codage peut être réalisée en ne codant pas les acomposantes E0, Et et E2 dans tout l'espace de codage maximal formé par le cube dont les longueurs des côtés représentent les énergies maximales EOmax, Elmax et E2max que- peut prendre le signal de parole selon trois fenêtres consécutives, mais en codant par contre leur résultante E dans la nouvelle base orthonormée formée par les 3 vecteurs unitaires formant les axes principaux d'inertie, ce qui n'occupe qu'un faible volume du cube défini précédemment. 26311 4 6 En notant par P, la matrice des composantes des 3 vecteurs unitaires telle que a b c P = a o 2xc avec a=3,b= -2 et c=-6 a -b c et en notant par (E'0, E'1 et E'2) les composantes dans la nouvelle base du vecteur résultant de l'addition des trois vecteurs EO, E1 et E2, le vecteur de composantes (E'o, E'1 et E'2) vérifie la relation matricielle suivante [E'] = P1x[E] = tp x [EJ. Dans cette relation la matrice [E'] a pour vecteurs colonnes les composantes E'o, E'1 et E2, la matrice [E] a pour vecteurs colonnes la composantes E0, E1 et E2, et P désigne la matrice transposée de P. A titre d'exemple, les transformations précédentes permettent, en limitant les valeurs de E'0 entre 0 et 54, de coder celle-ci sur seulement 4 bits selon une échelle linéaire comprise entre ces deux valeurs et en troncaturant les valeurs E' et E' entre les valeurs -16 et 416, celles-ci, peuvent i22 être codées respectivement sur 3 bits et 2 bits selon également une échelle linéaire comprise également entre ces 2 valeurs. Le résultat est alors l'obtention de 3 valeurs codées (E"0, E"1 et E"2) sur un total de seulement 9 bits au lieu de 11 dans l'art antérieur ce qui est suffisant pour assurer des transmissions à 800 bits/s de bonne qualité. En réception les opérations effectuées sont les opérations inverses du codage. A partir des valeurs codées E"0, E"1 et E"2 le procédé détermine dans une première étape le vecteur de composante Et'0, E'1 et E'2 exprimé dans la base des vecteurs unitaires des axes principaux d'inertie. Puis selon une deuxième étape, il multiplie la matrice P par le vecteur de composantes E' E'1, E2 pour E'O 1>i E'2 pour obtenir un vecteur de composantes E0 E et E2. Enfin, selon une troisième étape applique AUX1 composantes E. E selon une trois1ème étape il ap.pliqte auxcopsne omposantes 0,.1 263 1 1 4 6 et E2 la loi de décodage de la norme de codage prédlctif linéaire d'ordre 10, pour obtenir les trois valeurs efficaces VMEO, VME1 et VME2 des trois fenêtres de signal consécutives traitées-. Un dispositif de codage correspondant est représenté aux figures 4 et 5. Sur la figure 4 le dispositif de mesure de l'énergie des échantillons du signal vocal comprend un circuit accumulateur 1, représenté à l'intérieur d'une ligne fermée en pointillés, ce circuit étant couplé A deux registres 2 et 3 reliés en série. Le circuit accumulateur 1 se compose, de façon connue, d'un registre accumulateur 4 et d'un circuit additionneur 5. Chaque échantillon Si du signal vocal est appliqué sur une première entrée d'opérande du circuit additionneur 5 et est additionné au contenu du registre accumulateur 4 qui est appliqué sur la deuxième entrée d'opérande du circuit additionneur 5. Le cumul des échantillons Si d'une fenêtre a ainsi lieu dans le registre accumulateur 4 pendant toute la durée de la fenêtre. A la fin de chaque fenêtre le contenu de l'accumulateur 4 est transféré dans le registre 2 pour être ensuite chargé à la fenêtre suivante dans le registre 3. En régime établi, les contenus des registres 3, 2 et 4 indiquent en permanence en fin de fenêtre, les énergies respectives E0 E1 et E2 contenues dans trois, fenêtres consécutives d'exploration du signal vocal. Ces valeurs d'énergies E0, E1, E2 sont appliquées au dispositif de codage de la figure 5, aux entrées correspondantes d'un circuit additionneur 6. Le dispositif de codage comprend également trois voles de traitement 7, 8 et 9 représentées à l'intérieur de lignes fermées en pointillées. La vole 7 comprend, un circuit atténuateur 10 de rapport d'atténuation 3, un étage limiteur 11 et un codeur 12. L'ensemble des éléments 10, 11, 12 sont couplés entre eux, dans cet ordre, et en série à la sortie du circuit additionneur 6. lta voie 8 comprend un circuit amplificateur 13 de gain 3, couplé à un circuit atténuateur 15 de rapport d'atténuation 6-{ au travers d'un circuit 2631 146 soustracteur 14. Le circuit soustracteur 14 comporte une première entrée d'opérande, marquée "+" qui est reliée à la sortie du circuit amplificateur 13 et une deuxième entrée d'opérande marquée "-" qui est reliée à la sortie du circuit additionneur 6. La voie 9 comprend un circuit atténuateur 16 de rapport d'atténuation 2'i couplé à la sortie d'un circuit additionneur 17. Un circuit aiguilleur 18 applique l'un ou l'autre des signaux obtenus en sortie des voies 8 et 9 à l'entrée d'un codeur 19 au travers d'un étage limiteur 20. Le décodeur de réception est représenté à la figure 6. Il comprend un ensemble de trois voies de réceptions 21, 22 et 23 représentées à l'intérieur de lignes fermées en pointillées. La première voie 21 comprend, reliés en série, un circuit d'atténuation 24 de rapport d'atténuation 3 et deux circuits soustracteurs 25 et 26. La deuxième vole 22 comprend reliés en série, un circuit atténuation 27 de rapport d'atténuation 2, un circuit additionneur 28 et un circuit soustracteur 29; la troisième vole 23 comprend, reliés en série un circuit d'atténuation 30 de rapport d'atténuation 6, un amplificateur 31 de gain 2 et un circuit additionneur 32. Le circuit soustracteur 25 est relié par une première entrée d'opérande marquée "+" à la sortie du circuit atténuateur 24 et par une deuxième entrée d'opérande marquée n-n à la sortie du circuit atténuateur 27. Le résultat de la soustraction effectuée par le circuit soustracteur 25 est appliqué sur une première entrée d'opérande marquée n+" du circuit soustracteur 26. La deu xième entrée d'opérande marquée nn- du circuit soustracteur 26 est reliée à la sortie du circuit atténuateur 30. La sortie du circuit soustracteur 26 fournit l'énergie E0 de la première fenêtre du signal vocal. Le circuit additionneur 28 possède une première entrée d'opérande reliée à la sortie du circuit atténuateur 27 et une deuxième entrée d'opérande reliée à la sortie du circuit atténuateur 24. Le résultat obtenu à la 26 3 1 1 4 6 sortie du circuit additionneur 28 est appliqué sur une première entrée d'opérande marquée "+" du circuit soustracteur 29. La deuxième entrée d'opérande marquée "-" du circuit soustracteur 29 est reliée A la sortie du circuit atténuateur 30. L'énergie E2 du signal est obtenue à la sortie du circuit soustracteur 29. Enfin le circuit additionneur 32 est relié par une première entrée d'opérande A la sortie de l'amplificateur 31 et par une deuxième entrée d'opérande A la sortie du circuit atténuateur 24. L'énergie E1 du signal est obtenue A la sortie du circuit additionneur 23. Plutôt que de réaliser un codage scalaire du vecteur E'0, E'1, E'2 dans la base des trois vecteurs unitaires des axes principaux d'inertie, une deuxième variante de mise en oeuvre du procédé selon l'invention peut consister à effectuer, comme le montre la figure 7, un codage vectoriel du vecteur (E'0, Et', E' 2), en cherchant le plus proche vecteur du vecteur (E'0, E'1, E' 2) parmi 2N vecteurs dont les extrémités coïncideraient avec les noeuds d'un sous-ensemble borné d'un réseau cubique A face centrée, de façon A obtenir un codage sur N bits. Ce mode de codage est réalisé par les circuits de la figure 7, qui comprennent une mémoire morte programmable 33 adressée par un compteur d'adresse 34, trois circuits soustracteurs 35 A 37, trois circuits d'élévation au carré 38 A 40, un circuit sommateur 41, un circuit comparateur 42, et deux registres 43 et 44. La mémoire morte 33 contient les trois composantes des 2N vecteurs estimés (E0, E1 et E2) et ceux-ci sont adressés par le compteur d'adresse A N bits 24. Chacune des composantes lues dans la mémoire 33 est appliquée respectivement sur une première entrée d'opérande des circuits soustracteurs 35 A 37. Les composantes E0, E1 et E2 de l'énergie du signal vocal de chacune des trois fenêtres sont appliquées respectivement sur les deuxièmes entrées d'opérande des circuits soustracteurs 35 A 37. Les résultats des soustractions effectuées par les circuits soustracteurs 35 A 37 sont appliqués respectivement sur l'entrée des circuits 2631 146 d'élévation au carré 38 à 40, et les résultats des élévations au carré sont appliqués aux entrées du circuit sommateur 41. Les sommes des carrés des différences entre, chaque composante (E0, El E2) d'un vecteur représentant les énergies du signal vocal dans trois fenêtres consécutives et les composantes EO, E1, E2 d'un vecteur estimé adressé par le compteur d'adresses 34, sont appliquées successivement par la sortie du circuit sommateur 41 sur une première entrée de comparaison d'un circuit comparateur 42 pour être comparées au contenu du registre 43 qui est appliqué sur la deuxième entrée de comparaison du comparateur 42. A chaque comparaison le contenu du registre 43 est mis à jour par le résultat de la sommation obtenu à la sortie du circuit sommnateur 41 si ce résultat est inférieur au contenu existant dans le registre 43. De la sorte I5 après chaque progression du compteur d'adresse 34, le registre 43 garde en mémoire la somme des carrés obtenue du circuit sommateur 41 qui est la plus petite parmi toutes les sommes déjà effectuées depuis le début de l'adressage des vecteurs estimés dans la mémoire 33. Parallèlement à chaque mise à jour du contenu du registre 43 le contenu du registre 44 est remplacé par l'adresse du vecteur correspondant qui a été lu dans la mémoire 33. On obtient ainsi directement dans le registre 44 le n0 du vecteur VME codé sur N bits. Une troisième variante de mise en oeuvre du procédé selon l'invention est représenté à la figure 8. Comme cette troisième variante découle du mode de réalisation de la deuxième variante décrite précédemment les élénments homologues de la figure 7 sont représentés sur la figure 8 avec les mêmes références. Cette troisième variante diffère de la précédente par le fait que l'espace de la mémoire 33 est partagé en trois sous espaces mémoires 33a, 33b et 33c. Dans ce cas les N/3 premiers bits du compteur d'adresse 34 adressent les sous espaces 33a, les N/3 bits suivants adressent le deuxième sous-espace et N/3 bits restants adressent le sous-espace 33c Cec permet d'avoir une représentation vectriel des vecteurs Ceci permet d'avoir une représentation vectoriel des vecteurs dans un espace à trois dimensions ayant la forme d'un réseau cubique à face centrée, en affectant à chaque vecteur un groupe et un sous groupe de cet espace. En affectant les groupes du réseau cubique à l'espace mémoire 33 les sous groupes à l'espace mémoire 33b 2N/3 vecteurs énergie estimés peuvent être codés dans l'espace mémoire 33 et 2N/3 vecteurs énergie estimés peuvent être codés dans l'espace mémoire 33b. Les 2N/3 vecteurs restants sont codés dans l'espace mémoire 33.Pour N = 9 on obtient ainsi 8 groupes comportant chacun c 8 sous groupes de 8 vecteurs chacun. De manière similaire au dispositif représenté à la figure 7 l'énergie du signal vocal de composante E0, E1 et E2 est mesurée par les circuits 35 à 43 relativement à l'énergie des vecteurs estimés correspondants formée successivement au travers d'un multiplexeur 45 par les mémoires 33a' 33b et 33c On définit ainsi successivement le groupe, le sous groupe puis le vecteur du sous groupe qui possède l'énergie la plus proche du vecteur de composante EO, E1 et E2. Les numéros de groupe sous groupe et de vecteur à l'intérieur d'un sous groupe sont enregistrés respectivement dans le registre 44 qui a sur la figure 8 la forme d'un banc de registres composés des registres 44, 44b et 44c Des portes ET 48, 49 et 50 permettent le transfert des adresses groupe, sous groupe et vecteur à l'intérieur d'un groupe, chaque fois que le résultat de la comparaison effectuée par le comparateur 42 indique que la somme formée par le sommateur 41 est inférieure au contenu du registre 43. REVENDICATIONS 1. Procédé de codage de l'énergie de signaux vocaux dans des vocodeurs à très faibles débits du type consistant à analyser les signaux vocaux dans des fenêtres consécutives, à quantifier sur un nombre déterminé m de niveaux le signal vocal dans chacune des fenêtres, et à mesurer (1, 2, 3) dans chacune des fenêtres la valeur moyenne efficace des échantillons du signal vocal caractérisé en ce qu'il consiste à construire, dans un espace vectoriel à n dimensions ayant pour première base les vecteurs unitaires (e1 à en) des énergies mesurées sur n fenêtres consécutives, un vecteur énergie résultant correspondant à la somme de n vecteurs énergie mesurés respectivement dans n fenêtres d'analyse du signal vocal, à opérer dans cet espace un changement de base ayant pour premier axe principal un axe orienté de vecteur unitaire ayant pour composantes les vecteurs unitaires de la première base, à projeter (6, 7, 8, 9) dans la nouvelle base obtenue le vecteur énergie résultant, et à coder sur q bits tels que 2q = m la composante du vecteur résultant projeté sur l'axe principal de la nouvelle base et sur un nombre réduit de bits inférieurs à q, les composantes du vecteur énergie projeté sur les n-1 autres axes principaux de l'espace vectoriel défini dans la nouvelle base. 2. Procédé selon la revendication 1, caractérisé en ce que l'espace vectoriel est un espace à -trois dimensions, et en ce que les vecteurs unitaires portés par axes principaux de la nouvelle base ont pour composante dans la base définie par les vecteurs de l'espace à trois dimensions représentant les énergies mesurées sur 3 fenêtres consécutives, respectivement (3-, 3-, 3-) pour le premier axe principal (-2-, 0, 2i) pour le deuxième axe principal, et (-6 +,2x6 -6-) pour le troisième axe principal. - 3. Procédé selon la revendication 2, caractérisé en ce que le codage du vecteur énergie résultant projeté sur les premier, deuxième et troisième axes principaux ont des longueurs respectives de 4, 3 et 2 bits. 4. Dispositif pour la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce qu'il comprend: - des moyens (1, 2, 3, 4, 5) pour mesurer la valeur moyenne efficace de l'énergie moyenne du signal vocal dans O10 chaque fenêtre sur un nombre déterminé n de fenêtres successives - des moyens de calcul matriciel (6, 7, 8, 9 33... 44) pour projeter dans la nouvelle base le vecteur énergie résultant de la somme des vecteurs énergie mesurés dans chaque fenêtre du signal vocal - et des moyens de codage (12, 19) de chaque composante du vecteur dans la nouvelle base. 5. Dispositif selon la revendication 4, caractérisé en ce que pour n = 3 les moyens de calcul matriciel (6, 7, 8, 9 33...44) effectuent le produit matriciel [E'] = P -[E] o [E] est le vecteur colonne formés par les composantes E0, E1, E2 des énergies mesurées sur trois fenêtres successives et a a a p-1= b o b avec a=3-,b=-2'i et c=-6-i c 2xc c 6. Dispositif selon la revendication 4, caractérisé en ce qu'il comprend des moyens (35,...44) pour rechercher dans un ensemble de 2N vecteurs, préenregistrés dans une mémoire (33) et dont les extrémités coïncident avec les noeuds d'un sous ensemble borné d'un réseau cubique à face centrée, le vecteur qui a les composantes dans la nouvelle base les plus proches *des composantes E0, E1 et E2 des énergies mesurées sur trois fenêtres successives du signal vocal, de manière à représenter le code du vecteur résultant sur N bits. 7. Dispositif selon la revendication 6, caractérisé en ce que la mémoire (33) est organisée en N/3 groupes, N/3 sous groupes de N/3 vecteurs chacun. 8. Dispositif selon l'une quelconque des revendications 6 et 7, caractérisé en ce qu'il comprend - un compteur d'adresse pour adresser les vecteurs préenregistrés dans la mémoire (33) - des circuits soustracteurs (35, 36, 37) pour comparer les N valeurs moyennes efficaces du signal vocales fournies par N fenêtres, aux N composantes respectives des vecteurs lus dans la mémoire (33) - et un circuit de décision (42, 43, 44) pour repérer le vecteur lu dans la mémoire (33) qui possède les composantes lues les plus proches des N valeurs moyennes efficaces mesurées du signal vocal.