[0001] La présente invention concerne un procédé et un dispositif pour l'évaluation de la
périodicité et du voisement du signal de parole dans les vocodeurs à très bas débit.
[0002] Dans les vocodeurs à bas débit connus, le signal de parole est découpé en trames
de 20 et 30 ms de façon à déterminer à l'intérieur de celles-ci la périodicité encore
désignée par "Pitch" dans le langage anglo-saxon, du signal de parole. Cependant lors
des transitions cette période n'est pas stable, et des erreurs se produisent dans
l'estimation du "Pitch" et par voie de conséquence du voisement dans ces parties-là.
Par ailleurs, si le signal de parole est fortement bruité par du bruit ambiant, l'évaluation
du "Pitch" est alors fortement perturbée voire même erronée.
[0003] Le but de l'invention est de pallier les inconvénients précités.
[0004] A cet effet, l'invention a pour objet un procédé pour l'évaluation de la périodicité
et du voisement du signal de parole dans les vocodeurs à très bas débit caractérisé
en ce qu'il consiste à effectuer un premier traitement consistant à découper après
échantillonnage le signal en trames de durée déterminée, à effectuer un premier filtrage
auto-adaptatif du signal échantillonné (Sn) obtenu dans chaque trame pour limiter
l'influence du premier formant, à effectuer un deuxième filtrage pour ne conserver
qu'un minimum d'harmoniques de la fréquence fondamentale, et à comparer le signal
obtenu par rapport à deux seuils adaptatifs SfMin(n) et SfMax(n) respectivement positif
et négatif et évolutifs en fonction du temps suivant une loi prédéterminée pour ne
retenir que les portions de signal qui sont respectivement supérieures et inférieures
aux deux seuils et à effectuer un deuxième traitement sur le signal Scc(n) obtenu
à la fin du premier traitement, consistant à calculer sur un nombre prédéterminé de
fréquences fondamentales ou "Pitch" M possède l'autocorrélation du signal obtenu à
la fin du premier traitement à partir d'un instant d'échantillonnage déterminée No
et à retenir pour valeurs de "Pitch" M ou de fréquence fondamentale candidates celles
en nombre égale à un nombre n prédéterminé qui correspondent à des maxima de l'autocorrélation
et à consigner les valeurs correspondantes de l'autocorrélation dans un tableau de
scores mis à jour à chaque nouvelle autocorrélation pour ne retenir comme valeur de
"Pitch" que celle qui correspond à un score maximal.
[0005] D'autres caractéristiques et avantages de l'invention apparaîtront ci-après à l'aide
de la description qui suit faite en regard des dessins annexés qui représentent :
- la figure 1 un organigramme figurant un prétraitement du signal de parole mis en oeuvre
par l'invention ;
- la figure 2 des exemples d'évolution du signal filtré et du signal final obtenu en
fin de la chaîne de prétraitement de la figure 1 ;
- la figure 3 un organigramme pour le calcul de K valeurs candidates pour la détermination
du "Pitch" selon l'invention ;
- la figure 4 un diagramme pour illustrer un mode de détermination du "Pitch" à partir
d'un tableau de coefficients représentants différentes valeurs possibles de "Pitch"
;
- la figure 5 un diagramme illustrant le fonctionnement d'un indicateur de voisement.
[0006] Dans son principe l'invention consiste à faire, dans une trame donnée, plusieurs
estimations du "Pitch" à intervalles réguliers et à favoriser les estimations successives
qui ont des valeurs voisines, en donnant un facteur de qualité à chaque estimation.
Le facteur de qualité possède une valeur maximale lorsque le signal est parfaitement
périodique et une valeur plus faible si sa périodicité est moins marquée. Comme le
voisement est directement lié à l'autocorrélation du signal de parole pour un retard
égale à la valeur du "Pitch" retenue, pour un son voisé l'autocorrélation est maximale
alors qu'elle est faible pour un son non voisé. L'indication de voisement est obtenue
en comparant l'autocorrélation à des seuils après avoir effectué des opérations de
lissage temporel et d'hystérésis pour éviter des transitions erronés de l'état voisé
à l'état non voisé ou vice-versa.
[0007] Le procédé de détermination des "Pitch" comporte deux étapes principales de traitement,
une étape de prétraitement représentée par l'organigramme de la figure 1 et une étape
de calcul d'autocorrélation, ces deux étapes pouvant être aisément programmées sur
tout processeur de traitement du signal connu.
[0008] L'étape de prétraitement se décompose de la manière représentée à la figure 1 en
une étape de filtrage auto-adaptatif 1 suivie d'une étape de filtrage passe bas 2
et d'une étape de d'écrêtage" auto-adaptatif 3.
[0009] Dans l'étape de filtrage auto-adaptatif 1 le signal de parole échantillonné est d'abord
blanchi par un filtre auto-adaptatif d'ordre pas trop élevé, égal à 4 par exemple,
de façon à limiter l'influence du premier formant. Si S(n) représente le n
éme échantillon de parole et A
i(n) est la valeur du i
éme coefficient le signal Sb(n) obtenu à la sortie du filtre auto-adaptatif est un signal
de la forme :

