(19)
(11) EP 0 490 740 A1

(12) DEMANDE DE BREVET EUROPEEN

(43) Date de publication:
17.06.1992  Bulletin  1992/25

(21) Numéro de dépôt: 91403309.7

(22) Date de dépôt:  06.12.1991
(51) Int. Cl.5G10L 3/00
(84) Etats contractants désignés:
DE ES GB IT

(30) Priorité: 11.12.1990 FR 9015477

(71) Demandeur: THOMSON-CSF
75008 Paris (FR)

(72) Inventeur:
  • Laurent, Pierre-André
    F-92045 Paris la Défense (FR)

(74) Mandataire: Lincot, Georges et al
THOMSON-CSF, SCPI, B.P. 329, 50, rue Jean-Pierre Timbaud
F-92402 Courbevoie Cédex
F-92402 Courbevoie Cédex (FR)


(56) Documents cités: : 
   
       


    (54) 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.


    (57) Le procédé consiste à découper après échantillonnage le signal de parole 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, pour 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 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. Il consiste ensuite à calculer sur un nombre prédéterminé de fréquences fondamentales ou "Pitch" M possible l'autocorrélation du signal obtenu à la fin du traitement précédent à 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.
    Application : Vocodeurs à bas débit.




    Description


    [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 Ai(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 Sb(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 Fo 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.Fo 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.

    [0019] 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.







    [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.

    [0028] Le tableau des scores est transféré dans un tableau temporaire, note ExScore (i) non représenté. Ce tableau est défini en fonction des valeurs de i de la façon suivante :







    [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 :



    [0031] 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







    [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 No 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 ).

    [0037] 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 :

    ou











    [0038] Contrairement au procédé de calcul précédent mis en oeuvre pour calculer le signal Scc(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é Rm 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 No), 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 SV 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.

    [0043] Sur 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.


    Revendications

    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.
     




    Dessins
















    Rapport de recherche