Brevet FR2702075A1 — publié le 19940902

PROCÉDÉ DE GÉNÉRATION D'UN FILTRE DE PONDÉRATION SPECTRALE DU BRUIT DANS UN CODEUR DE LA PAROLE La présente invention concerne, de f açon globale, un codeur de la parole et, plus particulièrement, un procédé amélioré de génération d'un filtre de pondération spectrale du bruit pour une utilisation dans un codeur de la parole. La prédiction linéaire à excitation par code (CELP) est une technique de codage de la parole utilisée pour produire une parole de synthèse de haute qualité Cette classe de codage de la parole, connue de même comme prédiction linéaire à excitation par vecteur, est utilisée dans de nombreuses applications de communication et de synthèse de la parole La CELP peut être appliquée, en particulier, aux systèmes de cryptage digital de la parole15 et de communication digitale par radiotéléphone dans lesquels la qualité de la parole, le débit de données, la taille et le coût sont des buts importants. Dans un codeur de la parole à CELP, les pointeurs de long terme (" caractéristique globale ") et de court terme (" caractéristique phonétique ") modélisant les caractéristiques du signal d'entrée de la parole sont incorporés dans un ensemble de filtres variables dans le temps, en fait un filtre de long terme et un filtre de court terme Un signal d'excitation pour les filtres est25 choisi à partir d'une matrice de codage des séquences d'innovation stockées ou vecteurs de code. Pour chaque trame de la parole, le codeur de la parole applique un vecteur individuel de code aux filtres pour générer un signal reconstitué de la parole Le signal30 reconstitué de la parole est comparé au signal originel d'entrée de la parole créant un signal d'erreur Le signal d'erreur est alors pondéré en traversant un filtre de pondération spectrale du bruit possédant une réponse basée 2 2702075 sur la perception auditive humaine Le signal optimal d'excitation est déterminé par le choix d'un vecteur de code produisant le signal d'erreur pondéré avec l'amplitude minimale pour la trame de courant de la parole. Pour chaque trame de la parole, un ensemble de paramètres linéaires de codage de pointeur sont produits par un analyseur de coefficient Les paramètres incluent usuellement des coefficients pour le long terme, le court terme et les filtres de pondération spectrale du bruit. Les opérations de filtrage dues à un filtre de pondération spectrale du bruit peuvent constituer une partie importante de la complexité globale de calcul d'un codeur de la parole car un signal d'erreur pondéré de façon spectrale a besoin d'être calculé pour chaque vecteur de15 code à partir d'une matrice de code de séquences d'innovation Usuellement, un compromis entre la commande affectée et la complexité due aux filtres de pondération spectrale du bruit a besoin d'être trouvé Une technique pouvant permettre une commande améliorée de la conformation20 en fréquence introduite par le filtre de pondération spectrale du bruit, sans l'accroissement correspondant de la complexité du filtre de pondération, représenterait une innovation utile dans le domaine de l'art du codage de la parole. La Figure 1 est un synoptique d'un codeur de la parole dans lequel la présente invention peut être utilisée; la Figure 2 est un organigramme de processus illustrant la séquence globale des opérations de codage de la parole effectuées selon un mode de mise en oeuvre de la présente invention; la Figure 3 est un organigramme de processus illustrant la séquence de génération de coefficients 3 2702075 combinés de filtre spectral du bruit selon la présente invention; la Figure 4 est un synoptique d'un mode de mise en oeuvre d'un codage de la parole selon la présente invention; la Figure 5 est un organigramme de processus illustrant la séquence globale des opérations de codage de la parole effectuées selon un mode de mise en oeuvre de la présente invention; la Figure 6 est un synoptique de configurations particulières de filtre de pondération spectrale du bruit selon la présente invention; et la Figure 7 est un synoptique de configurations particulières de filtre de pondération spectrale du bruit selon la présente invention. Cette description inclut un procédé de codage digital de la parole Ce procédé comprend la modélisation de la réponse en fréquence de multiples filtres par un filtre d'ordre R, fournissant ainsi un filtre qui assure la20 commande de multiples filtres sans la complexité de multiples filtres Le filtre d'ordre R peut être utilisé comme filtre de pondération spectrale du bruit ou comme une combinaison d'un filtre pointeur de court terme et d'un filtre de pondération spectrale du bruit selon le mode de25 mise en oeuvre utilisé La combinaison du filtre pointeur de court terme et du filtre de pondération spectrale du bruit est référencée comme filtre de synthèse à pondération spectrale du bruit En général, le procédé modélise la réponse en fréquence de L filtres d'ordre P par un seul30 filtre d'ordre R o R 4 2702075 La 2 l = 1 o: i 1 = et 1 2 a 3 2 a 2 2 O La Figure 1 est un synoptique d'un premier mode de mise en oeuvre d'un codeur de la parole utilisant la présente invention Un signal acoustique d'entrée à analyser est appliqué à un codeur de la parole 100 par un microphone 102 Le signal d'entrée, usuellement un signal10 vocal, est alors appliqué au filtre 104 Le filtre 104 présentera, en général, des caractéristiques de filtre passe-bande Cependant, si la largeur de bande de la parole est déjà adaptée, le filtre 104 peut comprendre une connexion directe par câble. Un convertisseur analogique/digital (A/D) 108 convertit le signal analogique vocal 152 sortant du filtre 104 en une séquence de M échantillons d'impulsions, l'amplitude de chaque échantillon d'impulsions est alors représentée par un code numérique, comme cela étant connu20 dans le domaine de l'art L'horloge d'échantillonnage SC détermine le taux d'échantillonnage du convertisseur A/D 108 Dans le mode de mise en oeuvre préféré, l'horloge SC tourne à 8 k Hz L'horloge d'échantillonnage SC est générée en conjonction avec l'horloge de trame FC dans le module25 d'horloge 112. La sortie numérique de l'A/D 108, référencée comme vecteur d'entrée de la parole, s(n) 158, est appliquée à l'analyseur de coefficient 110 Ce vecteur d'entrée de la parole s(n) 158 est obtenu, de façon répétitive, dans des trames séparées, c-à-d des intervalles de temps, dont la longueur est déterminée par l'horloge de trame FC. Pour chaque bloc de la parole, un ensemble de paramètres linéaires de codage de pointeur (LPC) est produit par l'analyseur de coefficient 110 Les coefficients de pointeur de court terme 160 (STP), les coefficients de pointeur de long terme 162 (LTP) et le facteur de gain d'excitation g 166 sont appliqués un multiplexeur 150 et sont envoyés sur le canal pour le synthétiseur de la parole Le vecteur d'entrée de la parole s(n) 158 est appliqué, de même, à un soustracteur 130 dont la fonction sera ensuite décrite. Le bloc de base de stockage de vecteur 114 contient un ensemble de M vecteurs de base Vm(n) dans lesquels 1 d'échantillons blancs aléatoires de Gauss bien que d'autres types de vecteurs de base puissent être utilisés. Le générateur de matrice de codage 120 utilise les M vecteurs de base Vm(n) et un ensemble de deux M mots de codage d'excitation Ii o O vecteurs de base utilisés pour générer les 1024 vecteurs d'excitation. Pour chaque vecteur individuel d'excitation ui(n), un vecteur reconstitué de la parole s'i(n) est généré pour être comparé au vecteur d'entrée de la parole s(n) Le bloc de gain 122 cadre le vecteur d'excitation ui(n) par le facteur de gain d'excitation gi qui est constant pour la trame Le signal d'excitation cadré gjui(n) 168 est alors filtré par le filtre de pointeur de long terme 124 et le filtre de pointeur de court terme 126 pour générer le vecteur reconstitué de la parole s'i(n) 170 Le filtre de pointeur de long terme 124 utilise les coefficients de pointeur de long terme 162 pour introduire la périodicité vocale et le filtre de pointeur de court terme 126 utilise les coefficients de pointeur de court terme pour introduire l'enveloppe spectrale Remarquons que les blocs 124 et 126 sont, en fait, des filtres récursifs contenant le pointeur de long terme et le pointeur de court terme dans leurs circuits respectifs de rétroaction. Le vecteur reconstitué de la parole s'i(n) 170 pour le ième vecteur de codage d'excitation est comparé au même bloc du vecteur d'entrée de la parole s(n) 158 en soustrayant ces deux signaux dans le soustracteur 130 Le vecteur de différence ei(n) 172 représente la différence entre les blocs d'origine et reconstitué de la parole Le vecteur de différence ei(n) 172 est pondéré par le filtre de pondération spectrale du bruit 132 à l'aide des coefficients de filtre de pondération spectrale du bruit25 164 générés par l'analyseur de coefficient 110 La pondération spectrale du bruit accentue les fréquences auxquelles l'erreur est plus perceptible par l'oreille humaine et atténue les autres fréquences Un procédé plus efficace pour effectuer la pondération spectrale du bruit30 est l'objet de cette invention. Un calculateur d'amplitude 134 calcule l'amplitude du vecteur de différence à pondération spectrale du bruit e'i(n) 174 et applique ce signal d'erreur Ei 176 à une commande de recherche de matrice de codage 140 La commande35 de recherche de matrice de codage 140 compare le ième 7 2702075 signal d'erreur pour le présent vecteur d'excitation ui(n) avec les signaux d'erreur précédents pour déterminer le vecteur d'excitation produisant l'erreur pondérée minimale. Le code du ième vecteur d'excitation possédant une erreur minimale est alors généré sur le canal comme meilleur code d'excitation I 178 En option, la commande de recherche 140 peut déterminer un mot de codage particulier fournissant un signal d'erreur présentant certains critères prédéterminés tel que celui rencontrant un seuil d'erreur prédéterminé. La Figure 2 représente un organigramme de processus illustrant la séquence globale des opérations de codage de la parole effectuées selon le premier mode de mise en oeuvre de la présente invention illustré sur la Figure 1. Le processus commence en 201 Le bloc de fonction 203 reçoit des données de la parole selon la description de la Figure 1 Le bloc de fonction 205 détermine les coefficients de pointeur de court terme et de long terme. Cela est effectué dans l'analyseur de coefficient 110 de la Figure 1 Des procédés de détermination des coefficients de20 pointeur de court terme et de long terme sont contenus dans l'article intitulé " Codage par Pointeur de la Parole à Faibles Cadences Binaires ", Comm IEEE sur les Trans, Vol Com-30, pages 600-14, Avril 1982 par B S Atal Le pointeur de court terme A(z) est défini par les25 coefficients de l'équation suivante: A(z) = 1 az i= 1 Le bloc de fonction 207 génère un ensemble de coefficients provisoires de filtre de pondération spectrale du bruit caractérisant au moins un premier et un second30 ensemble de filtres Les filtres peuvent être d'un ordre quelconque, c-à-d le premier filtre est d'ordre F et le second filtre est d'ordre J o R 8 2702075 en oeuvre préféré utilise deux filtres d'ordre J o J = P. Les filtres utilisant ces coefficients sont de la forme II(Z)= AlAZl o 1 2 a 2 2 a 3 2 o H(z), qui est un montage en cascade d'au moins un premier et un second ensemble de filtres d'ordre J, est défini comme filtre provisoire de pondération spectrale du bruit Remarquons que les coefficients du filtre provisoire de pondération spectrale du bruit dépendent des coefficients de pointeur de court terme générés dans le bloc de fonction 205 Ce filtre provisoire de pondération spectrale du bruit H(z) est directement utilisé dans des mises en oeuvre de codeur de la parole précédents. Afin de réduire la complexité de calcul due à la pondération spectrale du bruit, la réponse en fréquence de H(z) est modélisée par un seul filtre d'ordre R Hs(z) qui est le filtre combiné de pondération spectrale du bruit sous la forme Hl (Z) =R 1-1:az- i= 1 Remarquons que bien que H,(z) soit illustré comme un filtre à pôle, Hs(z) peut être aussi conçu comme un filtre à valeur de zéro Le bloc de fonction 209 génère les coefficients du filtre H 5 (z) Le processus de génération des coefficients pour le filtre combiné de pondération spectrale du bruit est illustré de façon détaillée sur la25 Figure 3 Remarquons que le modèle à plusieurs pôles d'ordre R est d'un ordre inférieur au filtre provisoire de pondération spectrale du bruit entraînant des économies de calcul. 9 2702075 Le bloc de fonction 211 fournit des vecteurs d'excitation en réponse à la réception des données de la parole selon la description de la Figure 1 Le bloc de fonction 213 filtre les vecteurs d'excitation via les 5 filtres de pointeur de long terme 124 et de court terme 126. Le bloc de fonction 215 compare les vecteurs filtrés d'excitation générés par le bloc de fonction 213 et selon la description de la Figure 1, formant un vecteur de10 différence Le bloc de fonction 217 filtre le vecteur de différence à l'aide des coefficients du filtre combiné de pondération spectrale du bruit générés dans le bloc de fonction 209 pour former un vecteur de différence à pondération spectrale du bruit Le bloc de fonction 21915 calcul l'amplitude du vecteur de différence à pondération spectrale du bruit selon la description de la Figure 1 et forme un signal d'erreur Le bloc de fonction 221 choisit un code d'excitation I à l'aide du signal d'erreur selon la description de la Figure 1 Le processus s'arrête en 223. La Figure 3 est une illustration de l'organigramme du processus 300 décrivant les détails pouvant être utilisés dans la mise en oeuvre du bloc de fonction 209 de la Figure 2 Le processus commence en 301 Etant donné le filtre provisoire de pondération spectrale du bruit H(z), le bloc de fonction 303 génère une réponse d'impulsions h(z) de H(z) pour K échantillons o: H(Z) = O o: 0 rzl P 1 Saf XZ i= 1 et o on trouve au moins deux termes de non annulation c-à- d ai; a 2 avec ai > O et a 2 > O ou a 2 # a 3 avec a 2 > O et a 3 > O Le bloc de fonction 305 fait automatique correspondre la réponse d'impulsions h(n) formant une auto- corrélation de la forme: K-i Rhh(i) = i(n)h(n +i) n= 1 o O Le bloc de fonction 307 calcule, à l'aide de l'auto- corrélation et de la procédure récursive de Levinson, les coefficients de Hs(Z) qui est le filtre combiné de pondération spectrale du bruit de la forme: _ 1 R f i= 1 La Figure 4 est un synoptique générique d'un second mode de mise en oeuvre d'un codeur de la parole selon la présente invention Le codeur de la parole 400 est similaire au codeur de la parole 100 à l'exception des différences expliquées ci-dessous Tout d'abord, le filtre de pondération spectrale du bruit 132 de la Figure 1 est20 remplacé par deux filtres précédant le soustracteur 430 sur la Figure 4 Ces deux filtres sont le filtrel de synthèse à pondération spectrale du bruit 468 et le filtre 2 de synthèse à pondération spectrale du bruit 426 Ensuite, ces filtres sont respectivement référencés comme filtrel et25 filtre 2 Le filtrel 468 et le filtre 2 426 diffèrent du filtre de pondération spectrale du bruit de la Figure 1 en ce que chacun comprend un filtre de synthèse de court terme et un filtre de synthèse pondéré de court terme en plus 11 2702075 d'un filtre de pondération spectrale du bruit Le filtre résultant est référencé, de façon générique, comme un filtre de synthèse à pondération spectrale du bruit De façon spécifique, il peut être mise en oeuvre comme filtre provisoire de synthèse à pondération spectrale du bruit ou comme un filtre de synthèse combiné à pondération spectrale du bruit Le filtrel 468 est précédé par un filtre d'inversion de court terme 470 De plus, le pointeur de court terme 126 de la Figure 1 est éliminé de la Figure 4. Le filtrel et le filtre 2 sont identiques sauf pour leurs positions respectives sur la Figure 4 Deux configurations spécifiques de ces filtres sont illustrées sur les Figures 6 et 7. L'analyseur de coefficient 410 génère des coefficients de pointeur de court terme 458, des coefficients de filtrel 460, des coefficients de filtre 2 462, des coefficients de pointeur de long terme 464 et un facteur de gain d'excitation g 466 Le procédé de génération des coefficients pour le filtrel et pour le20 filtre 2 est illustré sur la Figure 5 Le codeur de la parole 400 peut produire les mêmes résultats que le codeur de la parole 100 tout en réduisant potentiellement le nombre de calculs nécessaires Alors, le codeur de la parole 400 peut être préféré au codeur de la parole 100 La25 description des blocs de fonction identiques, à la fois, dans le codeur de la parole 100 et le codeur de la parole 400 ne sera pas répétée pour plus d'efficacité. La Figure 5 est un organigramme du processus illustrant le procédé de génération des coefficients pour HE(z) qui est le filtre de synthèse combiné à pondération spectrale du bruit Le processus commence en 501 Le bloc de fonction 503 génère les coefficients pour un filtre d'ordre P de pointeur de court terme A(z) Le bloc de fonction 505 génère des coefficients pour un filtre 12 2702075 provisoire de synthèse à pondération spectrale du bruit H(z) de la forme: H(z)= Al-l AlZl l l a 2 J ou: O H(z) et à l'aide d'un procédé récursif pour trouver les coefficients Le mode de mise en oeuvre préféré utilise le procédé récursif de Levinson qui est connu de l'homme de15 l'art moyen Le processus prend fin en 511. Les Figures 6 et 7 illustrent respectivement la première et la seconde configurations pouvant être utilisée dans le filtrel de synthèse pondérée 468 et le filtre 2 de synthèse pondérée 426 de la Figure 4. Dans la configuration 1 de la Figure 6 A, le filtre 2 de synthèse pondérée 426 contient le filtre provisoire de synthèse à pondération spectrale du bruit H(z) qui est un montage en cascade de trois filtres Le filtre de synthèse de court terme pondéré par al, A(z/a 1) 611, le filtre25 d'inversion de court terme pondéré par a 2, 1/A(z/a 2) 613 et le filtre de synthèse de court terme pondéré par a 3, A(z/a 3) 615 o O 13 2702075 synthèse pondérée 426 à l'exception du fait qu'il est précédé par un filtre d'inversion de court terme 1/A(z) 603 et qu'il est placé dans le circuit d'entrée de la parole. H(z) est, dans ce cas, un montage en cascade des filtres 605, 607 et 609. Sur la Figure 6 B, le filtre provisoire de synthèse à pondération spectrale du bruit H(z) 468 et 426 est remplacé par un seul filtre de synthèse combiné à pondération spectrale du bruit H,(z) 619 et 621 Hs(z) modélise la réponse en fréquence de H(z) qui est un montage en cascade des filtres 605, 607 et 609 ou, de façon équivalente, des filtres 611, 613 et 615 sur la Figure 6 A Les détails de la génération des coefficients du filtre H,(z) sont exposés sur la Figure 5. La configuration 2 de la Figure 7 A est un cas particulier de la configuration 1 o a 3 O Le f iltre 2 de synthèse pondérée 426 contient le filtre provisoire de synthèse à pondération spectrale du bruit H(z) qui est un montage en cascade de deux filtres: le filtre de synthèse20 de court terme pondéré par a,, A(z/al) 729 et le filtre d'inversion de court terme pondéré par a 2, 1/A(z/a 2) 731. Le filtrel de synthèse pondérée 468 de la Figure 7 A est identique au filtre 2 de synthèse pondérée 426 excepté le fait qu'il est précédé d'un filtre d'inversion de court25 terme 1/A(z) 703 et qu'il est placé dans le circuit d'entrée de la parole H(z) est, dans ce cas, un montage en cascade des filtres 725 et 727. Sur la Figure 7 B, le filtre provisoire de synthèse à pondération spectrale du bruit H 1 (z) 468 et 426 de la Figure 7 A est remplacé par un seul filtre de synthèse combiné à pondération spectrale du bruit Hs(z) 719 et 721 HS(z) modélise la réponse en fréquence de H(z) qui est un montage en cascade des filtres 725 et 727 ou, de façon équivalente, des filtres 729 et 731 de la Figure 7 A Les détails de génération des coefficients de filtre H,(z) se trouvent sur la Figure 5. La génération du filtre combiné de pondération spectrale du bruit, à partir du filtre provisoire de pondération spectrale du bruit de la forme décrite, crée un filtre efficace remplissant la commande de deux ou de plusieurs filtres d'ordre J sans la complexité d'un filtre d'ordre R Cela fournit un filtre plus efficace sans l'augmentation correspondante de la complexité du codeur de10 la parole De la même façon, la génération du filtre de synthèse combiné à pondération spectrale du bruit à partir du filtre provisoire de synthèse à pondération spectrale du bruit de la forme décrite crée un filtre efficace présentant la commande d'un filtre d'ordre P et d'un ou de15 plusieurs filtres d'ordre J combinés en un filtre d'ordre R Cela fournit un filtre plus efficace sans l'augmentation correspondante de la complexité du codeur de la parole. REVEND Ie ATIONS 1 Procédé de codage de la paro 2702075 térse par les étapes suivantes: la récetssion ( 203) des données de la parole; la constitution ( 211) de vecteur d'excitation en rép Donse à ladite étape de rêo on; la détermination ( 205) de coefficients de pointelur de court terme et de long terme pour une utilisation par un filtre de pointeur de long terme et de court terme d'ordre P; le filtrage ( 213) desdits vecteurs d'excitation à l'aide dudit filtre de pointeur de long terme et dudit filtre de pointeur de court terme, formant des vecteurs d'excitation filtrés; la détermination des coefficients pour un filtre de pondération spectrale du bruit comprenant les étapes suivantes: la génération ( 207) d'un filtre provisoire de pondération spectrale du bruit ccmprenant un premier f-i-'- d'ordre F et un second filtre d'ordre J selon lesdits coefficients de filtre de court terme d'ordre P; et la génération ( 209) des coefficients de Pondération spectrale du bruit à l'aide d'un modèle à plusieurs pôles d'ordre R dudit filtre provisoire de pond Sration spectrale du bruit o R procédé récursif de Levinson. 4 Procédé de codage de la parole, caractérisé par les étapes suivantes la réception des données de la parole; la constitution de vecteurs d'excitation; la génération de coefficients de filtre pour un filtre combiné de pondération spectrale du bruit et de court terme comprenant les étapes suivantes: la génération d'un filtre de court terme d'ordre P; la génération d'un filtre provisoire de pondération spectrale du bruit comprenant un premier filtre d'ordre F et un second filtre d'ordre J, chaque filtre dépendant dudit filtre de court terme d'ordre P; et la génération de coefficients pour un filtre combiné de court terme et de pondération spectrale du bruit à plusieurs pôles d'ordre R à lt'aide dudit filtre de court terme d'ordre P et dudit filtre provisoire de pondération spectrale du bruit o R de l'auto-corrélation.