FR 2661541 A1 19911031 FR 9005400 A 19900427 Procédé et dispositif de codage bas débit de la parole. La présente invention concerne un procédé et un disposi- tif de codage bas débit de la parole. Elle s'applique notamment à la réalisation de vocodeurs pour les liaisons radio HF, ou de ceux utilisés pour la message- rie vocale. Dans ces domaines, le volume d'informations à transmettre se heurte de plus en plus aux limites technologiques des équipe- ments susceptibles de véhiculer la parole Ainsi pour des trans- missions dont le débit est inférieur à 2400 bits par seconde, 1 o les techniques de codage connues (MIC, DELTA, RELP etc) ne sont plus adaptées, le signal de parole ne pouvant plus être transmis par sa forme d'onde Pour assurer ces transmissions il devient nécessaire d'utiliser les techniques de codage beaucoup plus sophistiquées des vocodeurs Ainsi, la plupart des voco- deurs très bas débit utilisent une technique de codage vectoriel de leur filtre numérique pour modéliser le conduit vocal Cette modélisation a lieu par recherche d'une référence dans un dic- tionnaire Cependant cette technique qui est à la fois très compliquée et coûteuse à mettre en oeuvre ne permet pas d'obte- nir une quantification fine du signal de parole Les difficultés viennent en outre du fait que l'énergie du signal est souvent mal représentée et donc mal codée, de la sorte les brusques variations d'amplitude du signal vocal ne peuvent plus être restituées correctement. 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 co- dage à bas débit de la parole, caractérisé en ce qu'il consiste après avoir découpé le signal de parole en trames de longueur constante, à calculer les caractéristiques de N filtres de modélisation du conduit vocal ainsi que les caractéristiques de période fondamentale (pitch), de voisement et d'énergie du signal vocal par intervalles déterminés de N trames successi- ves en calculant l'énergie du signal de parole un nombre P déter- miné de fois par trame pour coder l'ensemble de ces caractéristi- ques D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description faite en regard des dessins annexés qui représentent: La figure 1 un organigramme illustrant le procédé de codage de la parole mis en oeuvre par l'invention. La figure 2 un mode de codage des coefficients LSP du filtre d'analyse mis en oeuvre à la figure 1 pour modéliser le conduit vocal. La figure 3 un tableau de coefficients LSP. La figure 4 des chemins de codage de trames par interpo- lation. La figure 5 une table de codage de "pitch". La figure 6 un organigramme illustrant le procédé de synthèse du signal de parole mis en oeuvre par l'invention. La figure 7 un graphe pour illustrer un mode d'interpola- tion des filtres de synthèse mis en oeuvre par l'invention. La figure 8 un mode de réalisation d'un dispositif pour la mise en oeuvre du procédé selon l'invention. Le procédé de codage selon l'invention consiste après avoir découpé le signal de parole en trames de longueur cons- tante d'environ 20 à 25 ms, comme ceci a lieu habituellement dans les vocodeurs, à déterminer et coder les caractéristiques du signal de parole sur N trames successives en déterminant l'énergie du signal P fois par trame. La synthèse du signal de parole sur chaque trame a lieu ensuite en procédant au détramage et au décodage des valeurs des caractéristiques codées du signal de parole. Les étapes représentatives d'un procédé de codage selon l'invention appliquées à un cas o N = 3 trames successives sont analysées sont représentées sur l'organigramme de la figure 1. Sur cet organigramme le procédé commence aux étapes 1 à 6, par le calcul sur la première trame analysée des coefficients "LSP" o "LSP" est l'abréviation anglaise de "Line Spectrum Pair", d'un filtre d'analyse modélisant le conduit vocal: ce calcul peut être effectué par exemple en suivant la méthode connue décrite dans l'article de MM Peter KABAL et Ravi PRAKASA RAMACHANDRAN ayant pour titre "The computation of line spectral Frequencies using Chebyshev polynomials" publié dans IEE Transactions on Acoustics, Speech and Signal Processing ASSP-34 Dec 86. Après échantillonnage du signal de parole sur chaque trame et quantification des échantillons sur un nombre déterminé de bits ceux-ci sont préaccentués à l'étape 3 Comme l'opération d'échantillonnage rend périodique le spectre du signal de pa- role, le nombre d'échantillons pris en compte pour la détermina- tion des coefficients du filtre de modélisation du conduit vocal est limité de façon connue en faisant le produit des échantil- lons préaccentués de l'étape 3 par une fenêtre de HAMMING de durée égale à celle d'une trame, cette fenêtre présentant aussi l'avantage de renforcer les résonances. Les coefficients k du filtre de modélisation du con- duit vocal sont calculés à l'étape 5 à partir de coefficients d'autocorrélation R définis par une relation de la forme Ri k S(k) (k+i) ( 1) o i est un nombre entier variant de O à 10 par exemple, et Si représente un échantillon de signal préaccentué et fenêtré. Le calcul des coefficients K peut être effectué à l'étape 5 en appliquant l'algorithme connu de M LEROUX- GUEGUEN dont une description peut être trouvée dans l'article de la revue IEEE Transactions ou Acoustics Speech, and Signal Processing June 1977 ayant pour titre "A fixed point computation of partial correlation coefficients" Ce calcul revient à inver- ser une matrice carrée dont les éléments sont les coefficients R.de la relation ( 1). i Le passage des coefficients de réflexions à des coeffi- cients de prédiction A a lieu à l'étape 8 Ce passage utilise i aussi un algorithme connu sous le nom d'algorithme de M. Levison dont une description peut être trouvée dans l'article intitulé: "The Wiener RM 5 error croterion in filter design and prediction J Math Phys, 25 pp 614-617 ( 1947)" Enfin les coefficients LSP du filtre sont calculés à partir de deux polynômes P et Q décrits comme suit dans le plan des transformées en Z, o Z est la variable complexe de ces polynômes, P(z-l) =A(Z-1) -Z-11 A(Z) ( 2) et Q(Z-1)=A(Z-1)+Z-11 A(Z) ( 3) -1 10 -1 avec A(Z 1) = 1 + 1 Ai Z 1 ( 4) i=l Si ej i et ej 13 i désignent les racines des polynô- mes P et Q les coefficients LSP sont par définition les fréquen- ces fi et gi des arguments de ces racines soit f = x Fe/2 Â 1 ( 5) 1 i et gi = 13 i Fe/2 Â 1 T ( 6) Dans ce calcul F représente la fréquence d'échantillon- e nage du signal de parole. Les fréquences f 1 et gi sont conservées dans une mémoire, non représentée et les calculs précédents sont recommen- cés sur les échantillons des deux trames qui suivent Lorsque les paramètres de trois trames consécutives sont calculés et que trois jeux de coefficients ont été stockés le procédé passe à leur codage à l'étape 13. Le calcul de la période fondamentale du signal et du voisement a lieu de façon connue par exécution des étapes 9 et Au cours de ces étapes le signal de parole est classé en deux catégories de sons, les sons voisés et les sons non voisés. Les sons voisés qui sont produits à partir des cordes vocales sont assimilés à une suite d'impulsions dont la période du fonda- mental porte le nom de "Pitch" en anglais Les sons non voisés qui sont produits par des turbulences sont assimilés à du bruit blanc Ainsi lorsque le signal de parole présente des périodici- tés marqués le procédé reconnaît à l'étape 10 pour chaque trame un son voisé, et un son non voisé dans le cas contraire La reconnaissance a lieu après un prétraitement du signal pour renforcer les informations utiles et limiter celles qui ne le sont pas Ce prétraitement consiste à effectuer un premier fil- trage passe bas du signal, suivi d'un ébasage et d'un deuxième filtrage Comme la fréquence fondamentale du signal de parole varie entre 50 et 400 Hertz le premier filtrage est effectué par exemple au moyen, d'un simple filtre de "Butterworth" d'ordre 3 dont la fréquence de coupure à 3 d B peut être fixée à 600 Hertz. L'ébasage place ensuite à une amplitude nulle les échantillons du signal dont le niveau est inférieur à un certain seuil prédé- terminé variable éventuellement suivant l'amplitude du signal vocal Cet ébasage permet d'accentuer l'aspect périodique du signal tout en diminuant les détails nuisibles aux traitements ultérieurs. Enfin, le deuxième filtrage permet de lisser les résul- tats de l'ébasage en éliminant les hautes fréquences A cette fin, un filtre de Butterworth identique au pemier filtre peut être utilisé. Les calculs du pitch et du voisement ont lieu de façon connue par utilisation de la fonction AMDF (Average Magnitude Difference Function) Ils se déroulent suivant cinq étapes qui consistent: 1 A calculer une décision préliminaire de voisement à partir des valeurs de l'énergie, du filtre de modélisation et du nombre de passages par l'amplitude nulle du signal. 2 A calculer un seuil de voisement à partir de la déci- sion du voisement préliminaire, de l'énergie basse fréquence et de constantes internes. 3 A calculer pour chaque valeur de R une fonction AMDF(k) =SOMMEI (S(n) S(n k) ( 8) o s(n) représente (n) of (n-)'rp 6 et le signal prétraité, et à calculer les valeurs maximales de cette fonction. 4 A comparer et étudier les valeurs maximales obtenues pour en déduire le voisement et le pitch de la trame. Et à corriger le voisement et le pitch de la trame précédente en fonction des résultats de la trame courante pour conserver une certaine stationnarité au voisement. Le calcul d'énergie qui a lieu à l'étape 8 est exécuté sur quatre sous trames Ce calcul a lieu en prenant le loga- rithme à base 2 de la somme des énergies de chaque échantillons préaccentué d'une sous trame. Les sous trames dans chaque trame sont jointives ou se chevauchent pour avoir une longueur multiple du "pitch". Une fois que les caractéristiques, de modélisation du filtre, d'énergie, de voisement et de pitch sont obtenues pour trois trames successives le procédé passe à leur codage selon les étapes 13 à 16 Le codage du filtre des trois trames dési- gnées ci-après par trame 1, trame 2 et trame 3 s'effectue en deux temps en commençant par la trame 3. Le codage de la trame 3 est de type scalaire Il s'effec- tue en application de l'algorithme connue sous l'appellation "Backward Sequential adaptative" tel que décrit par exemple dans l'article de la revue IEEE on selected areas in cormmunica- tions, Vol 6 feb 88 de MM Sugamara N et FAVARDIN N ( 1988) ayant pour titre "Quantizer design in LSP speech analysis". L'algorithme de codage est exécuté dans l'ordre décrois- sant des coefficients LSP en commençant par le dernier des ma- nières représentées aux figures 2 et 3 Pouir un filtre de modélisation du conduit vocal à 10 coefficients LSP par exemple le codage du dernier coefficient LSP( 10) a lieu de façon li- néaire entre deux valeurs de fréquences F 10 MIN et F 10 MAX et a lieu sur N Vo 10 valeurs codées linéairement sur NB 10 bits. Les codages des LSP(i) autres coefficients pour i = 9, 8 1 a lieu par comparaison du coefficient LSPQ(i+ 1) à une va- leur de fréquence maximum F MAX Si LSPQ(i + l)>Fi MAX alors le codage du coefficient est effectué linéairement entre deux valeurs F MIN et F MAX sur 1 1 NV valeurs et donc sur NB bits. Si LSP(i+ 1) effectué linéairement entre Fi MIN et LSPQ(i+ 1) sur N Vi va- leurs et donc sur NB bits. Au cours du codage des trames 1 et 2 une bonne approxi- mation des valeurs de coefficients LSP correspondant aux trames 1 et 2 est obtenue à partir de l'interpolation entre les trames O (trame O = trame 3 du groupe de 3 trames précédentes) et 3. Dans ce processus les trames 1 et 2 ne sont pas codées directe- ment mais c'est le type d'interpolation permettant de les quanti- fier le plus fidèlement possible qui est codé. Pour chacune des valeurs de coefficients LSP d'ordre impairs des trames 1 ou 2, le codeur détermine parmi 3 interpola- tions représentées par le graphe de la figure 4 celle qui lui semble donner la meilleure approximation des valeurs des trames 1 et 2. Les trois cas d'interpolations possibles cas O, casl et cas 2 donnent pour les trames 1 et 2 des coefficients LSPQ défi- nis en liaison avec la figure 4 comme suit (LSPQ (trame i) = Valeur Quantifiée du LSP de la trame i Cas O:LSPQ (cas O, tramel) =( 2 *LSPQ(trame O) +LSPQ(trame 3)) /3 LSPQ (cas O, trame 2) = (LSPQ (trame O) + 2:LSPQ (trame 3))/3 Cas 1: LSPQ(casl, tramel) = (LSPQ(trame O) + 2 *LSPQ(trame 3)) /3 LSPQ(casl, trame 2) =LSPQ(trame 3) Cas 2: LSPQ(cas 2, tramel)=LSPQ(trame O) LSPQ (cas 2, trame 2) = ( 2 *LSPQ (trame O) +LSPQ (trame 3)) /3 Le procédé choisit ensuite parmi les 3 interpolations précédentes celle qui minimise l'erreur de quantification, esti- mée au moyen d'une fonction D_INTER définie ci-dessous en adoptant la valeur de code correspondante. La fonction D_INTER est définie comme suit. DINTER(i) = Wl (LSPQ(cas i, trame 1)-LSP(Trame 1))2 + W 2 (LSPQ(cas i, Trame 2) -LSP(Trame 2)) 2 o LSPQ(cas i, Trame j) est la valeur du coefficient LSP impair de la trame j quantifié au moyen del'interpolation du type i. LSP(trame j) = Valeur réelle dans la trame j du coef- ficient LSP impair à quantifier Wl = valeur de l'énergie de la trame 1 W 2 = valeur de l'énergie de la trame 2 On obtient ainsi 5 codes de 3 cas chacun, soit 35 = 243 cas possibles Le code obtenu est égal à Code LS Pl + 3 Code LSP 3 + 9 Code LSP 5 + 27 Code LSP 7 + 81 Code LSP 9 Ce codage tient sur 8 bits. Le codage du pitch et du voisement ont lieu à l'étape 14 sur trois trames consécutives. Le type de voisement courant est déterminé parmi six cas possibles à partir des voisements des trames 1, 2 et 3 et du voisement de la trame O qui précède chaque groupe de trames 1, 2 et 3. Les types de cas possibles considérés sont les suivants. trame i trame 2 trame 3 Type 1 non voisé non voisé non voisé Type 2 non voisé non voisé vo Isé Type 3 non voisé voisé voisé Type 4 voisé non voisé non voisé Type 5 voisé voisé non voisé Type 6 voisé voisé voisé Une table de codage représenté à la figure 5 permet d'as- socier à toute valeur du pitch un nombre de la table dont la valeur désignée par la suite par "N tableau" est la plus proche du pitch. Le codage des six types de cas possibles précédents a lieu alors de la manière suivante: Le code O est attribué au type 1 Un code égal à la va- leur "N tableau" du pitch de la trame 3 est attribué au type 2. Un code égal à 64 auquel est ajouté la valeur "N tableau" du pitch de la trame 3 est attribué au type 3 Un code égal à 128 auquel est ajouté la valeur "N tableau" du pitch de la trame 1 est attribué au type 4 Un code égal à 192 auquel est ajouté la valeur "N tableau du pitch de la trame 1 est attribué au type 5. Le codage du type 6 a lieu de façon toute particulière en proje- tant le vecteur composé des trois valeurs des pitchs des trois trames sur les 3 vecteurs (Vect 1, Vect 2, Vect 3) propres pour coder les trois projections obtenues Ces trois vecteurs Vect 1, Vect 2, Vect 3 sont une approximation des 3 premiers vecteurs propres de la matrice d'intercorrélation Comme la projection sur le premier vecteur propre donne la moyenne des pitchs il est plus simple de prendre directement comme code pour la première projection la valeur "N tableau" qui est la plus proche de la moyenne (Pl + P 2 + P 3)/3 des pitchs des trames 1, 2 et 3. Le code correspondant est alors codé sur les 63 valeurs de la table de codage. La projection sur le deuxième vecteur propre (Vect 2) est égale au produit scalaire des pitchs des trames 1, 2 et 3 par le deuxième vecteur propre (Vect 2) et la projection sur le troi- sième vecteur propre (Vect 3) est égale au produit scalaire des pitchs des trames 1, 2 et 3 par le troisième vecteur propre (Vect 3). Les codes correspondants peuvent être obtenus respective- ment sur seulement 4 et 3 valeurs de la table de codage. Le codage de l'énergie qui est effectué à l'étage 15 a lieu de façon connue et décrite dans la demande de brevet FR 2 631 146 sur trois trames consécutives Quatre valeur de l'éner- gie correspondant aux 4 sous trames de chacune des trois trames sont codées Cependant pour éliminer l'information redondante dans ces 12 valeurs une Analyse par Composantes Principales du type de celle décrite ayant pour titre "Eléments d'analyse des données" dans le livre de MM DIDAY, LEMAIRE, POUGET et TESTU publié par Dunod, est effectuée Le codage a lieu selon deux étapes Une première étape consiste à effectuer un change- ment de base Le vecteur énergie de dimension 12, composé des 12 valeurs d'énergie des 3 trames est projeté sur les 3 premiers axes principaux déterminés lors de l'analyse par composantes principales (plus de 97 % de l'information est contenue dans ces 3 projections). La deuxième étape consiste à quantifier ces 3 projec- tions, la première projection est quantifiée sur 4 bits, la deuxième sur 3 bits et la troisième sur 2 bits. Le codage de l'énergie ainsi obtenu est alors défini sur 4 + 3 + 2 = 9 bits. Le tramage qui est effectué à l'étape 16 consiste à effec- tuer un regroupement de tous les codes pour former un mot continu de 54 bits décomposés comme suite 1) Code énergie 3 trames sur 9 bits. 2) Code pitch 3 trames sur 10 bits. 3) Code filtre trame 3 sur 27 bits. 4) Code filtres trames 1 et 2 sur 8 bits. soit au total 9 + 10 + 27 + 8 = 54 bits. A titre d'exemple pour le cas d'une durée de trame de 22.5 ms, le procédé permet d'obtenir dans ces conditions un débit binaire par seconde de 54/ ( 3 * 0 0225) = 800 bits par se- conde. La synthèse c'est-à-dire le décodage du signal de parole se déroule selon les étapes 17 à 28 de l'organigramme de la figure 6 suivant d'une part, les étapes 17 à 21 pour détramer et décoder les valeurs des coefficients LSP du filtre (étape 18), du pitch (étape 19), du voisement et de l'énergie (étape 20) pour trois trames consécutives et d'autre part, suivant les étapes 22 à 28 qui réalisent la synthèse du signal de parole il successivement pour chacune des trois trames à partir des infor- mations obtenues lors de l'exécution des étapes 17 à 21 Le détramage et le décodage suivent des procédures inverses aux procédures de tramage et de décodage définie lors de l'analyse illustrée par l'organigramme de la figure 1 La mise en forme du filtre de synthèse consiste à effectuer à l'étape 23 un calcul d'interpolation des coefficients LSP sur quatre sous trames et un calcul pour transformer les coefficients LSP en coefficients Ai Ce dernier calcul est suivi à l'étape 24 par un calcul de gain du filtre de synthèse pour les 4 sous trames auquel est ajouté un calcul de l'énergie du signal d'excitation du filtre. Afin d'éviter des transitions brutales entre filtres dissembla- bles celles-ci se font à l'étape 23 en quatre étapes tous les quarts de trame Les quatre filtres interpolés doivent alors vérifier une relation de la forme: LSP(SS Tri, Tr N)=(LSP(Tr N-1)*( 4-i) +LSP(Tr N)*i)/4 o LSP(SS Tri, Tr N) désigne la valeur du filtre interpolé dans la sous trame i de la trame N. L'interpolation a lieu suivant le schéma de la figure 7. Comme les 12 énergies décodées correspondent à l'énergie du signal de parole après préaccentuation, il faut pour obtenir l'énergie du signal d'excitation diviser l'énergie par le gain du filtre. Le gain du filtre de chaque sous trame est calculé en utilisant les coefficients Ki suivant la relation Gain du filtre T = ( 1-Ki) ( 9) i= 1 Enfin la dernière étape consiste à déterminer la valeur de l'écart type de l'énergie de chaque sous trame (valeur utili- sée lors du calcul de l'excitation). L'ensemble du procédé de codage et de décodage selon l'invention sont exécutables au moyen d'une structure micropro- grammée formée de la façon représentée à titre d'exemple sur la figure 8 par un microprocesseur de traitement du signal 29 tel que celui commercialisé par la société Texas Instrument sous la désignation TMS 320 C 25 Suivant cette structure le signal de parole est d'abord échantillonné par un convertisseur analogique numérique 30 avant d'être appliqué sur un bus de donnée 31 du microprocesseur 29 Un filtre analogique 32 couplé à un disposi- tif de contrôle automatique de gain 33 filtre le signal de pa- role avant son échantillonnage Les programmes et les données mis en oeuvre pour l'exécution du procédé selon l'invention sont inscrits dans une mémoire morte 34 et dans une mémoire vive 35 reliées au microprocesseur 29 Un circuit d'interface 36 relie le microprocesseur 29 par l'intermédiaire d'une ligne de donnée 37 à des dispositifs de transmission extérieurs au vocodeur non représentés. Un dispositif de réception de la parole formé d'un haut parleur 38, d'un amplificateur de puissance 39, un filtre analo- gique 40, est relié au microprocesseur par l'intermédiaire d'un convertisseur numérique analogique 41. REVENDICATIONS 1 Procédé de codage à bas débit de la parole, caractéri- sé en ce qu'il consiste après avoir découpé le signal de parole en trames de longueur constante, à calculer ( 4 10) les caracté- ristiques de N filtres de modélisation du conduit vocal ainsi que les caractéristiques de période fondamentale (pitch), de voisement et d'énergie du signal vocal par intervalles détermi- nés de N trames successives en calculant l'énergie du signal de parole en nombre P déterminé de fois par trame pour coder l'en- semble de ces caractéristiques. 2 Procédé selon la revendication 1, caractérisé en ce que les caractéristiques des filtres de modélisation du con- duit vocal sont formés de coefficients LSP. 3 Procédé selon l'une quelconque des revendications 1 et 2, caractérisé en ce que le nombre N est égal à trois. 4 Procédé selon la revendication 3, caractérisé en ce que le codage des coefficients LSP a lieu scalairement sur une première trame et par interpolation sur les deux autres. Procédé selon la revendication 4, caractérisé en ce que le codage scalaire des coefficients de la troisième trame a lieu par application de l'algorithme "Backward Sequential Adaptative"'. 6 Procédé selon l'une quelconque des revendications 4 et , caractérisé en ce que le codage par interpolation sur les deux autres trames a lieu par recherche parmi trois interpola- tions possibles celle qui présente l'erreur de quantification minimum. 7 Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce que le codage de la période fondamentale (pitch) et du voisement ont lieu sur trois trames consécuti- ves et a lieu par adressage direct d'une table de codage par la valeur du (pitch) lorsqu'il existe au moins un son non voisé dans une trame et par codage d'une valeur de pitch obtenue par transformation vectorielle des valeurs de "pitch existant sur les trois trames lorsque le son est voisé sur les trois trames, dans cette transformation le vecteur composé des trois valeurs des pitchs des trois trames est projeté sur les trois premiers vecteurs propres d'une matrice d'intercorrélation et les trois valeurs des trois projections sont codés. 8 Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce que le codage de l'énergie est effectué sur 4 sous trames dans chaque trame. 9 Dispositif pour la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 8, caractérisé en ce qu'il comprend une structure microprogrammée composé d'une mé- moire morte 34 et d'une mémoire vive 35 reliées a un microproces- seur de traitement du signal 29, le microprocesseur 29 étant relié d'une part, à un convertisseur analogique numérique 31 pour convertir le signal de parole en échantillons numériques et d'autre part à un convertisseur numérique analogique pour con- vertir les échantillons de parole formés par le microprocesseur en signaux analogiques pour exciter un dispositif 38 de restitu- tion du son ainsi qu'à ligne de donnée extérieure 37 pour un circuit d'interface 36.