et l'adaptation des coefficients Ai(n) est obtenue par application d'une relation
de la forme :

ou Eps est une constante de faible de valeur par exemple égale à 1/128.
[0010] Le signal S
b(n) est ensuite appliqué à l'étape 2 à l'entrée d'un filtre passe bas dont le rôle est
à la fois de ne garder qu'un minimum d'harmoniques du fondamental et de réduire la
bande de fréquence du signal pour ensuite effectuer un sous échantillonnage dans le
but de réduire le temps d'exécution des calculs d'autocorrélation qui sont décrits
par la suite.
[0011] Le signal filtré Sf(n) qui est ainsi obtenu peut revêtir une équation de la forme
:

ou de toute autre forme similaire capable de conférer au filtre passe bas une fréquence
de coupure de l'ordre de 800 HZ, et une atténuation suffisante des fréquences au-delà
de 1 000 HZ.
[0012] Le dernier prétraitement qui est effectué à l'étape 3, transforme le signal Sf(n)
en un signal Scc(n) par un procédé d'écrêtage auto-adaptatif du type encore connu
sous la désignation "center clipping" dans le langage anglo-saxon. Il a pour effet
de renforcer les différences temporelles du signal filtré.
[0013] Dans le cas par exemple, où le signal Sf(n) contient fort peu de fondamental à une
fréquence F
o et beaucoup d'harmonique 2, la forme d'onde qui est obtenue à la fin de l'étape 3
est alors proche d'une sinusoïde de fréquence 2.F
o présentant une légère distorsion toutes les deux périodes. Ce prétraitement de l'étape
3 a alors pour effet de renforcer encore cette distorsion pour rendre plus aisé le
calcul du "Pitch" effectué par la suite. Ce prétraitement consiste comme le montre
les figures 2A et 2B à calculer deux seuils adaptatifs, SfMin(n) et SfMax(n), évolutifs
au cours du temps, pour ne retenir que les portions de signal qui sont respectivement
inférieures et supérieures à ces deux seuils.
[0014] Les seuils SfMin(n) et SfMax(n) vérifient les relations :



où Te est la période d'échantillonnage et Tau est une constante de temps de l'ordre
de 5 à 10 ms.
[0015] Il résulte de ce qui précède que le signal Scc(n) obtenu en fin d'exécution de l'étape
3 est toujours d'amplitude nulle sauf pour :

Si Sf(n)>SfMax(n) alors la différence Sf(n)-SfMax(n) est amplifiée pour donner un
signal Scc(n) défini suivant la relation :

Dans ce cas l'ancienne valeur de SfMax(n) est actualisée par la nouvelle valeur de
Sf(n) et SfMax(n) est rendue égal à Sf(n). Par contre si Sf(n)<SfMin(n) c'est la différence
Sf(n)-SfMin(n) qui est amplifiée pour donner un signal
Scc(n) défini suivant la relation :

