Brevet FR2670313A1 — publié le 19920612

Procédé et dispositif pour l'évaluation de la périodicité et du voisement du signal de parole dans les vocodeurs à très bas débit 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. 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 Cepen- dant 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 am- biant, l'évaluation du Ir Pitch est alors fortement perturbée voire même erronée. 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é 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 rap- port à deux seuils adaptatifs Sf Min(n) et Sf Max(n) respecti- vement 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 "Pitchl" 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 "Pitoh" que celle qui correspond à un score maximal. 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éter- mination du "Pitch" à partir d'un tableau de coefficients repré- sentants différentes valeurs possibles de fr Pitch; la figure 5 un diagramme illustrant le fonctionnement d'un indicateur de voisement. 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. 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. 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. Dans l'étape de filtrage auto-adaptatif 1 le signal de parole échantillonné est d'abord blanchi par un filtre auto-adap- tatif d'ordre pas trop élevé, égal à 4 par exemple, de façon à limiter l'influence du premier formant Si S(n) représente le eme ème nme échantillon de parole et A(n) est la valeur du ième i(n) coefficient le signal Sb(n) obtenu à la sortie du filtre auto-adaptatif est un signal de la forme: Sb(n)=S(n)-A 1 (n) S(n-1)-A 2 (n) S(n-2)-A 3 (n) S(n-3) -A 4 (n) S(n-4) ( 1) et l'adaptation des coefficients Ai(n) est obtenue par application d'une relation de la forme: Ai(n+ 1) = Ai(n) + Eps Signe(Sb(n)x S(n-i)) ou Eps est une constante de faible de valeur par exemple égale à 1/128. Le signal Sb(n) est ensuite appliqué à l'étape 2 à l'en- tré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. Le signal filtré Sf(n) qui est ainsi obtenu peut revêtir une équation de la forme: Sf(n) = lSb(n)+Sb(n-9)+ 3 ((Sb(n-1)+Sb(n-8)) + 6 (Sb(n-2)+ Sb(n-7)) + 9 (Sb(n-3) +Sb(n-6)) + 11 (Sb(n-4) +Sb(n-5)) l /64 ( 2) 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. 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ésigna- tion "center clipping"t dans le langage anglo-saxon Il a pour effet de renforcer les différences temporelles du signal filtré. Dans le cas par exemple, o le signal Sf(n) contient fort peu de fondamental à une fréquence F et beaucoup d'har- monique 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 distor- sion pour rendre plus aisé le calcul du "Pitch" effectué par la suite Ce prétraitement consiste comme le montre les figures 2 A et 2 B à calculer deux seuils adaptatifs, Sf Min(n) et Sf Max(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. Les seuils Sf Min(n) et Sf Max(n) vérifient les relations: Sf Min(n) = E Sf Min(n-1) ( 3) Sf Max(n) = E Sf Max(n-1) ( 4) avec E = exp (-Te/Tau) ( 5) o Te est la période d'échantillonnage et Tau est une constante de temps de l'ordre de 5 à 10 ms. I 1 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: Sf Max (n) Si Sf(n)>Sf Max(n) alors la différence Sf(n)-Sf Max(n) est ampli- fiée pour donner un signal Scc(n) défini suivant la relation Scc(n)=GlSf(n)-Sf Max(n)l ( 7) Dans ce cas l'ancienne valeur de Sf Max(n) est actualisée par la nouvelle valeur de Sf(n) et Sf Max(n) est rendue égal à Sf(n). Par contre si Sf(n) nouvelle valeur de Sf(n). 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 caleul pour le cas o un processeur de signal tra- vaillant en virgule fixe serait utilisé. 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). 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 évi- dent que le même principe peut encore s'appliquer pour un ordre d'échantillonnage différent et sur une autre plage différente. Le calcul consiste comme représenté par les étapes 4 à 6 sur l'organigramme de la figure 3, à calculer trois quantités Roo, RMM et ROM définies comme suit, dans lesquelles le signe :' désigne une élévation de puissance. Roo=Scc(No)'': :'2 +Scc(No+ 4)',':" 2 +Scc(No+ 8)*'::22 + +Scc(No+ 160): '-2 ( 9) RMM=Scc(No-M)':"f" 2 +Scc(No+ 4-M)** 2 +Scc(No+ 8-M) + +Scc(No± -M):Z:'2 ( 10) ROM=Scc(No) Scc (No-M)+Scc(No+ 4) Scc (No+ 4-M)+ +Scc(No+l- 60) Scc(No+ 160-M) ( 11) 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 calcu- lée, intégralement à l'étape 5 pour chaque valeur de M. Les valeurs de M pour lesquelles le caleul d'autocorrélation a lieu correspondent à une fréquence fondamen- tale du signal de parole pouvant évoluer entre 50 HZ et 400 HZ. Celles-ci sont déterminé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 % correspon- dant à la valeur d'un demi-ton de la gamme chromatique. La formule d'itération utilisée pour le calcul RMM est la suivante: RMM(M) =RMM(M-4) +Scc (No-M) e* 2 Scc (No+ 164-M) '"'2 ( 12) Par ailleurs, pour améliorer la précision de recherche des maxima de l'autocorrélation, on utilise une formule d'interpola- tion parabolique qui, pour une valeur M donnée, utilise les valeurs des quantités précédentes pour M-d M, M, et M+d M, d M é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égrale- ment, les autres le sont par itération, y compris pour M= 164. En fonction de ce qui précède on procède au calcul d'une valeur: Rau(M) définie comme suit: Rau(M) = O si ROM(M) O Seules les valeurs de M pour lesquelles un maximum local est obtenu, à savoir celles pour lesquelles Rau(M) vérifie les inégalités: Rau(M) > Rau(M-d M) et Rau(M) > = Rau (M+d M) sont prises en considération à l'étape 6 Pour ces seules va- leurs de M il estcalculé ensuite une valeur Rint interpolée paraboliquement, suivant la relation: Rint = Rau(M) + 1/8 lRau(M+d M) Rau(Md M)l 9,* 2 / l 2 Rau(M) l Rau(M-d M) Rau(M+d M)l ( 13) pour ne retenir dans la suite des traitements que les K valeurs cor- respondant aux K valeurs les plus élevées de Rint (et les va- leurs associées de M), par exemple les K= 2 maxima les plus im- portants, notés Rmax( 1),, Rmax(K) (et Mmax( 1), Mmax(K)). La suite du traitement consiste à tenir à jour un tableau de scores associés aux différentes valeurs possibles pour le "Pitch" M. Ce tableau, noté Score (i), sur la figure 4 contient pour les i=l a 61 valeurs M de "Pitch" une quantité qui est fonction croissante du degré de vraisemblance du "Pitch" associé (de 20 à ), 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. Le tableau des scores est transféré dans un tableau tempo- raire, note Ex Score (i) non représenté Ce tableau est défini en fonction des valeurs de i de la façon suivante Ex Score ( 0) = O Ex Score ( i) = Score (i) pour i = 2 et Ex Score ( 62) = O Périodiquement (sinon systématiquement), la valeur mini- male est retirée pour éviter d'éventuels débordements de façon telle que: Ex Score (i) = Ex Score (i) Score Min ( 14) avec Score Min = MIN lScore ( 20)), Score ( 21),, Score ( 61)l Les différents scores sont initialisés pour tenir compte d'une éventuelle dérive du "Pitch", ce qui donne: Score (i) = MAX lEx Score(i-1), Ex Score(i), Ex Score (i+ 1)l pour i = 20,, 61 Enfin, pour les valeurs I( 1),, I(K) de i correspondant aux K Pitchs Mmax( 1) Mmax(K) o des maximum sont rencontrés, les scores sont augmentés d'une quantité égale aux maxima de l'autocorrélation trouvés tel que Score (I(K)) = Score(I(K))+ Rmax(K) pour k = 1, 2,, K. et i = I( 1),, I(K) Finalement, la valeur M du Pitch retenue pour la position NO est celle correspondant au maximum du tableau des scores, Score Max, situé à l'indice Imax dans ce tableau. Si, pour des raisons de précision de caleul et/ou d'al- gorithmie, plusieurs valeurs successives du score sont égales au maximum Score Max, à savoir Score(Imax), Score(Imax+ 1), Score(Imax+d I), la valeur retenue pour le Pitch est celle qui correspond à Imax+ld I/2 l, ld I/2 l étant la valeur entière de la division d I par 2, comme indiqué sur la figure 4. 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. 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 avec une résolution de 1, 2 ou 4 o suivant la plage o est située la valeur de M Le taux de voise- ment 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. Par exemple, pour M = 30, l'autocorrélation normalisée n'est calculée que pour un retard de 30, pour un retard de 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). Dans tous les cas, la valeur retenue Rm est la plus grande des valeurs ainsi calculées, une valeur élémentaire pour M données étant définie par les relations: R = ROM 2/(Roo RMM) si ROM est positif ou R = O si ROM est plus petit ou égal à zéro Roo = S (No), * 2 +S (No+ 1)": 2 ++S (No+ 160)': :c 2 RMM =S (N 0-M)**:2 +S(N O + 1-M):: r 2 + +S(N+ 160-M)': * 2 ROM = S (No) S (No 0-M) +S (No+ 1) S (No+ 1-M) + +S (No+ 160) S (No+ 160-M) Contrairement au procédé de calcul précédent mis en oeu- vre pour calculer le signal S c(n) le signal S (n) n'est pas sous échantillonné. 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 va- leurs 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. Pour limiter les fluctuations, spécialement en ambiance bruitée de la valeur maximale de la quantité RM ainsi obtenue m 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 No), pour obtenir une valeur filtrée Rf(P) définie à chaque itération p par la relation Rf(P) = ( 1-a) Rf(P-1) + a RM o a est une constante égale de préférence à i ou i pour que les performances soient satisfaisantes. En tolérant un retard de codage une expression encore plus satisfaisante peut encore être la suivante Rf(P) = lRm(P-l)+ 2 Rm(P)+Rm(P+ l) l/4 Enfin, la quantité Rf(P) est comparée comme le montre la figure 5 à deux seuils S et SNV appelés respectivement seuil de voisement et de non voisement tels que le seuil SV soit supérieur au seuil SNV pour obtenir un indicateur binaire de voisement IV comme représenté à la figure 5. Sur la figure 5, l'état IV = 1 correspond à un son voisé et l'état IV = O correspond à un son non voisé. En partant de l'état IV = 1, IV passe à l'état O lorsque Rf(P) devient inférieur à SNV et en partant de l'état IV = O, IV passe à l'état 1 lorsque Rf(P) devient supérieur à SV. 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 O pour valeur mini- male de Rf(P). Afin d'optimiser les performances de la décision de voise- ment il est préférable que ces seuils soient ajustables pour donner une certaine inertie à la décision qui soit non percepti- ble à l'audition pour éviter des erreurs locales sur l'apprécia- tion du voisement. il REVENDICATIONS 1 Procédé pour l'évaluation de la périodicité et du voi- sement 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 mini- mum d'harmoniques de la fréquence fondamentale, et à comparer ( 3) le signal obtenu par rapport à deux seuils adapta- tifs Sf Min(n) et Sf Max(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 respective- ment supérieures et inférieures aux deux seuils et à effectuer un deuxième traitement ( 4, 5, 6) sur le signal Sec(n) obtenu à la fin du premier traitement, consistant à calculer sur un nom- bre 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é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. 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éter- miné 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 respective- ment d'échantillon de la première suite avec leur homologue dans la deuxième suite de façon à effectuer le quotient (Rau M) 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 con- siste à 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 quan- tité EPS affectée d'un signe égal au signal du résultat de la soustraction par le signe de l'échantillon S(n-i). Procédé selon la revendication 4 caractérisé en ce que les deux seuils adaptatifs Sf Min(n) et Sf Max(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: Sf Min(n) E Sf Min(n-1) Sf Max(n) E Sf Max(n-1) 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 traite- ment du signal programmé selon l'une quelconque des revendica- tions i à 5.