(19)
(11) EP 0 428 445 A1

(12) DEMANDE DE BREVET EUROPEEN

(43) Date de publication:
22.05.1991  Bulletin  1991/21

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

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

(30) Priorité: 14.11.1989 FR 8914897

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

(72) Inventeur:
  • Laurent, Pierre-André
    F-92045 Paris la Défense (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é et dispositif de codage de filtres prédicteurs de vocodeurs très bas débit


    (57) Le procédé consiste à découper le signal vocal en trames binaires de durée déterminée pour les regrouper (12, ... 123) en paquets de trames successives en associant à chaque trame d'un paquet un filtre prédicteur et à quantifier (18, ... 183) les coefficients de chaque filtre prédicteur en tenant compte (20,21) de la configuration stable ou non stable du signal vocal.
    Application : codage de la parole.




    Description


    [0001] La présente invention concerne un procédé et un dispositif de codage de filtres prédicteurs pour vocodeurs très bas débit.

    [0002] Parmi les méthodes de numération de la parole à bas débit la méthode la plus connue est celle du codage prédictif linéaire LPC10, où LPC10 est l'abréviation dans le langage anglo-saxon de "Linear predictive coding, order 10" Suivant cette méthode la synthèse de la parole a lieu en excitant au moyen d'un signal périodique ou par une source de bruit un filtre dont la fonction est de donner au spectre en fréquence du signal une forme d'onde proche de celle du signal de parole d'origine.

    [0003] La majeure partie du débit, qui est de 2400 bits par seconde, est consacrée à la transmission des coefficients du filtre. Pour cela le train binaire est découpé en trames de 22,5 millisecondes comportant 54 bits dont 41 sont utilisés pour adapter la fonction de transfert du filtre.

    [0004] Un procédé connu de réduction de débit consiste à comprimer les 41 bits associés à un filtre en 10 à 12 bits qui représentent le numéro d'un filtre prédéfini, appartenant à un dictionnaire de 210 à 212 filtres différents, ce filtre étant celui qui est le plus proche du filtre d'origine. Ce procédé présente cependant un premier inconvénient majeur qui est de nécessiter la construction d'un dictionnaire de filtres dont le contenu dépend étroitement du jeu des filtres utinisés pour le constituer par des techniques classiques de données ("clustering") et de la sorte ce procédé n'est pas parfaitement bien adapté aux conditions de prise de son réelles. Un deuxième inconvénient de ce procédé est qu'il exige pour sa mise en oeuvre une taille de mémoire très importante pour stocker le dictionnaire (210 à 212 paquets de coefficients). Corrélativement les temps de calcul deviennent importants du fait qu'il faut rechercher dans le dictionnaire le filtre le plus proche du filtre original. Enfin ce procédé ne permet pas de reproduire de façon satisfaisante des sons stables. Ceci est dû au fait que même pour un son stationnaire l'analyse LPC ne sélectionne jamais en pratique deux fois de suite le même filtre original mais choisit successivement dans le dictionnaire des filtres proches mais distincts.

    [0005] De même qu'en télévision où la reconstruction d'une image colorée dépend essentiellement de la qualité du signal de luminance et non pas de celle du signal de chrominance qui peut de ce fait être transmis avec une définition moindre, il apparaît aussi suffisant en synthèse de parole de ne bien reproduire que le contour de l'énergie du signal vocal, sa coloration (voisement, forme de spectre) revêtant une importance moindre pour sa reconstruction. De ce fait, dans les procédés connus de synthèse de la parole le processus de recherche de spectres basé sur l'évolution de la distance minimale qui sépare les spectres de la parole d'origine (du locuteur) et de la parole synthétique ne sont pas pleinement justifiés.

    [0006] Par exemple, différents exemplaires du son "A" prononcés par différents locuteurs, ou enregistrès dans des conditions différentes peuvent avoir une distance spectrale élevée mais resteront toujours des "A" pouvant être reconnus en tant que tels, et s'il y a ambiguïté, traduite par une possibilité de confusion avec un son proche, l'auditeur pourra toujours rectifier de lui-même grâce au contexte. En fait, l'expérience montre qu'en ne consacrant pas plus d'une trentaine de bits aux coefficients du filtre prédicteur au lieu de 41, la qualité de restitution reste satisfaisante même si un auditeur entraîné peut perce voir une différence légère entre les sons synthétisés avec des coefficients prédicteurs définis sur 30 ou 41 bits. D'autre part, comme la transmission a lieu à distance et que le destinataire n'a pas de ce fait la possibilité de faire cette différence, il apparaît suffisant que l'auditeur puisse reconnaître correctement le son synthétisé.

    [0007] Egalement il apparaît important que dans les parties stables du signal (voyelles) le filtre prédicteur reste stable et soit aussi proche que possible du filtre prédicteur d'origine. Par contre dans les parties instables (transition, son non voisé) le prédicteur transmis n'a pas besoin d'être une copie fidèle du prédicteur d'origine.

    [0008] Le but de l'invention est de pallier les inconvénients précités.

    [0009] A cet effet, l'invention a pour objet un procédé de codage de filtres prédicteurs de vocodeurs très bas débit du type dans lequel le signal vocal est découpé en trames binaires de durée déterminée caractérisé en ce qu'il consiste à regrouper les trames par paquets de trames successives, à associer respectivement à chaque trame contenue dans un paquet un filtre prédicteur, et à quantifier les coefficients de chaque filtre prédicteur en tenant compte de la configuration stable ou non stable du signal vocal.

    [0010] D'autres caractéristiques et avantages de l'invention apparaîtront ci-après à la lecture de la description qui suit faite en regard des dessins annexés qui représentent :

    - la figure 1 un schéma de principe d'un synthétiseur de parole de l'art connu ;

    - la figure 2 une mise sous forme de tableaux des quatre codages possibles des filtres prédicteurs du vocodeur selon l'invention ;

    - la figure 3 un organigramme pour illustrer le calcul de l'erreur de prédiction des filtres prédicteurs mis en oeuvre par l'invention ;

    - la figure 4 un graphe de transformation des coefficients de réflexion des filtres prédicteurs ;

    - la figure 5 la loi de quantification des coefficients de réflexion des filtres transformés par le graphe de la figure 3 ;

    - la figure 6 un dispositif pour la mise en oeuvre du procédé selon l'invention.



    [0011] Le synthétiseur de parole représenté à la figure 1 comporte de façon connue un filtre prédicteur 1 couplé par son entrée E1 à un générateur de signal périodique 2 et à un générateur de bruit 3 au travers d'un commutateur 4 et d'une amplificateur à gain variable 5 reliés en série. Le commutateur 4 couple l'entrée du filtre prédicteur 1 à la sortie du générateur de signal périodique 2 ou à la sortie du générateur de bruit 3 suivant la nature voisée ou non du son à restituer. L'amplitude du son est commandée par l'amplificateur 5. la filtre 1 restitue sur sa sortie S un signal de parole en fonction de coefficients de prédiction appliqués sur son entrée E2. A la différence de ce qui est représenté à la figure 1 les synthétiseurs de parole auxquels s'appliquent le procédé et le dispositif de codage de l'invention doivent comporter trois filtres prédicteurs 1 adaptés à chaque groupe de trois trames de 22,5 ms successives du signal de parole suivant l'état stable ou non stable du son à synthétiser. Cette organisation permet, par exemple, de réduire le débit de 2400 bits par seconde à 800 bits par seconde, en regroupant les trames par paquets de 3 x 22,5 = 67,5 millisecondes de 54 bits dans lesquels 30 à 35 bits sont utilisés pour décrire par exemple les 10 coefficients prédicteurs des trois filtres successifs nécessaires à la mise en oeuvre de la méthode de codage LPC10 décrite précédemment, et deux bits parmi ceux-ci sont utilisés pour définir la configuration à donner aux trois filtres à générer suivant la nature stable ou non du signal vocal à générer. Dans le tableau de la figure 2 où sont consignées les quatre configurations possibles des trois filtres, à l'état 00 des deux bits de configuration correspond une première configuration où les trois filtres prédicteurs sont identiques pour les trois trames du signal vocal. Pour la deuxième configuration les bits de configuration ont la valeur 01 et seuls les deux premiers filtres des trames 1 et 2 sont identiques. Dans la troisième configuration, correspondant aux bits de configuration 10 seuls les deux derniers filtres des trames 2 et 3 sont identiques. Enfin dans la quatrième configura tion, correspondant aux bits de configuration 11, les trois filtres des trames 1 et 3 sont différents. Naturellement ce mode de configuration n'est pas unique et il est tout aussi possible en restant dans le cadre de l'invention à définir le nombre de trames dans un paquet par un nombre quelconque. Cependant pour des commodités de réalisation ce nombre pourra être compris entre 2 et 4 inclusivement. Dans ces cas naturellement le nombre de configurations possibles pourra être étendu à 8 ou 16 au maximum. La définition des filtres est établie suivant les étapes 1 à 6 du procédé représenté par l'organigramme de la figure 2. Selon une première étape du procédé portant la référence 5 sur l'organigramme les coefficients d'autocorrélation R;,k du signal sont calculés suivant une relation de la forme :

    où Sin est un échantillon n du signal dans la trame i et Wn désigne la fenêtre de pondération. A la deuxième étape référencée 6 le calcul des coefficients de réflexion du filtre prédicteur en treillis correspondant aux coefficients Ri(k) précédent est effectué en application d'un algorithme standard par exemple, de l'algorithme connu de LEROUX-GUEGUEN ou SCHUR. A cette étape, les coefficients Rik sont transformés en coefficients Kij où j est un entier positif prenant les valeurs successives de 1 à 10. A la troisième étape portant la référence 7 les coefficients k dont les valeurs sont comprises par définition entre -1 et + 1 sont transformés en des coefficients modifiés qui évoluent entre "-l'infini" et "+l'infini" et qui tiennent compte du fait que la quantification des coefficients k doit être fidèle lorsqu'ils ont une valeur absolue proche de 1 et une valeur qui peut être plus grossière lorsqu'ils sont voisins de 0 par exemple. Chaque coefficient Kij est par exemple transformé suivant une relation de la forme

    dont le graphe est représenté à la figure 3 ou encore suivant les relations (Lij = Kij| 1- |Kij|) ; (Lij = arc cos Kij) ; (Lij = arc sin Kij) ou encore en application de la méthode de calcul des coefficients LSP décrite dans l'article de George S. Kang an Lawrence, J. Fransen du Naval Research Laboratory Washington DC 20375 1985 ayant pour titre "Application of line spectrum pairs to low bit rate speech encoder". A la quatrième étape représentée en 8 les coefficients Lij sont quantifiés suivant nj bits chacun de façon non uniforme en tenant compte de la répartition des coefficients pour donner une valeur Lij suivant une loi de répartition représentée par l'histogramme des Lij de la figure 4. A l'étape 5 les valeurs de Lisent à leur tour utilisées pour calculer des coefficients Kijsuivant la relation



    [0012] Ces valeurs Kijreprésentent les valeurs quantifiées des coefficients de prédiction à partir desquels les coefficients d'un prédicteur Ai(z)peuvent être déduits par des relations de récurrence définies comme suit :



    pour p = 1, 2, ... 10.



    [0013] Enfin A la dernière étape représentée en 10 le calcul de l'énergie de l'erreur de prédiction est effectué en application de la relation suivante

    ou encore

    avec





    [0014] Pour compléter l'algorithme il suffit alors de tester les quatre différentes configurations décrites précédemment en intercalant entre la première et la deuxième étape du procédé une étape supplémentaire tenant compte des configurations possibles pour ne retenir finalement que la configuration pour laquelle l'erreur de prédiction totale obtenue est minimale (sommée sur les trois trames).

    [0015] Dans la première configuration le même filtre est utilisé pour les trois trames. On utilise alors pour le déroulement des étapes 2 à 6 un quatrième filtre fictif unique qui est calculé à partir des coefficients R4j donnés par la relation

    avec j variant de 0 à 10.

    [0016] L'erreur de prédiction totale est alors égale à E2 et l'algorithme du procédé revient en fait à considérer les trois trames comme une seule trame de durée trois fois supérieure.

    [0017] Les coefficients L1 à L10 peuvent alors être quantifiés avec par exemple 5,5,4,4,4,3,2,2,2,2 bits respectivement, soit 33 bits au total.

    [0018] Selon la deuxième configuration, dans laquelle un même filtre est utilisé pour les trames 1 et 2, l'algorithme est exécuté avec des valeurs des coefficients R5j et R3j d'autocorrélation définis comme suit : R5,j = R1,j + R2,j où j prend successivement les valeurs de 1 à 10 pour les deux premières trames et R3,j (j variant de 1 à 10) pour la dernière trame.

    [0019] L'erreur de prédiction est égale à Es2 + E32 ce qui revient à considérer que les trames 1 et 2 sont regroupées en une seule trame de durée double, la trame 3 restant inchangée. Il est alors possible de quantifier les coefficients Li à L10 sur les trames 1 et 2 avec respectivement 5,4,4,3,3,2,2,2,0,0 bits (25 bits au total, les coefficients Lg et L10 n'étant pas transmis), et leur variation pour obtenir ceux de la troisième trame en utilisant 3,2,2,1,0,0,0,0,0,0 bits respectivement (8 bits au total), soit 33 bits pour les trois trames.

    [0020] Le fait de ne pas transmettre les coefficients Ls et Lio n'est pas gênant puisque dans ce cas la configuration correspond à des prédicteurs qui évoluent et dont les coefficients ont une importance qui va décroissante en fonction de leur rang.

    [0021] Dans la troisième configuration ,où les mêmes filtres sont utilisés pour les trames 2 et 3 le même procédé que dans la deuxième configuration est utilisé en regroupant les coefficients Rij des trames 2 et 4 tel que R6j = R2j + R3j. Le même procédé de quantification est utilisé mais en codant le prédicteur des trames 2 et 3 et le différentiel pour la trame 1.

    [0022] Enfin pour la dernière configuration où tous les filtres sont différents il faut considérer que les trois trames sont découplées et que l'erreur totale est égale à E,2 + E22 + E32. Dans ce cas les coefficients L1 à L10 de la trame 2 seront quantifiés avec respectivement 4,4,3,3,3,2,2,0,0 bits soit 21 bits, ainsi que les différences pour la première trame avec 2,2,1,1,0,0,0,0,0,0 bits soit 6 bits ainsi que les différences pour la trame 3 (6 bits supplémentaires). Cette dernière configuration correspond à un codage de 21 + 6 + 6 = 33 bits.

    [0023] Le dispositif pour la mise en oeuvre du procédé qui est représenté à la figure 6 comporte un dispositif 1 de calcul des 10 coefficients d'autocorrélation pour chaque trame couplée à des éléments de retard formés par trois mémoires de trames 121 à 123 pour mémoriser les coefficients Rij calculés à la première étape du procédé. Il comprend également un dispositif de calcul 13 des coefficients Kij et Lij suivant la deuxième étape du procédé. Un bus de données 14 véhicule les valeurs des ccefficients Lij (i = 1 à 3, j = 1 à 10) et les valeurs des coefficients Rio représentant les énergies où i = 1 à 3. Le bus de données 14 relie les éléments de retard 121 à 123 et le dispositif de calcul 13 a quatre chaînes de calcul référencés de 151 à 154. Les chaînes de calcul 151 à 153 comprennent respectivement un dispositif sommateur, respectivement 16, à 163 qui est relié aux éléments de retard 12, à 123 pour calculer les coefficients R4j, R5j et R6j suivant les 4 configurations décrites précédemment. Les sorties des dispositifs de sommation 161 à 163 sont reliées à des dispositifs de calcul respectivement 17, à 173 des coefficients L4j, K4j ; KSj, L5j et K6j et L6j. Les coefficients L4j L5j L6j sont transmis respectivement à des dispositifs de quantification 18, à 183 pour calculer les coefficients Lijconformément à la quatrième étape du procédé. Ces coefficients sont appliqués à des dispositifs de calcul d'erreur totale référencés respectivement de 19, à 193 pour fournir respectivement des erreurs de prédiction totale E42, Es2 + E22 et enfin E,2 + E62 pour chacune des configurations 1 à 3 décrites précédemment. La chaîne de calcul 154 comprend relié au bus de données 14 un dispositif de quantification séparée 184 des coefficients Lij. Les coefficients Lijobtenus à la sortie du dispositif de quantification 184 sont appliqués à un dispositif de calcul d'erreur totale 194 pour calculer l'erreur totale suivant la relation E,2 + E22 + E32 définie précédemment. Chacune des sorties des dispositifs de calcul d'erreur totale 19, à 194 des chaînes de calcul 151 à 154 sont appliquées aux entrées respectives d'un dispositif de recherche totale de minimum 20. D'autre part, chacune des sorties du dispositif de quantification 181 à 184, fournissant les coefficients Lij, sont appliquées à un dispositif d'aiguillage 21 commandé par la sortie du dispositif de recherche d'erreur totale minimum 20 pour sélectionner des coefficients Lijà transmettre qui corresponde à l'erreur totale minimum calculée par le dispositif 20. Dans cet exemple la sortie du dispositif comporte 35 bits, 33 bits représentant les valeurs des coefficients Lijobtenues à la sortie du dispositif d'aiguillage 21 et 2 bits représentant l'une des quatre configurations possibles indiquées par le dispositif de recherche d'erreur totale minimum 20.

    [0024] Il va de soi que l'invention ne se limite pas aux exemples qui viennent d'être décrits et qu'elle peut recevoir d'autres variantes de réalisation dépendant notamment, des coefficients qui sont appliqués aux filtres qui peuvent être différents des coefficients Lij définis précédemment et du nombre de ces coefficients qui peut être différent de 10. Il est clair également que l'invention peut encore s'appliquer pour des définitions de paquets de trames comprenant des nombres différents de trois trames ou des configurations de filtrage différentes de quatre et que ces variantes doivent conduire naturellement à des nombres totaux de bits de quantification différents de (33+2) bits avec une répartition par configuration différente.


    Revendications

    1. Procédé de codage de filtres prédicteurs de vocodeurs très bas débit du type dans lequel le signal vocal est découpé en trames binaires de durée déterminée caractérisé en ce qu'il consiste à regrouper (12, ... 123) les trames par paquets de trames successives, à associer respectivement à chaque trame contenue dans un paquet un filtre prédicteur (1)) et à quantifier les ccefficients de chaque filtre prédicteur (5 ... 9) en tenant compte de la configuration stable (19) ou non stable du signal vocal.
     
    2. Procédé selon la revendication 1 caractérisé en ce que le nombre de trames dans un paquet est compris entre 2 et 4 inclusivement (121 ... 123).
     
    3. Procédé selon les revendications 1 et 2 caractérisé en ce que le nombre de configurations est aux nombres de 4, 8 ou 16.
     
    4. Procédé selon la revendication 3 caractérisé en ce qu'il consiste à limiter le choix des configurations à quatre,
    une première configuration où les filtres prédicteurs sont identiques une deuxième et une troisième configuration où seulement deux filtres prédicteurs sont identiques et une quatrième configuration où les trois filtres prédicteurs sont différents.
     
    5. Procédé selon la revendication 4 caractérisé en ce qu'il consiste à calculer (17, 18) pour chaque configuration les coefficients de prédiction et l'énergie (19) de l'erreur de prédiction pour ne retenir (20) que les coefficients de prédiction dont l'erreur de prédiction est minimale.
     
    6. Procédé selon la revendication 5 caractérisé en ce qu'il consiste pour le calcul des coefficients de prédiction à calculer dans chaque trame les coefficients d'autocorrélation Ri,k du signal vocal échantillonné, et à appliquer l'algorithme de Leroux-Gueguen ou de Schur pour déterminer les coefficients de réflexion de chaque filtre prédicteur.
     
    7. Procédé selon l'une quelconque des revendications 1 à 6 caractérisé en ce que les coefficients de réflexion Li,j des filtres sont au nombre de 10 et sont codés sur une longueur totale de 33 bits quelle que soit la configuration.
     
    8. Procédé selon la revendication 7 caractérisé en ce que les coefficients de réflexion Li à L, des filtres ont respectivement pour longueur :

    (5,5,4,4,4,3,2,2,2,2) bits suivant la première configuration (5,4,4,3,3,2,2,2,0,0) bits et (3,2,2,1,0,0,0,0,0,0) bits suivant les deuxième et troisième configurations (4,4,3,3,3,2,2,0,0) bits pour le codage de la trame intermédiaire (trame 2) suivant la quatrième configuration et (2,2,1,1,0,0,0,0,0,0) bits pour les deux autres trames (trame 1) (trame 3) suivant la quatrième configuration.


     
    9. Procédé selon la revendication 6 caractérisé en ce que les coefficients de réflexion des filtres sont déterminés par la relation
    L,j = Ki,j/(1-Kij2)-2
     
    10. Dispositif pour la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 9.
     




    Dessins













    Rapport de recherche