dscussion technique help

L'analyse de pitch par la méthode SIFT

Ce document a pour but d'expliquer le fonctionnement d'un analyseur par la méthode du filtrage inverse simplifié.

Cette méthode permet de trouver le pitch ainsi que le caractère voisé ou non voisé d'une tranche de parole.  L'idée de cette méthode est de rendre le spectre du signal de parole le plus plat possible par filtrage et ensuite de retrouver le pitch par correlation de ce signal.

Voici un schéma de l'analyseur:

On voit différentes blocs sur ce schéma:

  1. filtre passe bas à 1KHz

  2. un décimateur

  3. une fonction de pré-emphase

  4. une fenêtre de Hamming

  5. un filtre LPC d'ordre 4

  6. un filtre inverse

  7. un corrélateur

  8. estimation du maximum

  9. interpolation parabolique

  10. discriminateur de niveau

le filtre passe bas à 1KHz

Le but du filtre passe bas est de supprimer l'infromation spectrale superflue,c'est à dire celle composée par les formants autres que le premier formant. Cette limite a été déterminér  par l'observation du signal. On remarque que le signal de parole se compose d'environ 5 formants espacés de 1KHz chacun. Il est donc naturel de se dire que comme seul nous intéresse le premier formant, il est judicieux de supprimer l'information qui n'est pas liée à celui-ci. Cela peut aussi diminuer la charge de calcul puisque le spectre est moins étendu.

Ce filtre a été réalisé comme un Filtre à réponse Indicielle Infinie (IIF) formé de N cellules en 2 parties où N est l'ordre du filtre.

le décimateur

Ce bloc a pour but  de diminuer le nombre d'échantillon à traiter par unité de temps. Il est évident que cette décimation peut être réalisée car le spectre du signal ayant été réduit, beaucoup d'échantillons contiennent une information superflue et peuvent donc être éliminés.

Il a été réalisé comme un bloc qui renvoit 1 échantillon pour N lus. N est donc le rapport de décimation. Dans ce cas-ci,il vaut 4.

une fonction de pré-emphase

Ce bloc réalise la fonction 1-m*z-1m est le facteur de "pré-emphasis". 

une fenêtre de Hamming

Il s'agit d'un bloc qui applique une fenêtre de Hamming au signal. Il a été choisi comme largeur de fenêtre 30 ms ce qui correspond à un compromis courant étant donné de caractère non stationnaire du signal de parole.

un filtre LPC d'ordre 4

Ce codeur effectue son codage sur une tranche d'échantillons de 30 ms. Le signal est d'abord découpé en tranches de 30 ms dont les coéfficents d'autocorrélation sont calculés. Le codeur utilise ensuite l'algorithme de Shur pour calculer les coefficients PARCORS de la tranche de signal considérée.

un filtre inverse

Le filtre inverse utilise les coefficients comme paramètre pour le filtrage du signal. Il utilise la même technique que le filtre à l'entrée et est du même ordre que le codeur LPC. Il prend directement les coefficients PARCORS comme paramètres.

un corrélateur

Ce bloc qui est aussi intégré dans le codeur LPC  calcule les coefficients d'autocorrélation du signal résultant dans le but de retrouver la composante à fréquence fixe qui est le pitch du signal. La suite de coefficients fournis par ce bloc sert aux blocs effectuant la décision.

estimation du maximum

Ce bloc essaie de trouvr le maximum d'autocorrélation du signal. Cette recherche pourrait être très simple et renvoyer le maximum d'autocorrélation tel quel mais cette solution n'est pas la plus efficace. C'est pourquoi cette methode est suivie d'une correction effectuant le choix du maximum parmi les 2 echantillons maxima et cela en fonction des 2 maxima de la tranche précédente. Le but de cette correction est de suivre le maximum le plus plausible sans être perturbé par des signaux parasites.Cela permet d'éviter le saut du pitch lors de la détection, ce qui peut provoquer des effets indésirable lors de la reconstruction du signal codé par un decodeur LPC.

interpolation parabolique

Le but de cette interpolation est de trouver la position exacte du maximum et cela bien que les 2 blocs de traitement précédent travaillent en discret. Une interpolation parabolique a été choisie car elle semble la plus simple et la plus plausible étant donné l'évolution continue du signal et du spectre.

discriminateur de niveau

Ce bloc détermine si la tranche courante est voisée ou non et cela en fonction des tranches précédentes. Il est évident que l'information de pitch n'a aucun sens s'il s'agit d'une tranche non voisée.

Un peu d'aide