Domaine technique
[0001] La présente invention concerne un dispositif de codage et de décodage numériques
de la parole, un procédé d'exploration d'un dictionnaire pseudo-logarithmique de délais
LTP, et un procédé d'analyse LTP.
Etat de la technique antérieure
[0002] De manière connue, un dispositif de codage numérique de la parole consiste, après
échantillonnage du signal analogique, à effectuer la compression des données binaires
du signal de parole numérisé. Le dispositif de décodage effectue l'opération inverse
et restitue un signal analogique différent du signal original, mais le plus voisin
possible d'un point de vue perceptuel.
[0003] Un dispositif de codage-décodage numérique de la parole est caractérisé par le débit
numérique des données à transmettre entre le codeur et le décodeur, la qualité du
signal reconstitué au décodeur, et la complexité de la technique de compression mise
en oeuvre.
[0004] Les codeurs prédictifs sont utilisés pour des débits assez faibles (de 4 à 16 kbits/s
pour une fréquence d'échantillonnage de 8 kHz) et une bonne qualité de codage.
[0005] Ils intègrent des propriétés du signal de parole liées à sa production et d'autres
liées à sa perception par un auditeur humain:
- Stationnarité locale du signal de parole: le signal de parole peut être prédit à
partir de son passé récent (de 8 à 12 échantillons à 8 kHz) au moyen de paramètres
évalués sur des fenêtres de 10 à 20 ms. Ces paramètres de prédiction à court terme,
représentatifs de la fonction de transfert du conduit vocal, sont obtenus par des
méthodes d'analyse "LPC" (Linear Prédiction Coding).
- Périodicité des sons voisés (par exemple: les voyelles): cette corrélation à plus
long terme est due à la vibration des cordes vocales. La cadence de vibration (fréquence
fondamentale) varie de 60 à 400 Hz selon les locuteurs. Une analyse "LTP" (Long Term
Prediction) permet d'évaluer les paramètres d'un prédicteur à long terme exploitant
cette particularité.
- Masquage du bruit par le signal: dans les fréquences voisines d'un maximum d'énergie
du signal, l'oreille est moins sensible au bruit de codage. Cette propriété est exploitée
par l'introduction d'un "filtre perceptuel" au codage de l'onde résiduelle issue des
prédicteurs à court et long terme, et éventuellement à l'analyse LTP. Ce filtre permet
de redistribuer le bruit dans les zones fréquentielles où il est masqué par le signal.
[0006] De manière classique, un codeur prédictif est composé d'un module de prédiction à
court terme, un module de prédiction à long terme, puis un module effectuant le codage
de l'onde résiduelle à l'aide d'une méthode d'analyse par synthèse, ainsi que décrit
dans l'article de P. Kroon et B.S. Atal intitulé "Predictive Coding of Speech Using
Analysis by Synthesis Techniques" (Advances in Speech Signal Processing, Ed. Furui
S., Sondhi M.M., pages 141-164, 1991).
[0007] Selon le type de codage de l'onde résiduelle, on distingue plusieurs familles de
codeurs: codeurs APC, Multipulse-Excited, CELP, ..., comme décrit dans l'article de
P. Kroon et B.S. Atal.
[0008] Ce type de dispositif de codage est largement utilisé, essentiellement dans des systèmes
de transmission par voie terrestre ou satellite, ou dans des applications de stockage.
[0009] Différentes réalisations du module de prédiction à long terme ou module LTP, connues
de l'homme de l'art, vont être passées en revue à présent.
[0010] La forme générale d'un prédicteur à long terme d'ordre p est:

[0011] Le nombre p de coefficients de ce prédicteur varie généralement de 1 à 3. Si on considère
le cas des prédicteurs du 1er ordre : P(Z)=1-pz-
1.
[0012] A l'analyse, les paramètres p et λ sont déterminés par minimisation de l'énergie
d'un signal d'erreur e(n) sur un bloc de N échantillons du signal x(n) :

x(n) représente le signal d'entrée lui-même s(n) ou le résidu LPC r(n). Cette analyse
dite "en boucle ouverte" est décrite dans l'article de B.S. Atal intitulé "Predictive
Coding of Speech at Low Bit Rates" (IEEE Trans. Commun., COM-30, pages 600-614, avril
1982).
[0013] Ce type d'analyse peut être avantageusement remplacé par une analyse en boucle fermée,
anticipant l'opération effectuée au décodeur pour produire le signal de ynthèse (n).
[0014] A la synthèse on obtient:

(avec u(n) = signal d'excitation)
[0015] Si é (z) = 1 P(z)·u(z), alors é (n)=u(n)+β (n-λ) représente le signal résiduel reconstruit,
ou excitation de synthèse du filtre LPC 1/A(z)
[0016] La modélisation du résidu r(n) par le signal (n) s'améliore lorsque l'on remplace
le signal d'erreur e(n) de l'équation (1) par:

comme par exemple le codeur "RPELTP" décrit dans l'article de P. Vary, K. Hellwig,
C. Galand, M. Rosso, JP. Petit, D. Massaloux intitulé "Speech Codec for the European
Mobile Radio System" (Globecom, pages 1065-1069, 1986).
[0017] Le prédicteur à long terme décrit dans l'article de W.B.Kleijn, D.J. Krasinski et
R.H. Ketchum intitulé "An Efficient Stochastically Excited Linear Predictive Coding
Algorithm for High Quality Low Bit Rate Transmission of Speech" (Speech Commun., vol
VII, pages 305-316, 1988) adopte une philosophie "CELP" pour une analyse LTP effectuée
également en boucle fermée. A chaque période est associée une forme d'onde u
λ = (n-λ), n = 0 → N-1 dans un dictionnaire CELP. Ce dictionnaire mis à jour à chaque
analyse LTP, est appelé "dictionnaire adaptif'. L'analyse LTP est remplacée par la
recherche du code optimal dans le dictionnaire adaptatif, résolue par les équations
classiques du CELP, ce qui revient à remplacer e(n) dans l'équation (1) et l'équation
(2) par:

