[0001] La présente invention concerne un procédé et un dispositif de codage bas débit de
la parole.
[0002] Elle s'applique notamment à la réalisation de vocodeurs pour les liaisons radio HF,
ou de ceux utilisés pour la messagerie vocale.
[0003] Dans ces domaines, le volume d'informations à transmettre se heurte de plus en plus
aux limites technologiques des équipements susceptibles de véhiculer la parole. Ainsi
pour des transmissions dont le débit est inférieur à 2400 bits par seconde, 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 vocodeurs 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 dictionnaire. Cependant
cette technique qui est à la fois très compliquée et coûteuse à mettre en oeuvre ne
permet pas d'obtenir 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.
[0004] Le but de l'invention est de pallier les inconvénients précités.
[0005] A cet effet, l'invention a pour objet un procédé de codage à 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 successives
en calculant l'énergie du signal de parole un nombre P déterminé de fois par trame
pour coder l'ensemble de ces caractéristiques. 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 :
[0006] La figure 1 un organigramme illustrant le procédé de codage de la parole mis en oeuvre
par l'invention.
[0007] 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.
[0008] La figure 3 un tableau de coefficients LSP.
[0009] La figure 4 des chemins de codage de trames par interpolation.
[0010] La figure 5 une table de codage de "pitch".
[0011] La figure 6 un organigramme illustrant le procédé de synthèse du signal de parole
mis en oeuvre par l'invention.
[0012] La figure 7 un graphe pour illustrer un mode d'interpolation des filtres de synthèse
mis en oeuvre par l'invention.
[0013] La figure 8 un mode de réalisation d'un dispositif pour la mise en oeuvre du procédé
selon l'invention.
[0014] Le procédé de codage selon l'invention consiste après avoir découpé le signal de
parole en trames de longueur constante 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.
[0015] 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.
[0016] 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.
[0017] 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 parole,
le nombre d'échantillons pris en compte pour la détermination des coefficients du
filtre de modélisation du conduit vocal est limité de façon connue en faisant le produit
des échantillons 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.
[0018] Les coefficients k
i du filtre de modélisation du conduit vocal sont calculés à l'étape 5 à partir de
coefficients d'autocorrélation R
i définis par une relation de la forme :

où i est un nombre entier variant de 0 à 10 par exemple, et S
i représente un échantillon de signal préaccentué et fenêtré.
[0019] Le calcul des coefficients K
i 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 à inverser une
matrice carrée dont les éléments sont les coefficients R
ide la relation (1).
[0020] Le passage des coefficients de réflexions à des coefficients de prédiction A
i a lieu à l'étape 8. Ce passage utilise 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 RM5 error croterion in filter design and prediction J Math Phys, 25 pp
614-617 (1947)"
[0021] 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,

et

avec

[0022] Si e
jαi et e
j βi désignent les racines des polynômes P et Q les coefficients LSP sont par définition
les fréquences f
i et g
i des arguments de ces racines
soit :

et

