Brevet FR2684225A1 — publié le 19930528

Procédé de quantification de l'énergie du signal de parole dans un vocodeur à très faible débit La présente invention concerne un procédé de quantification de l'énergie du signal de parole dans un vocodeur à très faible débit. Elle s'applique notamment à la réalisation de vocodeurs à prédic- tion linéaire utilisés pour la transmission de la parole sur voie radio, simi- laires à ceux décrits par exemple dans la Revue Technique THOMSON- CSF, volume 14 n'3, Septembre 1982, pages 715 à 731, suivant les- quels le signal de parole est identifié à la sortie d'un filtre numérique dont l'entrée reçoit soit une forme d'onde périodique correspondant à celles des sons voisés comme le sont les voyelles, soit une forme d'onde aléa- toire correspondant à celles des sons non voisés comme le sont la plu- part des consonnes. Il est connu que la qualité auditive des vocodeurs à prédiction li- néaire dépend en grande partie de la précision avec laquelle leur filtre prédicteur est quantifié, mais aussi de la qualité de restitution du profil de puissance de l'excitation Ceci est particulièrement vrai pour certains sons transitoires tels que beaucoup de consonnes, une mauvaise restitu- tion ne permettant pas de distinguer un "d" d'un "t" ou d'un "k" par exemple. D'une manière générale, le signal de parole est segmenté en trames de durée constantel et une seule valeur de la puissance (ou de l'énergie) de l'excitation est fournie pour chaque trame. Dans les vocodeurs à très faible débit, une manière de baisser le débit consiste à augmenter la durée de la trame, par exemple de 22 5 ms à 30 ms ainsi qu'à regrouper et quantifier en une seule fois les para- mètres relatifs à plusieurs trames Ceci permet de renouveler moins sou- vent les différents paramètres de synthèse Malheureusement, l'intelligi- bilité de la parole restituée diminue car transmettre une seule valeur de l'énergie par trame ne permet plus une restitution convenable de certains transitoires. Pour remédier à ces difficultés, un premier procédé connu consiste à regrouper les trames en paquets en considérant k valeurs d'énergie par paquet, représentable chacune par les coordonnées d'un point référencé dans un espace à k dimensions Une analyse statistique permet de déter- miner les axes principaux du nuage des points observés La quantifica- tion a lieu sur les coordonnées des points portées par les axes princi- paux, chaque coordonnée étant quantifiée sur un nombre de bits dépen- dant de la valeur propre associée à chaque axe considéré Cependant, l'inconvénient de procéder ainsi est qu'il faut prévoir une procédure de correction au niveau du filtre de synthèse pour que les valeurs des éner- gies calculées ne soient pas négatives D'autre part, dans ce traitement, aucune attention particulière n'est portée à la fidélité de restitution des transitoires. Selon un deuxième procédé également connu, et qui procède en partie comme le premier par regroupement de trames en paquets en considérant également k valeurs d'énergie par paquet, les k valeurs d'énergie ne sont plus codées scalairement, mais vectoriellement au moyen d'un dictionnaire contenant M = 2 Q multiplets de k valeurs chacun en considérant que les k valeurs sont quantifiées sur Q bits. Dans ce cas, des difficultés de réalisation apparaissent du fait qu'il faut d'une part, créer et stocker un dictionnaire, et d'autre part, effec- tuer une quantification Comme le dictionnaire est généralement mal structuré et qu'il faut compter au moins 2 bits par valeur d'énergie, le codage du nombre Q occupe pas moins de 220 combinaisons, ce qui représente pour les processeurs de traitement du signal des vocodeurs des charges de calcul très importantes. Le but de l'invention est de pallier les inconvénients précités A cet effet, l'invention a pour objet un procédé de quantification de l'énergie du signal de parole dans un vocodeur à très faible débit caractérisé en ce qu'il consiste à partager ( 1) le signal de parole en paquets d'un nombre déterminé de trames de durée constante en échantillonnant un nombre déterminé N de valeurs d'énergie dans chaque trame, à quantifier ( 2, 3, 4) la première valeur d'énergie mesurée dans chaque première trame d'un paquet suivant un nombre déterminé Q 0 de bits et les variations des k 1 énergies restantes relativement à la première valeur de l'énergie échantillonnée sur un nombre déterminé Qi de bits inférieur à QO, les variations des k 1 énergies étant sélectionnées dans un tableau de "pentes", permettant d'attribuer à chaque échantillon d'énergie k la "pente" d'énergie qui le sépare de l'énergie de l'échantillon k 1 précé- dent. Le procédé selon l'invention a pour principal avantage qu'il permet d'obtenir une quantification de l'énergie de bonne qualité dans chaque trame du signal de parole, tout en respectant les transitions d'énergie de trame à trame sans que dans le vocodeur la charge de calcul et l'espace mémoire nécessaires ne s'en trouvent affectés. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui suit, faite en regard des dessins annexés qui représentent: les figures 1 et 2, deux graphiques pour illustrer le principe de quantification de l'énergie d'un vocodeur mis en oeuvre par l'invention, la figure 3, un organigramme illustrant les différentes étapes du procédé selon l'invention. Le procédé selon l'invention consiste de la manière représentée à la figure 1 à segmenter le signal de parole en trames de durée déterminée constante comprise par exemple entre 22,5 et 30 ms, à regrouper les trames par paquets d'un nombre déterminé N de valeurs d'énergie du signal dans chaque trame pour ne transmettre dans chaque paquet que la première valeur quantifiée de l'énergie mesurée E 1 dans la première trame d'un paquet ainsi que les k 1 valeurs des différences des énergies exis- tantes entre les trames qui suivent, k étant égal à N L En réception, les différences des énergies reçues sont mises bout à bout à la suite de la première valeur d'énergie qui est reçue dans la première trame de chaque paquet pour reconstituer le profil des valeurs quantifiées des énergies à l'émission. Pour ce faire, dans le vocodeur d'émission, une première valeur d'énergie est quantifiée dans chaque première trame ko d'un paquet sur un nombre déterminé Q O débits et les variations des k 1 énergies res- tantes le sont avec un nombre déterminé Q 1 de bits inférieur à Q O Les 2 G valeurs initiales possibles comportent une valeur nulle représentant les silences Les autres valeurs sont réparties suivant une échelle quasi logarithmique la mieux adaptée pour suivre les propriétés de sensibilité de l'oreille, le pas de quantification étant d'autant plus faible que le niveau du signal de parole est plus élevé Typiquement, un pas de 3 d B est adopté pour les faibles niveaux et un pas de 1 d B est adopté pour les forts niveaux Les m = 2 Q, autres valeurs représentent des incréments di d'énergie encore appelée ci-après "valeurs légales d'énergie" dont les valeurs sont prédéterminées pour privilégier les transitions, celles-ci sont choisies par exemple égales respectivement à 3 d B, Od B, + 2 d B et + 7 d B si le nombre Q, est codé avec seulement 2 bits. Les incréments d'énergie permettent, comme le montre la figure 2, de rechercher à partir de chaque valeur B quantifiée d'une trame k les valeurs quantifiées A de l'énergie dans la trame précédente k 1 qui peut y mener par un incrément légal di en commençant par l'incrément nul do. La détermination des nombres Q O et Q 1 est établie suivant les étapes 1 à 5 du procédé représenté par l'organigramme de la figure 3 La première étape référencée 1 sur la figure 3 regroupe les trames par paquets de L trames Les valeurs des énergies El à Ek sont calculées à l'étape 2 Celles-ci sont quantifiées de la façon représentée sur les figures 1 et 2 entre deux valeurs Emax et Emin relativement à une échelle comportant P graduations qui peuvent être confondues par commodité avec les 2 Qo valeurs possibles de l'énergie initiale El mesurée dans la première trame Les valeurs quantifiées correspondantes aux 2 ao valeurs possibles sont désignées sur la figure 2 par e 0, el e p avec e O = Emin et e p 1 = Emax. Le procédé continue à 'étape 3 sur la figure 3 par une phase d'ini- tialisation consistant à calculer un jeu de P distances entre la première valeur d'énergie E, et les P valeurs quantifiées possibles de cette énergie. Les distances Dp correspondantes sont mémorisées sous la forme d'un premier tableau (D) non représenté dans une mémoire du vocodeur. Les calculs ont lieu en élevant au carré les différences entre la première énergie El et les valeurs quantifiées eo, e e p-1 suivant la relation D(p) =(E 1 ep) o p = Q 1 P 11 Les distances calculées sont d'autant plus faibles que la valeur quantifiée ep est plus proche de la valeur El L'étape 4 suivante consiste, de manière similaire à l'algorithme connu de VITERBI à effectuer k-1 ité- rations qui visent à estimer les distances entre tous les profils de quanti- fication potentiels et le profil d'énergie réel, en éliminant les profils de quantification les moins probables Un deuxième tableau (D') non repré- senté, noté "pente", est construit qui pour chacune des itérations 1 à k- 1 associe une pente ou un incrément légal d'énergie dû à chaque valeur P quantifiée de l'itération k Une recherche de la valeur quantifiée de l'ité- ration k-1 qui précède est effectuée en pointant dans le tableau des "pentes" la "partie" ou l'incrément légal d; qui peut y mener directement en commençant par l'incrément nul do La suite des instructions de programmation à mettre en oeuvre est la suivante - POUR p = O P 1, FAIRE /* initialisation pour une incrémentation nulle */ poser Dmin = D' (p do) = D' (p) et poser Indice Prec = O /* test des incrémentations non nulles */ POUR i = 1 m, FAIRE -SI p di > = O ET pdi FIN SI FIN SI FIN FAIRE FAIRE Indice Pente (k,p) = Indice Prec/*mémoriser la valeur quantifiée la plus probable à l'étape précédente'/ FAIRE D(p) = Dmin + (Ek ep)2/*mettre à jour la distance*/ FIN FAIRE Ainsi à l'itération k 1 un tableau de distances D(+) est construit qui à la position p contient la distance cumulée entre le meilleur profil quantifié qui arrive à la position p et le profil original Cela permet de conserver en mémoire un tableau d'indice de pentes dont la valeur d'in- dice de pente (k,p> représente l'indice de la meilleure pente possible pour parvenir à la valeur quantifiée ep à l'étape k Les deux tableaux ainsi obtenus permettent d'arriver à une décision finale Pour ce faire, le pro- cédé recherche dans la tableau D(+) l'indice P min qui correspond à la valeur minimale Il effectue ensuite une remontée dans le tableau de pentes en effectuant k 1 itérations, programmées de la façon suivante - pourk = K 1, K-2,, FAIRE Indice Diff = Indice Pente(k,p min) P min = P min lndice Pente(kp min) FIN FAIRE Les valeurs indice Indice Diff ( 1 K-1) sont les indices des meil- leures valeurs quantifiées possibles pour les pentes Di La valeur finale de P min est alors simplement l'indice de la valeur quantifiée la plus probable. La correspondance entre le profil original des valeurs des énergies à quantifier après le profil final après quantification est représentée à la figure 1 Le fait que l'algorithme élimine automatiquement les valeurs aberrantes résultant d'une analyse erronée apparaît sur la quatrième valeur d'énergie représentée à la figure 1. Bien entendu, le procédé qui vient d'être décrit peut toujours être adapté en fonction de caractéristiques particulières du système d'ana- lyse En particulier si celui-ci a tendance à trouver des valeurs erronées pour l'énergie, il est toujours possible de rendre minimale l'influence des valeurs erronées en remplaçant par exemple les élévations au carré qui servent de mesures de distance, par des valeurs absolues qui permettent de caler le profil des valeurs quantifiées sur les valeurs correctes de l'énergie, sous réserve qu'elles soient plus nombreuses que les valeurs incorrectes. De plus, l'adaptation et la mise au point pour un vocodeur particu- lier ne nécessite que la modifications des valeurs quantifiées de départ (nombre et valeurs), les incréments (nombre et valeurs), ou encore le nombre d'itérations. Enfin, le procédé qui vient d'être décrit ne représente qu'une faible charge de calcul puisque l'initialisation est effectuée dès la première trame, et la kème itération à la trame k + 1; ceci permet de répartir la charge de calcul dans le temps sauf pour la dernière trame o se prend la décision finale sans que cette disposition soit coûteuse en puissance de calcul. REVENDICATIONS 1 Procédé de quantification de l'énergie du signal de parole dans un vocodeur à très faible débit caractérisé en ce qu'il consiste à partager ( 1) le signal de parole en paquets d'un nombre déterminé de trames de durée constante en échantillonnant un nombre déterminé N de valeurs d'énergie dans chaque trame, à quantifier ( 2, 3, 4) la première valeur d'énergie mesurée dans chaque première trame d'un paquet suivant un nombre déterminé Q O de bits et les variations des k 1 énergies res- tantes relativement à la première valeur de l'énergie échantillonnée sur un nombre déterminé Qi de bits inférieur à QO, les variations des k 1 énergies étant sélectionnées dans un tableau de "pentes", permettant d'attribuer à chaque échantillon k d'énergie la "pente" d'énergie qui le sépare de l'énergie de l'échantillon k 1 précédent. 2 Procédé selon la revendication 1 caractérisé en ce qu'il consiste à mémoriser les pentes d'énergie associées à chaque échantillon d'éner- gie dans l'ordre d'apparition des échantillons d'énergie. 3 Procédé selon l'une quelconque des revendications 1 et 2 caractérisé en ce qu'il consiste à quantifier la première valeur d'énergie mesurée dans chaque première trame en suivant une échelle de quantifi- cation quasi logarithmique en donnant une valeur de pas plus importante aux faibles niveaux d'énergie. 4 Procédé selon l'une quelconque des revendications 1 à 3 carac- térisé en ce qu'il consiste à quantifier les variations des k 1 d'énergie sur des niveaux répartis autour d'un niveau d'accroissement nul. Procédé selon la revendication 4 caractérisé en ce que la sélec- tion des parties d'énergie s'effectue en recherchant dans le tableau des pentes l'une des pentes correspondant aux niveaux de quantification en commençant par l'incrément de pente nulle do qui conduit, à partir d'un échantillon d'énergie k d'une trame, à une valeur d'énergie la plus proche de celle de l'énergie de l'échantillon précédent k 1. 6 Procédé selon l'une quelconque des revendications 1 à 5 carac- térisé en ce-que la détermination des k 1 variations d'énergie a lieu en application de l'algorithme de VITERBI.