avec hg(n)=r.i. du filtre perceptuel Hg(z) = A
γ1(z) A
γ2(z)A(z)) (lorsque l'on choisit γ
1 = 1, γ
2 = g, Hg(z) = 1 A
g(z)
[0018] Le signal t(n) ("target") s'exprime à partir du résidu LPC r(n) et du signal
p (n) obtenu en prolongeant l'excitation passée (n) par des échantillons nuls :

[0019] On obtient alors pour e(n) l'expression :

essentiellement différente de l'équation (2) par l'introduction du filtre perceptuel
et de sa mémoire.
[0020] D'autre part, les analyses en boucle fermée utilisent le signal (n) qui n'est connu,
au début du bloc analysé, que pour n < 0, ce qui impose de restreindre l'analyse LTP
aux valeurs λ ≧ N. Cette restriction diminue l'efficacité d'un prédicteur à long terme
sur les voix à fréquence fondamentale élevée (voix de femmes et d'enfants). On peut
y remédier en extrapolant le signal (n) pour n≧0. Dans l'article de W.B. Kleijn,
D.J. Krasinski et R.H. Ketchum cité précédemment, on utilise la périodicité supposée
du signal pour chaque période candidate λ en remplaçant (n),n≧0 par (n - λ) si n
< λ (ou (n*kλ) avec k = plus petit entier pour lequel n < kλ). Cependant, pour chaque
période λ < N, il faut compléter avec N - λ valeurs, ce qui accroît la complexité
de l'analyse LTP.
[0021] Un certain nombre d'algorithmes rapides décrits dans l'article de W.B. Kleijn, D.J.
Krasinski et R.H. Ketchum intitulé "Fast Methods for the CELP Speech Coding Algorithm",
(IEEE Trans. on ASSP, vol. 38, No 8, pages 1330-1341, Août 1990) ont été conçus pour
accélérer les calculs dans le prédicteur à long terme, principalement dans le cadre
de l'analyse par dictionnaire adaptatif, fondamentalement plus complexe. Ces algorithmes
sont généralement perturbés par l'introduction d'éléments extrapolés de (n).
[0022] Un dernier point concerne la précision du prédicteur à long terme: pour un prédicteur
d'ordre 1 avec délais λ entiers, la périodicité T recherchée est limitée aux multiples
de la période d'échantillonnage T
e. Deux méthodes ont été proposées permettant d'améliorer la précision sur T:
- augmenter l'ordre du prédicteur, ce qui bien sûr augmente la complexité de l'analyse,
mais augmente aussi le nombre des gains à coder;
- utiliser un prédicteur à "haute résolution temporelle", comme décrit dans l'article
de P. Kroon et B.S. Atal intitulé "Pitch Predictors with High Temporal Resolution"
(Proc. ICASSP, pages 661-664, avril 1990). Cette technique fait intervenir des délais
fractionnaires du type λ+ϕ/D avec λ ∈ N, ϕ = 0, 1, ..., D-1, par interpolation du
signal passé analysé. L'interpolation est effectuée par suréchantillonnage suivi d'un
filtrage passe-bas. Cette opération peut être efficacement mise en place au moyen
d'une structure polyphasée, telle que décrite dans l'article de R.E. Crochiere et
L.R. Rabiner intitulé "Interpolation and De- cimation of Digital Signais: A Tutorial
Review" ("Proc. of the IEEE" vol. 69, No 3, mars 1981).
[0023] Le problème de la réunion des techniques d'extrapolation du signal é (n) et de prédiction
à haute résolution temporelle est résolu par un processus récursif coûteux en complexité
décrit dans la demande de brevet WO 91:03790 de I.A. Gerson, M.A. Jasiuk intitulée
"Digital Speech Coder Having Improved Sub-Sample Resolution Long Term Predictor":
pour chaque période fractionnaire λ+ϕ/D, les échantillons (n), n≧0 inconnus sont
remplacés récursivement par des échantillons issus d'une interpolation du signal passé
(n), n<0.
[0024] L'invention a pour objet un dispositif numérique de codage et de décodage de la parole
dans lequel on améliore le fonctionnement du module de prédiction à long terme tel
que défini dans ces différents documents de l'art antérieur.
Exposé de l'invention
[0025] L'invention propose, à cet effet, un dispositif de codage et de décodage numériques
de la parole comprenant, au codage: un module d'analyse LPC (prédiction à court terme),
un module d'analyse LTP (prédiction à long terme), un module de codage de l'onde résiduelle
utilisant une méthode d'analyse par synthèse; au décodage: un module de décodage de
l'onde résiduelle, un module de synthèse LTP et un module de synthèse LPC; caractérisé
en ce que le module d'analyse LTP utilise un dictionnaire de délais à structure pseudo
logarithmique dans lequel les délais sont rangés en ordre croissant; ce dictionnaire
étant constitué de Q segments adjacents, chacun d'une résolution donnée, les résolutions
des segments successifs diminuant géométriquement dans un rapport k rationnel tel
que k > 1 tandis que le nombre d'éléments L de chaque segment reste constant.
[0026] L'intérêt de ces précisions emboîtées est de maintenir à peu près constante la précision
relative sur le délai, et de là l'erreur sur la périodicité du signal due à l'échantillonnage.
L'invention permet de plus d'obtenir un codage simple et efficace du délai.
[0027] Les résolutions des délais dans les différents segments du dictionnaire pseudo-logarithmique
sont des rationnels R = p/q, p ∈ N, q ∈ N (N: ensemble des entiers naturels).
[0028] On a pour cela étendu les méthodes d'analyse à haute résolution temporelle évoquées
(délais λ=λ
1/R avec λ
1, ∈ N, R ∈ N) au cas des résolutions fractionnaires (délais λ = λ
1× qlp, λ
1,q,p ∈N).
[0029] Avantageusement dans une première variante, le dictionnaire des délais est découpé
en Q segments adjacents S,{i = 0 → Q - 1) comprenant chacun L délais. A chaque segment
Si correspond une résolution R
i, les résolutions des segments successifs décroissant dans un rapport k rationnel
donné (R
i= R
i-1/k). Si l'on appelle γ
i le dernier délai du segment S
i, ce segment est formé des L délais λ
i=γ
i-j/R
i, j=L-1→0 avec λ
j.R
i, entiers. La condition d'adjacence entre segments est assurée par γ
i-1 = γ
i- L/R
i,i = 1 → Q-1. Si l'on introduit λ
max = dernier délai du dictionnaire et R
Q-1= résolution du dernier segment, on montre qu'un tel dictionnaire est entièrement
défini par la donnée des valeurs {Q,L,k,λ
max,R
Q-1} et la condition R
Q-1.λ
max∈N.
[0030] Dans une seconde variante , le dictionnaire des délais est découpé en Q segments
adjacents S,{i = 0 → Q - 1) comprenant chacun L délais. A chaque segment Si correspond
une résolution R
i, les résolutions des segments successifs décroissant dans un rapport k rationnel
donné (R
i = R
i-1/k). Si l'on appelle β
i le premier délai du segment S
i, ce segment est formé des L délais: λ
j = β
i+jlR
i,j=0→L-1 avec λ
j.R
i entiers. La condition d'adjacence entre segments est assurée par β
i = β
i-1 + L/R
i-i i = 1 → Q - 1. Si l'on introduit β
Q-1 = 1 er délai du dernier segment et R
Q-1= résolution du dernier segment, on montre qu'un tel dictionnaire est entièrement
défini par la donnée des valeurs {Q,L,k,β
Q-1,R
Q-1} et la condition R
Q-1.β
Q-1 ∈N.
[0032] Avantageusement, une réalisation particulière de dictionnaire pseudo-logarithmique
de délais tel que définis ci-dessus est le dictionnaire D, formé de délais fractionnaires,
de résolution R = p > 1, ou entiers, que l'on peut décrire de la façon suivante: chaque
segment S
i,i = 0 → 3 de résolution R
1 = 2
3- est formé des délais λ
0- ϕ/R
i,ϕ = 0 → R
i -1, les délais λ
0 entiers formant un sous-ensemble S
0i de Si comportant ni = 2
i+3 éléments:

[0033] Avantageusement, une procédure sous-optimale efficace d'exploration d'un dictionnaire
pseudo-logarithmique des délais tel que défini dans la première ou la second variante
de l'invention, tirant parti de sa structure particulière, permet de réduire considérablement
la complexité de la recherche du meilleur délai :
- dans une première passe, on sélectionne K(i) maxima locaux du critère à maximiser
parmi un ensemble restreint de α(i) délais de chaque segment Si;
- dans une seconde passe, on explore le dictionnaire de manière limitée au voisinage
des valeurs sélectionnées dans la première passe.
[0034] Avantageusement la taille des segments L est un multiple de K
iL-
1, le choix pour α(0) de L/
Kl
L-1 ou d'un sous-multiple de L/
KlL-1, introduisant un espacement régulier des délais explorés dans la première passe.
[0035] Avantageusement, on introduit une simplification supplémentaire à la recherche de
la première passe en remplaçant la maximisation de E'(λ) = N(λ)
2 /D(λ),où N(λ) et D(λ) représentent respectivement le numérateur et le dénominateur
du gain optimal associé à chaque délai λ, par celle de N(λ): on calcule donc les maxima
locaux de l'intercorrélation N(λ), pour tous les segments i = 0 → Q - 1, dans la première
passe.
[0036] L'invention propose également un procédé d'analyse LTP en boucle fermée avec filtrage
perceptuel de performances équivalentes à l'analyse LTP par dictionnaire adaptatif
et de complexité moindre, reposant sur l'expression suivante du signal d'erreur dont
on minimise l'énergie:

les points précédant le sous-bloc courant (tels que n<0 si le sous-bloc courant commence
à n=0) étant les points (n-λ) (λ éventuellement fractionnaire, éventuellement extrapolé),
et non (n), comme dans le cas du dictionnaire adaptatif.
[0037] La présente invention permet ainsi de définir une structure sur l'ensemble des délais
explorés dans le module de prédiction à long terme, l'ensemble de délais ainsi structuré
étant dénommé dans l'invention "dictionnaire pseudo-logarithmique de délais LTP".
Il est connu que maintenir une grande précision sur les délais LTP, lorsque ces délais
augmentent, est inutile d'un point de vue perceptuel. Le dictionnaire pseudo-logarithmique
de l'invention exploite cette idée et permet de maintenir les performances de dictionnaires
uniformes pour un débit moindre: à titre d'exemple, on a pu constater que les performances
du dictionnaire D, composé de 256 éléments, étaient similaires à celles de l'ensemble
des 960 délais obtenus en échantillonnant uniformément la même gamme de délais avec
une précision de 1/8, ce qui représente un gain de plus de 20 % en débit.
[0038] La structure pseudo-logarithmique, outre qu'elle organise le concept précédemment
énoncé, permet également d'établir une correspondance simple entre l'indice de chaque
délai du dictionnaire pseudo-logarithmique et sa valeur, facilitant les opérations
de codage et décodage du délai. Aucun stockage n'est nécessaire pour trouver les délais
dans le dictionnaire.
[0039] Cette structure facilite de plus la conception d'un tel dictionnaire: un tel dictionnaire
est en effet totalement défini par la donnée de quelques paramètres. Pour une application
donnée, le choix de ces paramètres est gouverné par les contraintes de l'application.
Il est alors simple de déterminer le ou les dictionnaire(s) pseudo-logarithmique(s)
convenant à cette application.
[0040] La présente invention décrit en outre un procédé très peu complexe permettant la
mise en place d'un module d'exploration d'un tel dictionnaire. Bien que sous optimale,
une telle technique a montré des performances équivalentes à la recherche optimale.
La réduction de complexité obtenue avec ce procédé est importante. Si l'on compare
les temps de calcul dans un codeur de type CELP des deux techniques suivantes:
- technique de référence : analyse LTP par "codebook" adaptatif avec sélection du
délai optimal par méthode d'autocorrélation comme définie dans l'article de messieurs
Kleijn, Krasinski et Ketchum, intitulé "Fast Methods for the CELP Speech Coding Algorithm",
cité plus haut;
- technique proposée dans l'invention: analyse LTP du type présenté selon la procédure
sous optimale.
[0041] Bien que ne produisant pas les mêmes résultats, ces deux techniques ont été jugées
d'une qualité subjective équivalente.
[0042] Sur un micro-ordinateur, le traitement du module LTP utilisant la technique proposée
dans l'invention est trois fois plus rapide que celui du module utilisant une version
optimisée de la technique de référence. Cette version optimisée exploite au maximum
les méthodes permettant de diminuer la complexité de la technique de référence: si
l'on compare les temps de calcul de la version non optimisée de la technique de référence
à ceux de la technique proposée, on obtient un gain supérieur à 11.
Brève description des dessins
[0043]
- Les figures 1Aet 1 B représentent le dispositif de codage et le dispositif de décodage
de la parole selon l'invention; -la figure 2 représente une réalisation particulièrement
intéressante du dispositif de codage représenté à la figure 1A ;
- la figure 3 illustre le fonctionnement d'un dictionnaire pseudo-logarithmique de
délais ;
- la figure 4 illustre la procédure de calcul du signal x(n-λ), λ rationnel intervenant
dans le module LTP ;
- la figure 5 montre, sur une séquence de parole réelle, l'évolution du critère E'(2,)
lorsque parcourt le dictionnaire D ;
- la figure 6 détaille le dictionnaire D ;
- la figure 7 présente une procédure de codage et décodage des délais du dictionnaire
D ;
la figure 8 décrit les modules de calcul du signal w (n-λ) intervenant dans la recherche du délai optimal de D;
- les figures 9 à 12 montrent le fonctionnement de cette recherche du délai dans le
cadre de la réalisation du module LTP.
Exposé détaillé des modes de réalisation
[0044] La présente invention concerne un dispositif numérique de codage de la parole de
type codeur prédictif utilisant une prédiction à court terme du signal permettant
la modélisation des formants, une prédiction à long terme destinée à restituer la
structure fine du spectre, puis un codage de l'onde résiduelle à l'aide d'une méthode
d'analyse par synthèse; une description générale de ce type de codeurs étant réalisée
dans l'article de messieurs Kroon et Atal cité précédemment. Les prédicteurs à court
terme et à long terme sont calculés par des méthodes de prédiction linéaire connues
sous le nom d'analyse LPC ("Linear Prediction Coding") et analyse LTP ("Long Term
Prédiction")
[0045] Les figures 1Aet 1 B représentent un dispositif numérique de codage et un dispositif
numérique de décodage de la parole faisant l'objet de la présente invention. Le dispositif
de codage comprend successivement:
- un capteur 10;
- un filtre 11 ;
- un convertisseur analogique/numérique 12 ;
- un module LPC 13;
- un module de codage de résidu ou CODRES 14 ;
- un module LTP 15 recevant en entrée le signal d'entrée ou le signal de sortie du
module LPC 13: x(n) = s(n) ou r(n), et éventuellement le signal é (n), résiduel reconstruit
issu du module CODRES 14.
[0046] Ce dispositif de codage fonctionne de la manière suivante:
[0047] Le signal analogique, après conversion en numérique, est segmenté en trames de N
o échantillons s(n). Ces échantillons sont analysés dans le module LPC 13 par une méthode
classique de prédiction linéaire. Ce module 13 produit en sortie des paramètres PLPC
transmis au décodeur et N
o échantillons de signal résiduel r(n).
[0048] Ensuite, le module LTP 15 accepte en entrée N échantillons d'un signal x(n) qui peut
provenir d'une sous- segmentation du signal s(n) lui-même ou bien de r(n). Lorsque
le module LPT 15 fonctionne en boucle fermée, il doit recevoir également en entrée
des échantillons de résiduel reconstruit (ou "excitation de synthèse") issus par bouclage
du module de codage de résidu 14. Le module LTP peut éventuellement utiliser aussi
les paramètres PLPC (dictionnaire adaptatif, filtre perceptuel). Ce module 15 produit
les paramètres de sortie PLTP (gain quantifié β et indice i
d du délai) et élabore un signal de prédiction à long terme p(n).
[0049] Ensuite, le module de codage de résidu 14 effectue le codage de l'excitation résiduelle.
Les paramètres de codage de cette excitation sont transmis au décodeur. Lorsque nécessaire,
ce module 14 comprend un décodeur local permettant le calcul de l'excitation de synthèse
(ou résiduel reconstruit) (n) .
[0050] La figure 1 B présente le schéma du dispositif de décodage correspondant au dispositif
de codage représenté sur la figure 1A. Ce dispositif de décodage comprend successivement:
- un module de démultiplexage 20;
- un module de décodage de résidu ou CODRES-1 21;
- un module de synthèse LTP (ou LTP-1) 22;
- un module de synthèse LPC (ou LPC-1) 23;
- un convertisseur numérique analogique 24;
- un filtre 25;
- un haut-parleur 26.
[0051] Le module de décodage de résidu 21 effectue le décodage des paramètres P
CODRES et calcule N échantillons d'un signal u(n). Ce signal entre dans le module 22 conjointement
avec les paramètres P
LTP qui y seront décodés. Après filtrage de u(n) par 1/P(z), on obtient (n).
[0052] Ce signal entre alors dans le module 23 qui effectue le décodage des paramètres P
LPC et le filtrage de (n) par 1/A(z). Ce module 23 produit en sortie les N
o échantillons du signal de synthèse (n), pour une trame, qui sont convertis en analogique.
[0053] Diverses réalisations du dispositif de l'invention étant possibles, on va considérer
présent une réalisation particulièrement intéressante à titre d'exemple.
[0054] Cette réalisation représentée à la figure 2, donnée à titre d'exemple, a les particularités
suivantes:
- l'analyse LTP (module 13), qui sera décrite plus en détail ultérieurement, est une
analyse en boucle fermée, utilisant les signaux r(n) et (n) en entrée, avec un filtre
perceptuel calculé à partir des paramètres PLPC fournis par le module LPC;
- codage de l'excitation résiduelle: les signaux r(n), p(n) et (n) entrent dans un
module 14 de type CELP qui utilise une procédure classique de recherche dans un dictionnaire
CELP pour quantifier le signal résiduel tel que décrit dans l'article de B.S. Atal
cité précédemment. Un tel dictionnaire est formé par exemple de NF formes d'ondes
aléatoires de statistiques gaussiennes. Les paramètres PLPC entrant dans le module CELP 14' permettent de calculer le filtre perceptuel W(z)
= A(z)lAγ(z),(γ= 0.75).
[0055] Après sélection de la meilleure forme d'onde du dictionnaire, le module 14' produit
les paramètres PCELP (gain quantifié et indice i
c de la forme d'onde), et le signal résiduel reconstruit (n) = p(n) + γu
ic(n).
[0056] Pour une fréquence d'échantillonnage de 8kHz, la présente réalisation du dispositif
effectue un codage du signal de parole au débit de 8 kbit/s, avec les caractéristiques
suivantes:
Trame LPC : 24 ms (N = 192)
Sous trames : 4 ms (No = 32)
Débit LPC : 42 bits / trame (ordre 10)
Débit LTP : id:8 bits 11 x 6 bits / trame β: 3 bits
Excitation facteur d'échelle: 6 bits l trame indice CELP ic: 10bits gain γ : 3bits 13 × 6 bits trame (NF = 1024)
[0057] La présente invention se situe au niveau du module LTP dont le fonctionnement va
être décrit à présent.
[0058] Le module d'analyse LTP de l'invention repose sur l'exploration d'un dictionnaire
de délais de type pseudo-logarithmique.
[0059] Un module d'analyse LTP d'ordre 1, quel que soit le type d'analyse, calcule le délai
du prédicteur P(z) qui minimise un certain critère d'erreur. La présente invention
regroupe l'ensemble des délais explorés en un dictionnaire présentant une structure
pseudo-logarithmique. Ces délais λ sont des nombres rationnels, rangés en ordre croissant
dans le dictionnaire .
[0060] Le dictionnaire est découpé en Q segments adjacents S
i(i =0→,Q-1) comprenant chacun L délais. Acha- que segment Si correspond une résolution
R
i, et si on appelle γ
i le dernier délai du segment Si, le segment Si est formé de la façon suivante, comme
représenté sur les figures 3A et 3B:

[0061] Le délai γ
i peut éventuellement être fractionnaire mais les délais λ
j, doivent vérifier λ
j,R
i entier
i,
j' donc pour chaque segment S
i, il faut et il suffit que γ
i.R
i soit entier.
[0062] Les résolutions des segments successifs décroissent dans un rapport k rationnel donné:

[0063] La condition d'adjacente entre segments (figure 3B) est assurée par:

[0064] Si l'on appelle λ
max le dernier délai du dictionnaire (λ
max = λ
Q-1), on montre que la condition γ
i.R
i ∈N est réalisée pour tout i=0 à Q-1 si et seulement si :

[0065] Le dictionnaire est alors totalement défini par la donnée des valeurs {Q=nombre de
segments, L=taille des segments, k=facteur de décroissance des résolutions, λ
max=dernier délai du dictionnaire, R
Q-1 = = résolution du dernier segment telle que l'équation (7) soit vérifiée}
[0066] On peut alors calculer λ
min (premier délai du dictionnaire) par la formule :

[0067] et si on définit la longueur I
i des segments Si comme I
i = γ
i-γ
i-1, on a alors (figure 3B):

[0068] La structure pseudo-logarithmique en base k du dictionnaire de délais apparaît dans
les équations (5) et (8).
[0069] On peut construire un dictionnaire du même type en s'appuyant sur les premiers délais
β
i de chaque segment:

[0070] et en définissant la condition d'adjacence par (figure 3C) :

[0071] Il faut alors remplacer la donnée de λ
max par celle de β
Q-1 = premier délai du dernier segment, et la condition (7) par:

[0072] Bien que légèrement différent, ce dictionnaire est totalement équivalent à celui
décrit en figure 3B.
[0073] Ces dictionnaires pseudo-logarithmiques de délais permettent un codage du délai simple
et peu coûteux en stockage, du type :
code (λj)=L.i+j',
avec (λj=γi-j/Ri)∈Si (voir equation(4)) et j'= L-1-j
[0074] pour un dictionnaire défini par les équations (4), (6) et (7).
[0075] Un codage du même type est réalisable pour un dictionnaire défini par les équations
(4'), (6') et (7').
[0076] On va considérer ci-dessous un exemple donné de dictionnaire qui sera repris dans
la suite de la description. Il constitue une réalisation particulièrement intéressante
de la présente invention.
[0077] D=dictionnaire à 256 délais (8 bits) tel que:

[0078] Tous les types d'analyse LTP utilisent un critère à minimiser qui fait intervenir
un signal x(n-λ) pour un certain délai λ et n=0 à N-1 (en boucle ouverte, x(n) représente
s(n) ou r(n), et en boucle fermée (n)).
[0079] On va tout d'abord définir ce signal x(n-λ) dans le cas particulier où le délai λ
est un rationnel:
En effet lorsque λ appartient au dictionnaire défini précédemment, il est de la forme
λ=λ1/R tel que ;λ1 ∈N, R rationnel. R (résolution du segment qui contient λ) est un rationnel a priori
quelconque, du type R=plq, p∈N et q∈N.
[0080] On définit x(n-λ), n = 0→N - 1 en étendant la technique décrite par P. Kroon au cas
d'une résolution R= p/q rationnelle. On passe du signal x(n) au signal y(n) de résolution
multipliée par x(plq) à l'aide de méthodes classiques d'interpolation de signal comme
décrit dans l'article de messieurs Crochière et Rabiner cité plus haut.
[0081] Comme montré à la figure 4, le signal x(n) est d'abord suréchantillonné d'un facteur
p dans un suréchan- tillonneur 30, produisant un signal x'(n) qui entre dans un filtre
H(z) passe-bas 31 dont la fréquence de coupure est inférieure à f
max/Max(p,q)(f
max=f
etchant/2). Le signal x"(n) issu de ce filtrage est ensuite sous-échantillonné d'un facteur
q, dans un sous-échantillonneur 32 pour donner y(n).
[0082] On a donc:

si

[0083] On peut aussi exprimer x"(n) par

si

[0084] (On considère la notation E(x)=partie entière de x)
[0085] Pour un délai λ= λ
1/R avec λ
1 ∈N, on définit x(n - λ) par:

Alors

[0086] On voit qu'il est intéressant de calculer à partir de (λ
1q) les valeurs λ
0∈N et ϕ∈{0,1,.....,p-1} telles que λ
1q=λ
0P-ϕ:

[La notation q=mod (p,n) signifie q= reste de p modulo n]
[0087] Alors :

[0088] En pratique, on choisit par exemple pour H(z) un sinus cardinal fenêtré et échantillonné
d'un facteur Max(p,q). Les p filtres {h
ϕ(j),j=-I/p→Ilp}, ϕ=0→p-1 sont les filtres polyphasés construits à partir de H(z).
[0089] Lorsque p > q, on a alors h
o défini par {ho(0)= 1, et h
0(j)=0 si j≠0} et donc pour les valeurs de λ entières on trouve pour x(n - λ) le signal
x(n) décalé de λ points.
[0090] Pour q = 1, on retrouve l'expression donnée précédemment dans le cadre de l'analyse
LTP a haute résolution.
[0091] On décrit ci-dessous le procédé de recherche du délai optimum dans le dictionnaire
pseudo-logarithmique défini dans la présente invention.
[0092] Quel que soit le type d'analyse LTP, la recherche du délai optimal revient à minimiser
un critère:

[0093] Si l'on définit de façon générale e(n) comme : e(n) = v(n) - βx(n-λ), v(n) étant
un signal connu indépendant de λ et x(n-λ) défini pour chaque délai λ candidat, les
expressions de ces deux signaux dépendant du type d'analyse utilisé, alors la minimisation
de E(λ) revient à maximiser:

[0094] La recherche du délai optimum nécessite le calcul, pour chaque délai λ. les deux
quantités : 2

(n).
[0095] N(λ) et D(λ) représentent respectivement le numérateur et le dénominateur du gain
optimum β associé à chaque délai λ. Ces deux quantités interviennent dans E'(λ). Par
exemple,lorsque β n'est pas quantifié en boucle, on a E'(λ)=N(λ)
2/D(λ).
[0096] Dans tous les cas, l'évaluation de E'(λ) pour chaque délai λ est un processus nécessitant
de nombreux calculs, en particulier lorsque l'on utilise des délais non entiers, et
dans le cas d'analyses en boucle fermée, dès que l'on doit extrapoler le signal (n).
[0097] Diverses méthodes ont été proposées pour réduire la complexité de cette recherche:
- Analyse LTP à haute résolution : calcul des critères E'(λ0) tels que λ0 ∈N et interpolation des critères comme décrit dans l'article de P. Kroon et B.S.
Atal cité précédemment. Cette méthode est une méthode approchée et reste relativement
complexe.
- Dictionnaire adaptatif: prolongement de la sommation dans E'(λ) pour utiliser une
méthode d'autocorré- lation telle que définie dans l'article de A. Le Guyader, D.
Massaloux and J.P. Petit intitulé "Robust and Fast Code Excited Linear Predictive
Coding of Speech Signals" (Proc. ICASSP, pages 120-123, Mai 1989), "Backward Filtering"
pour le calcul des numérateurs tel que défini dans l'article de I.M. Trancoso et B.S.
Atal intitulé "Efficient Procedures for Finding the Optimum Innovation in Stochastic
Coders" (Proc. ICASSP, pages 2375-2378, avril 1986), récurrence dans le calcul des
dénominateurs, comme décrit dans l'article de W.B. Kleijn, D.J. Krasinski et R.H.
Ketchum intitulé "An Efficient Stochastically Excited Linear Predictive Coding Algorithm
for High Quality Low Bit Rate Transmission of Speech" cité précédemment. Ces procédures
sont cependant perturbées par l'introduction de signaux ((n) extrapolés et se compliquent avec l'usage de délais fractionnaires.
[0098] Il est donc intéressant de simplifier encore cette procédure de recherche, et dans
le cadre du dictionnaire de délais de l'invention, de s'appuyer pour cela sur sa structure
particulière.
[0099] Si l'on étudie l'évolution du critère E'(λ) pour λ variant dans un dictionnaire de
délais de l'invention tel que défini précédemment, on constate que la courbe

présente elle-même une structure pseudo-logarithmique et que ses maxima en sont relativement
amortis: à titre d'exemple, la figure 5 montre l'évolution de E'n(λ) pour λ e dictionnaire
D, sur une trame voisée d'un échantillon de parole. Cette étude suggère le fractionnement
de la recherche en deux passes:
- dans une première passe : dans chaque segment Si, calcul du critère sur un nombre
restreint α(i) de délais tel que Vi = 1→Q - 1, α(i) = ka(i-1). Sélection d'un certain
nombre K(i) de maxima locaux pour chaque segment ;
- dans une seconde passe : exploration limitée au voisinage des extrema locaux sélectionnés
dans la première passe, pour chaque segment.
[0100] Bien entendu, la progression α(i)= ka(i - 1) est limitée par L : si à partir de i
L on a α(i)≧L alors α(i)=L pour i≧i
L et la recherche sous-optimale en deux passes est remplacée par une recherche optimale
(en une seule passe) pour les segments i
L à Q-1.
[0101] Un cas est plus particulièrement intéressant: lorsque L est un multiple de k
iL-1. Alors le choix pour a(0) de LIK
iL-1 ou d'un sous-multiple de UK
iL-
1 introduit un espacement régulier des délais explorés dans la première passe. On montre
que ces délais forment alors l'ensemble:

le pas a étant égal à L/(R
0α(0)).
[0102] Dans le cas particulier du dictionnaire D introduit plus haut, cette technique d'exploration
en deux passes s'introduit de la manière suivante:
Pour ce dictionnaire L = 64, kQ-1 = 8, Ro = 8. Le choix a(0) = 8 permet d'explorer dans la première passe un sous-ensemble
DO de D constitué de délais régulièrement espacés de D avec un pas a = 1 On montre
que Yo = γ0min + 7 et que DO est en fait formé des 120 délais entiers consécutifs {λ0 = λ0minj,j = 0→119} extraits du dictionnaire D.
[0103] Il est possible d'introduire une simplification supplémentaire à la recherche de
la première passe. On remplace la maximisation de E'(λ)= N(λ)
2/D(λ) par celle de N(λ). La normalisation qu'apporte la division par D(λ) s'avère
généralement superflue dans cette première passe par essence plus grossière que la
recherche complète. On s'intéresse donc aux maxima locaux de l'intercorrélation N(λ),
pour tous les segments i = 0→Q - 1, dans la première passe.
[0104] La deuxième passe utilise par contre le critère complet E'(λ) et doit être effectuée
aussi sur tous les segments: même pour les segments i≧i
Ltq α(i)≧L, car il faut évaluer E'(λ) sur les extrema locaux de N(Â) sélectionnés dans
la première passe.
[0105] L'analyse LTP par dictionnaire adaptatif, très performante, est aussi très complexe,
du fait de la présence de la boucle fermée d'une part, et du filtre perceptuel d'autre
part. Une variante de cette analyse, diminuant la complexité intrinsèque du processus
sans en dégrader les performances subjectives est proposée ici: elle repose sur une
modification de l'expression (3) du signal d'erreur dont on minimise l'énergie (critère
E(λ) à minimiser).
[0106] On peut en effet conserver l'usage d'un filtre perceptuel sans souscrire entièrement
à la philosophie "CELP" du dictionnaire adaptatif, en prenant:

[0107] Dans cette expression, le signal (n-λ)(λ éventuellement fractionnaire, éventuellement
extrapolé) est continu au niveau de la frontière du sous-bloc: les points précédant
le sous-bloc courant (tq n = 0→N -1) sont les points ( (n-λ),n<0), et non ( (n),n
< 0), comme dans le cas du dictionnaire adaptatif.
[0108] L'intérêt de cette variante réside dans la possibilité de "préfiltrer" (
(n) : le filtre perceptuel variant à la fréquence trame LPC, plusieurs analyses LTP étant
pratiquées dans une trame LPC, un même échantillon filtré
w (n) = h
g(n)*
w (n) sert à plusieurs analyses LTP.
[0109] En ce qui concerne les délais fractionnaires, on utilise la commutabilité des filtres
linéaires et on applique le filtre d'interpolation aux échantillons préfiltrés
w (n) (ceci n'est toutefois pas applicable aux échantillons utilisant un signal (n)
extrapolé).
[0110] On va à présent décrire un exemple de réalisation particulièrement intéressant de
la présente invention: le dictionnaire D cité précédemment est d'abord présenté en
détail. L'exploration de ce dictionnaire est présentée avec la procédure accélérée
décrite dans le cadre de l'analyse LTP définie ci-dessus.
[0111] Le module LTP ainsi conçu est intégré à titre d'exemple au dispositif de codage présenté
plus haut.
[0112] Ce dictionnaire a été défini précédemment. Les délais y sont du type fractionnaire,
de résolution R= p>1, ou entiers. On peut décrire D de la façon suivante (figure 6):
chaque segment S
i,i = 0→3 de résolution R
i = 2
3- est formé des délais λ
0-ϕ/R
i,ϕ = 0→1, les délais λ
0, entiers formant un sous-ensemble S
0i de Si comportant ni
= 2i+3 éléments:

[0113] Un seul filtre d'interpolation H(z) est nécessaire pour l'ensemble du dictionnaire.
On prend en pratique: h(i)=w(i).sin(iπ/8).(8/iπ), i = -1 → 1, w(i) étant une fonction
de fenêtrage, et 1 étant un multiple de codage On définit les filtres:
hϕ(j) = h( - 1 + 8j + ϕ),j = 0→2J - 1 et ϕ = 1,2,...7.
[0114] Les algorithmes de codage et décodage des délais de ce dictionnaire D sont présentés
à la figure 7 et implantés de façon simple à l'aide de décalages et opérateurs logiques,
en utilisant la table des quatre valeurs µ
i (premier délai entier dans chaque segment). Le code décrit ici perturbe l'ordre naturel
des délais dans le dictionnaire sans que cela change quoi que ce soit à la description
qui précède.

[0115] On pose :

[0116] On a alors:
code λ = [iseg(2bits), λ'0(3 + iseg bits), ϕ'(3 - iseg bits)] = 8 bits L'analyse LTP utilise le critère modifié
calculé à partir de l'équation (10) et fait donc intervenir un signal w (n-λ)=hg(n) (n-λ), n = 0 → N - 1, λ, éventuellement fractionnaire.
[0117] On connaît les signaux (n) et
w (n) pour n < 0.
[0118] Selon les valeurs de λ, le calcul de
w (n-λ) fait intervenir l'un des quatre procédés suivants :
Délai λ = λ0, entier ≧N : module ETWO 40 (voir figure 8A) w (n-λ0) est connu.
Délai λ = λ0, entier < N: module ETW1 41 (voir figure 8B) si n < λ0, w (n-λ0) est connu si λ0 ≦ n<N: extrapolation de (n-λ0): (n-kλ0) avec k =plus petit entier avec n < kλ0, puis filtrage par Hg(z)
Délai λ=λ0 -ϕ/8 fractionnaire, λ0≧N+J : module ETW2 42 (voir figure 8C)

Délai λ =λ0 - ϕ/8 fractionnaire, λ0<N+J : module ETW3 43 (voir figure 8D) si n <λ0-J : w (n-λ) est calculé par l'équation (11) si λ0 - J≦n < N : é est complété récursivement par:

puis é (n)= (n-λ) pour n=1→(N-1-λ0+J) w (n-λ) est ensuite obtenu filtrant (n-λ) par Hg(z).
[0119] Dans ces modules ETWO, ETW1, ETW2, ETW3 représentés aux figures 8A, 8B, 8C et 8D,
on a:


[0120] La recherche s'effectue en deux passes suivant le principe décrit plus haut.
[0121] Ainsi que mentionné précédemment, le dictionnaire D a l'avantage de permettre (en
choisissant a(0) = 8) la coïncidence entre l'ensemble des délais explorés dans la
première et l'ensemble des délais entiers de D (c'est-à-dire

dans la description précédente). La première passe, effectuée uniquement sur les numérateurs
N(λ
0), est très rapide car elle ne fait intervenir aucune opération d'interpolation.
[0122] Le choix de λ
0min = N-8 est particulièrement intéressant car il restreint au premier segment de D la
nécessité d'extrapoler (n) dans la première passe.
[0123] Le module LTP donné ici à titre d'exemple s'intègre au dispositif présenté plus haut
comme réalisation particulièrement intéressante de la présente invention.
[0124] On prend :λ
0min=N-8=24 et J=2:H(z) est un FIR (filtre à réponse impulsionnelle finie) de longueur
33.
[0125] Le nombre K(i) de maxima locaux que l'on retient dans chaque segment Si lors de la
première passe de la recherche du délai est indiqué dans la table ci-dessous. Ces
valeurs résultent de l'observation sur un certain nombre d'échantillons de parole,
du nombre de maxima de N(λ
0) qu'il est nécessaire de retenir pour s'assurer de la présence du délai optimal dans
leur voisinage.

