FR 2739964 A1 19970418 FR 9511937 A 19951011 "DISPOSITIF DE PREDICTION DE PERIODE DE VOISEMENT POUR CODEUR DE PAROLE" Description La présente invention concerne une réduction de la complexité d'un codeur de parole. et notamment du codeur de parole normalisé 0723. L'amélioration se situe dans la recherche du vecteur de gain du multi-prédicteur d'ordre 5, ainsi que dans la détermination de la valeur de la période de voisement (en anglais pitch) optimale en boucle fermée. Cette invention trouve une application essentielle dans le domaine de la visiophonie. La bonne qualité de la norme G723 est en partie issue de la finesse d'analyse de la corrélation à long terme en boucle fermée (recherche optimale dans le dictionnaire adaptatif). Cette corrélation à long terme, forte dans le cas de signaux voisés, est utilisée par un filtre de prédiction d'ordre 5. Cet ordre élevé permet l'accès à une bonne qualité de codage. mais au prix d'une forte complexité. Le prédicteur à long terme utilisé est de la forme suivante La recherche de corrélation doit donc donner un vecteur de 5 gains optimaux ainsi qu'une valeur optimale de la période du signal de parole en boucle fermée. Pour être transmises. les informations de gain sont quantifiées par quantification vectorielle. alors que l'information de période de voisement est transmise sans quantification (uniquement par codage différentiel entre deux soustrames consécutives). La recherche du vecteur de gain ainsi que de la période de voisement en boucle fermée (CLP) se fait depuis la donnée de la période de voisement en boucle ouverte (OLP) et par minimisation du critère quadratique pondéré suivant, selon l'expression (2) suivante avec les définitions suivantes N = 60, Taille de la sous-trame t = [t(O) ... t(N-1)] t, la cible K = 2, ordre 5 (2K+1) ssi, 5 gains pour i= -K,...,+K 6 = -1, O. 1. pour les sous-trames paires 6 = -1, O, 1, 2, pour les sous-trames impaires OLP = période de voisement en boucle ouverte H = Matrice de réponse impulsionnelle du filtre de synthèse ej = Vecteur du dictionnaire adaptatif tel que #OLP+j+# = [DICO(Olp+j+#) ,...,Dico (Olp+j+#+N-1)]t La minimisation du critère (2) donne le vecteur de gain et et le pas 6 permettant l'obtention de la période de voisement en boucle fermée : CLP = OLP + 6. Donc, pour chaque valeur du pas 6 de raffinement de cette période en boucle fermée, le critère (2) doit être minimisé.L'expression (2) peut se réécrire avec Ri# = t t HeOLP+i+# et Ei#j = etOLP+j+#HtHeOLP+i+# qui sont des termes de corrélation entre vecteurs filtrés du dictionnaire adaptatif et la cible, ainsi que des termes d'énergie et de corrélation entre les vecteurs filtrés du dictionnaire adaptatif. De manière schématique et théorique pour chaque valeur du pas de raffinement 6. les opérations suivantes doivent être réalisées .Calcul des termes E,6j = et a Calcul des termes ## et ss6 par résolution du système Les différents termes précédents étant calculés, le choix du pas optimal ainsi que du vecteur de gain optimal est fait de la manière suivante : on choisit le vecteur de gain ss6 et le pas 6 qui sont donnés par le terme Eb minimum. Le problème majeur qui se manifeste alors est la complexité de calcul. En effet la norme G723 ne met pas en oeuvre directement cette méthode, car elle nécessite la résolution, pour chaque valeur de o, du système linéaire suivant A ce niveau est introduit une table de quantification dont le critère de distorsion est aussi donné par l'expression (3). Cette table de quantification de 170 vecteurs est parcourue de façon à minimiser la distorsion suivante avec 6 = -1, 0. 1 (ou bien 6 = -1, 0, 1, 2) et qv = O, .., 169 (il s'agit là d'un indice de parcours de la table de quantification commune à chaque valeur du pas de raffinement 6).La table des gains quantifiés permet de ne pas résoudre le système (4), mais la recherche de l'indice qv minimisant l'expression (5), pour une valeur de 6 fixée, est faite de manière exhaustive et séquentielle. Le fait de ne pas résoudre le système (4) réduit la complexité, mais la solution obtenue est sous-optimale. Les termes ssiw sont donc calculés par apprentissage (l'algorithme LBG, décrit dans le document "An Algorithm for Vector Quantizer Design", Y. Linde, A. Buzo, et R.M. Gray, IEEE-Trans-COM, vol. COM-28, N"1, janvier 1980, pp.84-95, est le plus probable), et les vecteurs de la table de quantification des gains possèdent 20 termes répartis comme indiqué sur la figure 1, qui montre un exemple de vecteur de quantification des gains de prédiction à long terme. Là encore, de manière schématique, pour chaque valeur du pas de raffinement 6, les opérations suivantes doivent être réalisées Calcul des termes a = et Ro .Calcul du terme d8 minimum (donné par l'indice qv et par le vecteur aqv correspondant) par parcours de la table de 170 vecteurs de 20 éléments. Les différents termes précédents étant calculés, le choix du pas optimal ainsi que du vecteur de gain optimal est cette fois effectué de la manière suivante : on choisit le vecteur de gain ssqv et le pas 6 qui sont donnés par le d8 minimum. La figure 2 illustre plus en détail le multi-prédicteur de période de voisement en boucle fermée de la norme G723 et les quatres principaux sous-ensembles intervenant dans le procédé qui est mis en oeuvre. En faisant l'hypothèse qu'une valeur de la période de voisement en boucle ouverte OLP est disponible, le but de ce procédé utilisé dans la norme G723 est d'obtenir un raffinement de l'OLP par détermination d'une valeur bornée 6 = -1, 0, 1 (ou bien 6 = -1, 0, 1, 2). La période de voisement en boucle fermée CLP sera alors donnée par la relation suivante : CLP = OLP + 6. De plus, la recherche de la valeur 6 optimale met en cause la recherche d'un vecteur de 5 gains correspondant au multi-prédicteur d'ordre 5 à long terme. Les gains seront notés pl. Ce multiprédicteur de la figure 2 comprend les éléments suivants. Un dictionnaire adaptatif, appelé circuit de stockage des vecteur candidats 40, contient un ensemble de vecteurs (dont la période de voisement en boucle ouverte OLP) constituant les candidats possibles pour l'excitation. Ce circuit de stockage 40 est suivi de trois voies 10, 20, 30 en parallèle. Chacune de ces voies comprend à son tour, en série, un filtre perceptuel (11, 21, 31), destiné à refaire la synthèse perceptuelle du signal (c'est-à-dire à en déterminer l'enveloppe), un circuit de calcul des termes de corrélation (12, 22, 32). une table des gains des vecteurs (13, 23, 33), qui est en fait une mémoire contenant la table de quantification, et un circuit de multiplication (14, 24, 34) recevant chacun la sortie de ladite table et celle du filtre. Le circuit 50 est un circuit de sélection du meilleur représentant possible de la cible. La recherche de 6 et des ss6 se fait à partir du dictionnaire adaptatif engendré par les excitations synthétisées durant les trames précédentes. Pour chaque valeur de o, un ensemble de 5 vecteurs du dictionnaire (circuit 40) est sélectionné, puis ces vecteurs sont filtrés par les filtres (réponse impulsionnelle du filtre de synthèse), afin de chercher de possibles corrélations entre les vecteurs du dictionnaire (termes E.. et R6) et la cible (excitation courante). Ces étapes sont indiquées par les références 1 de la figure 2 (filtres + circuits de calcul des termes de corrélation), car ces calculs de corrélation sont faits pour chaque valeur de o.A partir de ces corrélations, on peut de manière précise quantifier (par la valeur des ss6) dans quelle mesure la trame actuelle peut être modélisée par un ensemble de 5 vecteurs décalés de CLP échantillons dans le passé. Les valeurs possibles des gains sont données par une table de 170 vecteurs ssqv, qui est parcourue pour chaque valeur de 6 afin de minimiser le terme d'erreur d8 entre le modèle et la cible. Ces étapes sont indiquées par les références 2 de la figure 2 (tables + circuits de multiplication). En dernier lieu, ayant pour chaque valeur de 6 un candidat ssqv possible. un dernier choix est fait donnant les paramètres 6 et ssqv optimaux. Cette action est indiquée par la référence 3 de la figure 2. Cette complexité du multi-prédicteur de la norme G723 apparaît d'ailleurs dans la suite d'opérations qu'il met en oeuvre POUR une trame de 240 échantillons. FAIRE (1) POUR une sous-trame de 60 échantillons, FAIRE (2) SI sous-trame paire, ALORS 6 = -1, 0, 1 SINON 6 = -1, 0, 1, 2 POUR chaque valeur de 6, FAIRE (3) Calculer les 20 termes E6j et Ri# (20*60 MAC) Parcours de la Table :Obtenir l'indice qv donnant le terme d8 min. et le vecteur de gain ssqv optimal (20 170 MAC) Sauver l'indice qv et le terme d8 correspondant FIN (3) Prendre la valeur 6 et l'indice qv qui correspond à d# min. parmi & . d0, dl ou d-1, dO, d1, d2 Transmettre qv (et donc ssqv) et CLP = OLP + 6 FIN (2)(3*(20*60+20*170) MAC ou 4*(20*60+20*170) MAC) FIN (1) (14*(20*60+20*170) MAC). Il apparaît donc que la qualité du codage est très bonne (en raison de l'ordre élevé du prédicteur à long terme, complexe mais assurant la qualité), mais que la complexité d'un tel procédé est très élevée (14*(1200+3400) MAC) pour une trame de parole de 240 échantillons. Par ailleurs, il est clair que les calculs des termes de corrélation et d'énergie ne peuvent être simplifiés, car ils assurent une adaptation du prédicteur (et donc du vecteur de gain) aux statistiques du signal de parole. Le but de l'invention est donc de proposer un codeur de parole similaire à celui qui vient d'être décrit, mais avec une complexité réduite tout en conservant une qualité équivalente. L'invention concerne à cet effet un dispositif de prédiction de période de voisement pour codeur de parole. comprenant en série un circuit de stockage de vecteurs candidats, prévu pour constituer un dictionnaire adaptatif des vecteurs constituant les candidats possibles. trois voies en parallèle comprenant chacune successivement un filtre de détection d'enveloppe et un circuit de calcul de termes de corrélation, un sous-ensemble de stockage des gains desdits vecteurs, un sous-ensemble de multiplication, et un circuit de sélection du vecteur constituant le meilleur représentant possible, caractérisé en ce que (a) ledit sous-ensemble de stockage comprend une mémoire des gains des vecteurs recevant la somme des sorties desdites voies (b) ledit sous-ensemble de multiplication comprend un circuit de sélection du pas entre vecteurs, recevant sur une première entrée la sortie de ladite somme des sorties des voies et sur une deuxième entrée la somme des sorties desdits filtres, et un circuit de multiplication. recevant sur une première entrée la sortie de ladite mémoire et sur une deuxième entrée la sortie dudit circuit de sélection du pas (c) ledit circuit de sélection du meilleur vecteur est prévu pour recevoir la sortie dudit circuit de multiplication. Alors que, dans le cas de la norme G723, le parcours de la table de quantification des gains est très complexe, puisqu'il est effectué à raison de 14 fois par trame de 240 échantillons. la solution conforme à l'invention permet de ne faire ce parcours qu'une fois, avec une dégradation pratiquement insensible de la qualité. L'idée de base de la structure ainsi proposée est en effet la suivante : en faisant l'hypothèse simplificatrice que les prédicteurs sont décorrélés, on donne au pas de raffinement 6 une valeur initiale de nature à effectivement autoriser une réduction de complexité. Les particularités et avantages de l'invention apparaîtront de façon plus précise dans la description qui suit et dans les dessins annexés, donnés à titre d'exemples non limitatifs et dans lesquels - la figure 1 montre un exemple de structure de vecteur de quantification des gains de prédiction à long terme (ou vecteurs de la table de quantification des gains) - la figure 2 montre, dans le cas de la norme G723, la structure du prédicteur de période de voisement en boucle fermée - la figure 3 montre la structure du prédicteur de période de voisement en boucle fermée conforme à la présente invention. Le dispositif de prédiction selon l'invention, tel que représenté sur la figure 3, présente avec celui de la figure 2 des éléments communs, à savoir : le circuit de stockage 40 des vecteurs candidats, les filtres perceptuels (11, 21, 31), les circuits de calcul des termes de corrélation (12, 22, 32), et le circuit 50 de sélection du meilleur représentant possible. Les trois voies en parallèle, maintenant référencées 110, 120, 130, ne comprennent plus que les filtres 11, 21, 31 et, en série avec eux comme précédemment, les circuits de calcul 12, 22, 32. En effet, les corrélations sont calculées pour toutes les valeurs du pas 6, afin de donner grâce à un nouveau critère quadratique de choix, qui calcule une valeur d-# pour chaque 6, une valeur sous-optimale (au sens du critère initial ; mais optimale au sens du nouveau critère) du paramètre 6. Une seule table ou mémoire des gains 160 et, en série avec elle, un seul circuit de multiplication 170 sont prévus, au lieu des trois tables et circuits similaires de la figure 2 : cette nouvelle optimisation réduit considérablement (d'un facteur 3 à 4) les opérations de parcours des tables. La seconde entrée du circuit 170 reçoit la sortie d'un circuit 180 de choix du pas 6 parmi les valeurs -1, 0, 1, qui effectue la sélection du pas de raffinement, selon un critère défini par la relation (8) donnée plus loin. Ce circuit 180 reçoit lui-même les trois sorties des trois filtres 11, 21, 31. Un circuit de sélection 250, identique au circuit 50 et prévu en sortie du circuit de multiplication 170, délivre le vecteur constituant le meilleur représentant possible de la cible. On avait vu, en effet, que la solution optimale. pour chaque valeur de ô. était donnée par la résolution du système linéaire (4). L'hypothèse de décorrélation qui est maintenant faite se traduit par le système (6) suivant Ri = ssi Eij -K s i s K (6) On obtient alors facilement un vecteur de gain initial (sans inversion matricielle). pour chaque valeur de 6 -K s i K (7) De même, comme précédemment, on obtient pour chaque valeur de 6 les termes de corrélation et d'énergie liés au dictionnaire adaptatif Ei#j et Ri#. L'idée de la simplification est motivée par le raisonnement suivant : la donnée d'un vecteur de gain initial ss doit permettre de déterminer une valeur de 6 initiale (et sousoptimale) ne nécessitant qu'un parcours de la table de quantification par sous-trame. On utilise pour cela un critère de choix du pas de raffinement 6 tiré de l'expression (5) et qui est donné par La valeur initiale du pas 6 utilisée pour chaque sous-trame est donc celle qui minimise le critère quadratique d en connaissant la période de voisement en boucle ouverte (OLP) et les termes Eij et Ri#. La recherche du vecteur de gain optimal est conduite par minimisation du critère (5). avec un parcours de la table des 170 vecteurs quantifiés une seule fois par sous-trame. La réduction de complexité ainsi obtenue apparaît dans la suite d'opérations modifiée qui est maintenant conforme au processus suivant POUR une trame de 240 échantillons, FAIRE (1) POUR une sous-trame de 60 échantillons, FAIRE (2) SI sous-trame paire. ALORS 6 = -1, 0, 1 SINON 6 = -1, 0, 1, 2 POUR chaque valeur de 6, FAIRE (3) Calcul des 20 termes E6j et Ro (20*60 MAC) Calcul du vecteur de gain initial Q Calcul du critère d Sauve le terme FIN (2) (3* (20*60) MAC ou 4* (20*60) MAC) Prendre la valeur 6 qui correspond à d# min. parmi d-1 , d0 ,d1 ou d, d, d, d Parcours de la Table : Obtention de l'indice qv donnant le terme min. et le vecteur de gain ss optimal (20*170 MAC) Transmettre qv (et donc Qv ) et CLP = OLP + 6 FIN (1) (14*(20*60)+4* (20*170) MAC). L'amélioration ainsi apportée, par réduction de la complexité à 14*1200+4*3400 MAC, ne dégrade la qualité du codeur que de 0,2 db en moyenne sur une base de 20 signaux de paroles fournis par 20 locuteurs différents. Cette dégradation du rapport Signal/Bruit moyen (RSB moyen) n'est pas perceptible. REVENDICATION 1. Dispositif de prédiction de période de voisement pour codeur de parole, comprenant en série un circuit de stockage de vecteurs candidats, prévu pour constituer un dictionnaire adaptatif des vecteurs constituant les candidats possibles. trois voies en parallèle comprenant chacune successivement un filtre de détection d'enveloppe et un circuit de calcul de termes de corrélation, un sous-ensemble de stockage des gains desdits vecteurs, un sousensemble de multiplication, et un circuit de sélection du vecteur constituant le meilleur représentant possible, caractérisé en ce que (a) ledit sous-ensemble de stockage comprend une mémoire des gains des vecteurs recevant la somme des sorties desdites voies (b) ledit sous-ensemble de multiplication comprend un circuit de sélection du pas entre vecteurs, recevant sur une première entrée la sortie de ladite somme des sorties des voies et sur une deuxième entrée la somme des sorties desdits filtres, et un circuit de multiplication, recevant sur une première entrée la sortie de ladite mémoire et sur une deuxième entrée la sortie dudit circuit de sélection du pas (c) ledit circuit de sélection du meilleur vecteur est prévu pour recevoir la sortie dudit circuit de multiplication.