et l'ancienne valeur de SfMin(n)=Sf(n) est actualisée par la nouvelle valeur de Sf(n).
[0016] Dans les relations (7) et (8) G représente une valeur de gain qui est choisie de
préférence constante pour améliorer la précision de calcul pour le cas où un processeur
de signal travaillant en virgule fixe serait utilisé.
[0017] Pour le cas où dans les relations précédentes la valeur de la constante de temps
Tau est choisie nulle, il va de soi que le signal Scc(n) est identique au signal Sf(n).
[0018] L'étape de calcul d'autocorrélation qui suit est effectuée pour chaque valeur M du
"Pitch" pour une position déterminée No d'échantillonnage. Dans la description qui
suit le calcul a lieu au moyen d'un sous échantillonnage d'un facteur 4 sur une plage
temporelle de 160 échantillons correspondant à une valeur maximale qui peut être admise
pour le "Pitch". Il est bien évident que le même principe peut encore s'appliquer
pour un ordre d'échantillonnage différent et sur une autre plage différente.
[0020] Pour chaque position No, choisie la quantité Roo n'est calculée à l'étape 4 qu'une
seule fois, la quantité RMM est calculée intégralement à l'étape 5 que pour certaines
valeurs de M et par itération pour les autres, et la quantité ROM est calculée, intégralement
à l'étape 5 pour chaque valeur de M.
[0021] Les valeurs de M pour lesquelles le calcul d'autocorrélation a lieu correspondent
à une fréquence fondamentale du signal de parole pouvant évoluer entre 50 HZ et 400
HZ. Celles-ci sont délerminées sur trois plages définies comme suit :
Plage 1 M=20, 21, 22 ...... 40 soit 21 valeurs au pas 1
Plage 2 M=42, 44, 46 ...... 80 soit 20 valeurs au pas 2
Plage 3 M=84, 88, 92 ...... 160 soit 20 valeurs au pas 4
soit un total de 61 valeurs différentes pouvant être codées par exemple sur 6 bits
avec une précision minimale de 5 % correspondant à la valeur d'un demi-ton de la gamme
chromatique.
[0022] La formule d'itération utilisée pour le calcul RMM est la suivante :

[0023] Par ailleurs, pour améliorer la précision de recherche des maxima de l'autocorrélation,
on utilise une formule d'interpolation parabolique qui, pour une valeur M donnée,
utilise les valeurs des quantités précédentes pour M-dM, M, et M+dM, dM étant une
valeur de pas égale à 1, 2 ou 4 suivant la plage considérée. Il en résulte que seules
les valeurs de RMM (19), RMM (20), RMM (21), et RMM (22) sont à calculer intégralement,
les autres le sont par itération, y compris pour M=164.
[0024] En fonction de ce qui précède on procède au calcul d'une valeur : Rau (M) définie
comme suit :

et Rau(M) = ROM(M)**2/[ROO(M).RMM(M)] si ROM(M)> 0
[0025] Seules les valeurs de M pour lesquelles un maximum local est obtenu, à savoir celles
pour lesquelles Rau(M) vérifie les inégalités :

sont prises en considération à l'étape 6. Pour ces seules valeurs de M il est calculé
ensuite une valeur Rint interpolée paraboliquement, suivant la relation :

pour ne retenir dans la suite des traitements que les K valeurs correspondant aux
K valeurs les plus élevées de Rint (et les valeurs associées de M), par exemple les
K=2 maxima les plus importants, notés Rmax (1) , ..., Rmax (K) (et Mmax (1), ...,
Mmax (K)).
[0026] La suite du traitement consiste à tenir à jour un tableau de scores associés aux
différentes valeurs possibles pour le "Pitch" M.
[0027] Ce tableau, noté Score (i), sur la figure 4 contient pour les i=1 a 61 valeurs M
de "Pitch" une quantité qui est fonction croissante du degré de vraisemblance du "Pitch"
associé (de 20 à 160), et qui est mise à jour à chaque nouvelle évaluation des autocorrélations
(typiquement toutes les 5 à 10 ms), en tenant compte du fait que, d'une évaluation
à la suivante, les positions des maxima peuvent varier de plus une unité, rester stationnaires
ou varier de moins une unité suivant que le "Pitch" est respectivement croissant,
stationnaire, ou décroissant.
[0029] Périodiquement ( sinon systématiquement ), la valeur minimale est retirée pour éviter
d'éventuels débordements de façon telle que :

avec

[0030] Les différents scores sont initialisés pour tenir compte d'une éventuelle dérive
du "Pitch", ce qui donne :