[0126] La procédure complète de recherche du délai dans D sur le présent exemple est décrite
dans la figure 9.
[0127] Les signaux resw(n),
w (n) et ê (n) entrent dans le module de recherche 45. On trouve en sortie de ce module
45 le délai A sélectionné et le critère E'(A) associé. Sur cette figure 9 on a la
notation suivante:
A, E'(A) : délai A cherché et critère associé
[A, E'(A)]* : A et E'(A) sont éventuellement mis à jour.
[0128] On rappelle λ
0min=N-8
[0129] Les modules P1 Si,i=0 à 3 référencés respectivement 46, 47, 48 et 49 effectuent la
première passe de la recherche sur les segments Si. Leur fonctionnement détaillé est
illustré par la figure 10. Ces modules produisent en sortie K(i),i=0 à 3 (1 ou 2)
valeurs de délais entiers λ
1, sélectionnés et les valeurs d'intercorrélation N(λ
1,) associées.
[0130] La deuxième passe de la recherche est décrite par les modules P2S
i,i = 0 à 3 référencés respectivement 50, 51, 52 et 53. En entrée de ces modules, outre
les signaux resw(n),
w (n) et é (n), on trouve les sorties des modules P1 Si correspondants. Chaque module
P2Si effectue la maximisation du critère E(A) et sort le délai A associé au critère
maximum.
[0131] Les figures 12A, 12B, 12C et 12D montrent le fonctionnement des modules P2Si, qui
utilisent les modules de sélection SEL
jj = 0 à 3 décrits respectivement par les figures 11A, 11 B, 11 Cet 11 D:
- SELO présente les calculs effectués pour un délai entier lorsqu'aucune extrapolation
de w (n) n'est nécessaire;
- SEL1 présente les calculs effectués pour un délai entier avec extrapolation de w (n) ;
- SEL2 présente les calculs effectués pour un délai fractionnaire lorsqu'aucune extrapolation
de w (n) n'est nécessaire;
- SEL3 présente les calculs effectués pour un délai fractionnaire avec extrapolation
de w (n).
[0132] Les modules PS 55 calculent le produit scalaire

[0133] Les modules NORM 56 calculent l'énergie

[0134] Les modules COMP 57 calculent E'(λ) et sélectionnent A=λ, si e'(λ)>E'(A)
[0135] La valeur de délai A issue de la deuxième passe est le délai sélectionné par le module
de recherche dans le dictionnaire D.