(19)
(11) EP 0 543 700 A2

(12) DEMANDE DE BREVET EUROPEEN

(43) Date de publication:
26.05.1993  Bulletin  1993/21

(21) Numéro de dépôt: 92403025.7

(22) Date de dépôt:  10.11.1992
(51) Int. Cl.5G10L 9/14
(84) Etats contractants désignés:
BE DE ES GB IT

(30) Priorité: 22.11.1991 FR 9114402

(71) Demandeur: THOMSON-CSF
75008 Paris (FR)

(72) Inventeur:
  • Laurent, Pierre
    F-92402 Courbevoie Cedex (FR)

(74) Mandataire: Lincot, Georges et al
THOMSON-CSF, SCPI, B.P. 329, 50, rue Jean-Pierre Timbaud
F-92402 Courbevoie Cédex
F-92402 Courbevoie Cédex (FR)


(56) Documents cités: : 
   
       


    (54) Procédé de quantification de l'énergie du signal de parole dans un vocodeur à très large débit


    (57) Le procédé 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é Qo 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é Q1 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.
    Applications : Vocodeurs.




    Description


    [0001] 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.

    [0002] Elle s'applique notamment à la réalisation de vocodeurs à prédiction linéaire utilisés pour la transmission de la parole sur voie radio, similaires à ceux décrits par exemple dans la Revue Technique THOMSON-CSF, volume 14 n°3, Septembre 1982, pages 715 à 731, suivant lesquels 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éatoire correspondant à celles des sons non voisés comme le sont la plupart des consonnes.

    [0003] Il est connu que la qualité auditive des vocodeurs à prédiction liné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 restitution ne permettant pas de distinguer un "d" d'un "t" ou d'un "k" par exemple.

    [0004] D'une manière générale, le signal de parole est segmenté en trames de durée constante, et une seule valeur de la puissance (ou de l'énergie) de l'excitation est fournie pour chaque trame.

    [0005] 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 paramètres relatifs à plusieurs trames. Ceci permet de renouveler moins souvent les différents paramètres de synthèse. Malheureusement, l'intelligibilité 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.

    [0006] 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éterminer les axes principaux du nuage des points observés. La quantification a lieu sur les coordonnées des points portées par les axes principaux, chaque coordonnée étant quantifiée sur un nombre de bits dépendant 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 énergies 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.

    [0007] 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 = 2Q multiplets de k valeurs chacun en considérant que les k valeurs sont quantifiées sur Q bits.

    [0008] 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, effectuer 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 2²⁰ combinaisons, ce qui représente pour les processeurs de traitement du signal des vocodeurs des charges de calcul très importantes.

    [0009] 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é Qo 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é Q1 de bits inférieur à Q0, 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.

    [0010] 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.

    [0011] 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.


    [0012] 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₁ dans la première trame d'un paquet ainsi que les k - 1 valeurs des différences des énergies existantes 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.

    [0013] 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é Qo débits et les variations des k - 1 énergies restantes le sont avec un nombre déterminé Q₁ de bits inférieur à Qo. Les 2Qo 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 3dB est adopté pour les faibles niveaux et un pas de 1dB est adopté pour les forts niveaux. Les m = 2Q₁ 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 à - 3dB , 0dB, + 2dB et + 7dB si le nombre Q₁ est codé avec seulement 2 bits.

    [0014] 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.

    [0015] La détermination des nombres Qo et Q₁ 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 E₁ à 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 2Qo valeurs possibles de l'énergie initiale E₁ mesurée dans la première trame. Les valeurs quantifiées correspondantes aux 2Qo valeurs possibles sont désignées sur la figure 2 par eo, e₁ .... ep-1 avec eo = Emin et e p-1 = Emax.

    [0016] Le procédé continue à 'étape 3 sur la figure 3 par une phase d'initialisation 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.

    [0017] 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 E₁ et les valeurs quantifiées eo, e₁ .... e p-1 suivant la relation :



    [0018] Les distances calculées sont d'autant plus faibles que la valeur quantifiée ep est plus proche de la valeur E₁. 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 quantification 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 di à 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 di 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 = 0 ... P - 1, FAIRE
       /* initialisation pour une incrémentation nulle */
       - poser Dmin = D' (p - d₀) = D' (p) et poser IndicePrec =0
       /* test des incrémentations non nulles */
       - POUR i = 1 ... m, FAIRE
          -SI p - di > = 0 ET p - di < = P - 1 ALORS /* valeur légale di*/
             -SI D' (p - di) < Dmin alors /*distance plus faible*/
                -FAIRE Dmin = D' (p - di)
                - FAIRE IndicePrec = i
             FIN SI
          FIN SI
       FIN FAIRE
       - FAIRE IndicePente (k,p) = IndicePrec/*mémoriser la valeur quantifiée la plus probable à l'étape précédente*/
       - FAIRE D(p) = Dmin + (Ek - ep)²/*mettre à jour la distance*/
    FIN FAIRE

    [0019] 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'indice 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 procé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 :
    - pour k = K - 1, K - 2,....., 1 FAIRE
       - IndiceDiff (f) = IndicePente(k,p min)
       - p min = p min - IndicePente(k,p min)
    FIN FAIRE

    [0020] Les valeurs indice Indice Diff (1...K-1) sont les indices des meilleures valeurs quantifiées possibles pour les pentes Di. La valeur finale de P minest alors simplement l'indice de la valeur quantifiée la plus probable.

    [0021] 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.

    [0022] 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'analyse. 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.

    [0023] De plus, l'adaptation et la mise au point pour un vocodeur particulier 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.

    [0024] Enfin, le procédé qui vient d'être décrit ne représente q'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é Qo 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é Q1 de bits inférieur à Q0, 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'énergie 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 quantification 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 caracté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.
     
    5. Procédé selon la revendication 4 caractérisé en ce que la sélection 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 d₀ 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 caractérisé en ce que la détermination des k - 1 variations d'énergie a lieu en application de l'algorithme de VITERBI.
     




    Dessins