[0032] Finalement, la valeur M du Pitch retenue pour la position NO est celle correspondant
au maximum du tableau des scores, ScoreMax, situé à l'indice Imax dans ce tableau.
[0033] Si, pour des raisons de précision de calcul et/ou d'algorithmie, plusieurs valeurs
successives du score sont égales au maximum ScoreMax, à savoir Score(Imax), Score(Imax+1),
Score(Imax+dI), la valeur retenue pour le Pitch est celle qui correspond à Imax+[dI/2],
[dI/2] étant la valeur entière de la division dI par 2, comme indiqué sur la figure
4.
[0034] Pour une trame donnée, ou les calculs décrits ci-dessus sont effectués plusieurs
fois, la valeur finale du Pitch est celle obtenue à la dernière itération, étant entendu
qu'il y a entre 2 et 4 itérations par trame.
[0035] La valeur M du Pitch qui est ainsi obtenue correspond à la périodicité la plus vraisemblable
du signal de parole centrée autour de la position N
o avec une résolution de 1, 2 ou 4 suivant la plage où est située la valeur de M. Le
taux de voisement est calculé ensuite en effectuant une autocorrélation, normalisée
pour un retard égal à M et éventuellement pour des valeurs voisines si la résolution
est supérieure à 1, du signal de parole original S(n) et non pas sur le signal Scc(n)
prétraité comme pour le calcul du Pitch.
[0036] Par exemple, pour M = 30, l'autocorrélation normalisée n'est calculée que pour un
retard de 30, pour
M = 40 , elle est calculée pour des retards de 40 et 41 et pour M = 100 elle est calculée
pour des retards de 100, mais aussi pour des retards de 98, 99 ainsi que 101 et 102
(la résolution étant de 4 pour M = 100 ).
[0038] Contrairement au procédé de calcul précédent mis en oeuvre pour calculer le signal
S
cc(n) le signal S(n) n'est pas sous échantillonné.
[0039] La quantité Roo ne dépend pas de M et n'est calculée qu'une fois. Il est possible
de se contenter de calculer RMM pour la seule valeur nominale de M à savoir celle
fournie par le procédé de calcul du Pitch décrit précédemment et pour les valeurs
proches de M de calculer RMM par itération si nécessaire. La quantité ROM doit par
contre être calculée pour chacune des valeurs de M.
[0040] Pour limiter les fluctuations, spécialement en ambiance bruitée de la valeur maximale
de la quantité R
m ainsi obtenue celle-ci est filtrée par un filtre passe bas entre deux passages successifs
(correspondant à deux valeurs successives de la valeur de référence N
o), pour obtenir une valeur filtrée Rf(P) définie à chaque itération p par la relation
:

où a est une constante égale de préférence à ¼ ou ½ pour que les performances soient
satisfaisantes.
[0041] En tolérant un retard de codage une expression encore plus satisfaisante peut encore
être la suivante