[0023] Dans ce calcul F
e représente la fréquence d'échantillonnage du signal de parole.
[0024] Les fréquences f
i et g
i sont conservées dans une mémoire, non représentée et les calculs précédents sont
recommencé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.
[0025] 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 10. 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 fondamental 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ériodicité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 quine le sont pas. Ce prétraitement consiste à effectuer un premier
filtrage 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 à 3dB 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.
[0026] Enfin, le deuxième filtrage permet de lisser les résultats de l'ébasage en éliminant
les hautes fréquences. A cette fin, un filtre de Butterworth identique au pemier filtre
peut être utilisé.
[0027] 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écision 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) =SOMME| (S(n) - S(n-k)| (8) où s(n) représente 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.
5. 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.
[0028] Le calcul d'énergie qui a lieu à l'étape 8 est exécuté sur quatre sous trames. Ce
calcul a lieu en prenant le logarithme à base 2 de la somme des énergies de chaque
échantillons préaccentué d'une sous trame.
[0029] Les sous trames dans chaque trame sont jointives ou se chevauchent pour avoir une
longueur multiple du "pitch".
[0030] 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ésignées ci-après
par trame 1, trame 2 et trame 3 s'effectue en deux temps en commençant par la trame
3.
[0031] Le codage de la trame 3 est de type scalaire. Il s'effectue 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 communications, Vol. 6 feb. 88
de MM. Sugamara N et FAYARDIN N (1988) ayant pour titre "Quantizer design in LSP speech
analysis".
[0032] L'algorithme de codage est exécuté dans l'ordre décroissant des coefficients LSP
en commençant par le dernier des manières représentées aux figures 2 et 3. Pour 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 linéaire entre deux valeurs de fréquences
F₁₀MIN et F₁₀MAX et a lieu sur N
V10 valeurs codées linéairement sur NB₁₀ bits.
[0033] Les codages des LSP(i) autres coefficients pour i = 9, 8...1 a lieu par comparaison
du coefficient LSPQ(i+1) à une valeur de fréquence maximum F
iMAX
[0034] Si LSPQ(i + 1)>F
iMAX alors le codage du coefficient est effectué linéairement entre deux valeurs F
iMIN et F
iMAX sur NV
i valeurs et donc sur NB
i bits.
[0035] Si LSP(i+1)<F
iMAX alors le codage du coefficient est effectué linéairement entre F
iMIN et LSPQ(i+1) sur NV
i valeurs et donc sur NB
ibits.
[0036] Au cours du codage des trames 1 et 2 une bonne approximation des valeurs de coefficients
LSP correspondant aux trames 1 et 2 est obtenue à partir de l'interpolation entre
les trames 0 (trame 0 = 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 directement mais c'est le type d'interpolation
permettant de les quantifier le plus fidèlement possible qui est codé.
[0037] Pour chacune des valeurs de coefficients LSP d'ordre impairs des trames 1 ou 2, le
codeur détermine parmi 3 interpolations 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.
[0039] Le procédé choisit ensuite parmi les 3 interpolations précédentes celle qui minimise
l'erreur de quantification, estimée au moyen d'une fonction D_INTER définie ci-dessous
en adoptant la valeur de code correspondante.
[0040] La fonction D_INTER est définie comme suit.

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.
[0041] LSP(trame j) = Valeur réelle dans la trame j du coefficient LSP impair à quantifier
[0042] W1 = valeur de l'énergie de la trame 1
[0043] W2 = valeur de l'énergie de la trame 2
[0044] On obtient ainsi 5 codes de 3 cas chacun, soit 3⁵=243 cas possibles. Le code obtenu
est égal à
Code LSP1 + 3.Code LSP3 + 9.Code LSP5 + 27.Code LSP7 + 81.Code LSP9
[0045] Ce codage tient sur 8 bits.
[0046] Le codage du pitch et du voisement ont lieu à l'étape 14 sur trois trames consécutives.
[0047] 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 0 qui précède chaque groupe de trames
1, 2 et 3.
[0048] Les types de cas possibles considérés sont les suivants.

[0049] Une table de codage représenté à la figure 5 permet d'associer à 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.
[0050] Le codage des six types de cas possibles précédents a lieu alors de la manière suivante:
[0051] Le code 0 est attribué au type 1. Un code égal à la valeur "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 projetant 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 (P₁
+ P₂ + P₃)/3 des pitchs des trames 1, 2 et 3. Le code correspondant est alors codé
sur les 63 valeurs de la table de codage.
[0052] 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 troisiè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).
[0053] Les codes correspondants peuvent être obtenus respectivement sur seulement 4 et 3
valeurs de la table de codage.
[0054] 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'énergie 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 changement 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 ).
[0055] La deuxième étape consiste à quantifier ces 3 projections, la première projection
est quantifiée sur 4 bits, la deuxième sur 3 bits et la troisième sur 2 bits.
[0056] Le codage de l'énergie ainsi obtenu est alors défini sur 4 + 3 +2 = 9 bits.
[0057] Le tramage qui est effectué à l'étape 16 consiste à effectuer 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.
[0058] 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 seconde.
[0059] 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 successivement pour chacune des trois trames à partir des informations 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 A
i. 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 dissemblables 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 Tr
i, TrN)=(LSP(TrN-1)*(4-i)+LSP(TrN)*i)/4
où LSP(SS Tri, Tr N) désigne la valeur du filtre interpôlé dans la sous trame i de
la trame N.
[0060] L'interpolation a lieu suivant le schéma de la figure 7.
[0061] 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.
[0062] Le gain du filtre de chaque sous trame est calculé en utilisant les coefficients
K
i suivant la relation
[0063] Gain du filtre

[0064] Enfin la dernière étape consiste à déterminer la valeur de l'écart type de l'énergie
de chaque sous trame (valeur utilisée lors du calcul de l'excitation).
[0065] L'ensemble du procédé de codage et de décodage selon l'invention sont exécutables
au moyen d'une structure microprogrammé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 320C25. 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 dispositif de contrôle automatique de gain 33 filtre le
signal de parole 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.
[0066] Un dispositif de réception de la parole formé d'un haut parleur 38, d'un amplificateur
de puissance 39, un filtre analogique 40, est relié au microprocesseur par l'intermédiaire
d'un convertisseur numérique analogique 41.
1. Procédé de codage à 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 (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éterminé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'ensemble 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 conduit 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.
5. 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 5, caractérisé en ce que le
codage par interpolation sur les deux autres trames a lieu par recherche parmi trois
interpolations 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écutives 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 microprocesseur 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 convertir les échantillons de parole
formés par le microprocesseur en signaux analogiques pour exciter un dispositif 38
de restitution du son ainsi qu'à ligne de donnée extérieure 37 pour un circuit d'interface
36.