[0042] Enfin, la quantité Rf (P) est comparée comme le montre la figure 5 à deux seuils
S
V et S
NV appelés respectivement seuil de voisement et de non voisement tels que le seuil S
V soit supérieur au seuil S
NV pour obtenir un indicateur binaire de voisement IV comme représenté à la figure 5.
[0044] l'état IV = 1 correspond à un son voisé et l'état IV = 0 correspond à un son non
voisé.
[0045] En partant de l'état IV = 1, IV passe à l'état 0 lorsque Rf(P) devient inférieur
à SNV et en partant de l'état IV = 0, IV passe à l'état 1 lorsque Rf(P) devient supérieur
à SV.
[0046] Des valeurs typiques pour ajuster les deux seuils SNV et SV peuvent être par exemple
fixées à SV = 0,2 et SNV = 0,05 en prenant 1 pour valeur maximale de Rf(P) et 0 pour
valeur minimale de Rf(P).
[0047] Afin d'optimiser les performances de la décision de voisement il est préférable que
ces seuils soient ajustables pour donner une certaine inertie à la décision qui soit
non perceptible à l'audition pour éviter des erreurs locales sur l'appréciation du
voisement.
1. Procédé pour l'évaluation de la périodicité et du voisement du signal de parole dans
les vocodeurs à très bas débit caractérisé en ce qu'il consiste à effectuer un premier
traitement consistant à découper après échantillonnage le signal en trames de durée
déterminée, à effectuer un premier filtrage auto-adaptatif (1) du signal échantillonné
(Sn) obtenu dans chaque trame pour limiter l'influence du premier formant, à effectuer
un deuxième filtrage (2) pour ne conserver qu'un minimum d'harmoniques de la fréquence
fondamentale, et à comparer (3) le signal obtenu pair rapport à deux seuils adaptatifs
SfMin(n) et SfMax(n) respectivement positif et négatif et évolutifs en fonction du
temps suivant une loi prédéterminée pour ne retenir que les portions de signal qui
sont respectivement supérieures et inférieures aux deux seuils et à effectuer un deuxième
traitement (4, 5, 6) sur le signal Scc(n) obtenu à la fin du premier traitement, consistant à calculer sur un nombre prédéterminé
de fréquences fondamentales ou "Pitch" M possible l'autocorrélation du signal obtenu
à la fin du premier traitement à partir d'un instant d'échantillonnage déterminée
No et à retenir pour valeurs de "Pitch" M ou de fréquence fondamentale candidates
celles en nombre égal à un nombre n prédéterminé qui correspondent à des maxima de
l'autocorrélaition et à consigner les valeurs correspondantes de l'autocorrélation
dans un tableau de scores mis à jour à chaque nouvelle autocorrélation pour ne retenir
comme valeur de "Pitch" que celle qui correspond à un score maximal.
2. Procédé selon la revendication 1 caractérisé en ce que l'autocorrélation du signal
Scc(n) obtenu à la fin du premier traitement est calculée à partir de l'instant d'échantillonnage
No sur un nombre déterminé d'échantillons qui le suit en effectuant :
- une première addition (ROO) d'une première suite d'échantillons séparés entre eux
par un nombre déterminé d'échantillons ;
- une deuxième addition (RMM) d'une deuxième suite d'échantillons correspondant chacun
à un échantillon de la première suite décalé en retard de la valeur de "Pitch" M ;
- une troisième addition (ROM) de produits respectivement d'échantillon de la première
suite avec leur homologue dans la deuxième suite
de façon à effectuer le quotient (RauM) du résultat (ROM) de la troisième addition
par le produit des deux autres (ROO x RMM) pour ne considérer qu'un nombre déterminé
K de valeurs de M pour lesquelles le quotient Rau (M) est maximum localement.
3. Procédé selon les revendications 1 et 2 caractérisé en ce qu'il consiste pour évaluer
le voisement à calculer l'autocorrélation du signal de parole échantillonnée pour
un retard égal à la valeur du "Pitch" M retenu et les valeurs voisines pour ne retenir
que la plus grande des valeurs ainsi calculées, à effectuer un filtrage passe bas
de cette valeur et la comparer avec hystérésis à deux seuils respectivement de voisement
et de non voisement pour décider de l'état voisé ou non voisé du signal de parole.
4. Procédé selon l'une quelconque des revendications 1 à 3 caractérisé en ce que le premier
filtrage auto-adaptatif consiste à soustraire de chaque échantillon courant Sn la
somme pondérée par des coefficients Ai(n) d'un nombre i déterminé d'échantillons précédents,
l'adaptation des coefficients Ai(n+1)étant obtenue en ajoutant au coefficient courant
Ai(n) une quantité EPS affectée d'un signe égal au signal du résultat de la soustraction
par le signe de l'échantillon S(n-i).
5. Procédé selon la revendication 4 caractérisé en ce que les deux seuils adaptatifs
SfMin(n) et SfMax(n) sont déterminés pour chaque échantillon courant à l'instant n
à partir de l'échantillon précédent de l'instant n-1 par les relations :


où E est une fonction exponentielle du rapport entre la période Te des échantillons
et une constante Tau comprise entre 5 et 10 ms.
6. Dispositif pour l'évaluation de la périodicité et du voisement du signal de parole
dans les vocodeurs à très bas débit caractérisé en ce qu'il comporte un processeur
de traitement du signal programmé selon l'une quelconque des revendications 1 à 5.