Segmentation en notes et/ou en phones et indexation des sons monophoniques, harmoniques et non modulés

Présentation du problème

Nous considérons dans cette partie des sons monophoniques (c'est-à-dire où n'intervient qu'une voix : un orateur[Note : Voir la note de la page page:inform.] seul ou un chanteur seul ou un instrument seul), harmoniques (c'est-à-dire que le signal pour chaque zone stable se décompose en une somme de sinusoïdes disposées sur un peigne harmonique), et non modulés (c'est-à-dire que les sinusoïdes présentes pour chaque zone stable ne sont modulées ni en fréquence ni en amplitude). Le but est de segmenter ces sons en zones stables, et d'étiqueter chacune d'elles. Une zone stable, dans cette partie, correspond à une note ou à un phone harmonique. La segmentation consiste à détecter les variations brusques du signal, à détecter les transitions entre deux zones stables successives. L'étiquetage consiste à retranscrire la partition jouée.

Un programme pour segmenter en zones stables a été développé en c au cours de cette thèse. Nous l'avons appelé segmentation.



L'analyse est composée de quatre étapes.



Nous avons tout d'abord défini un ensemble de fonctions d'observation. Elles doivent résumer et faire ressortir les caractéristiques des sons : des zones stables séparées par des transitions brusques. La mise en évidence des transitions a été faite d'un point de vue purement traitement du signal ou d'un point de vue plus perceptif. Les fonctions d'observation sont présentées dans le deuxième chapitre (chapitre fo_seg) de cette partie. L'extraction de ces fonctions d'observation constitue la première étape de l'analyse segmentation en zones stables.



Ensuite nous avons défini un ensemble de critères permettant de déterminer, à partir des fonctions d'observation, à quels moments nous avons une variation importante du son, c'est-à-dire les moments où nous devons poser une marque de segmentation : il s'agit de la prise de décision. À partir de chaque fonction d'observation, nous obtenons une fonction de décision, c'est-à-dire une liste de marques de segmentation. Nous décrivons les procédures de prise de décision utilisées dans le troisième chapitre (chapitre chap:pridec) de cette partie. Ces prises de décision constituent la deuxième étape de l'analyse segmentation en zones stables.



Puis nous nous sommes intéressé dans le quatrième chapitre (chapitre fus_tou) de cette partie à la fusion des résultats des prises de décisions obtenus pour chacune des fonctions d'observation. Nous traitons aussi dans ce chapitre d'un problème qui se rencontre aussi bien au cours de la deuxième étape de l'analyse (chapitre chap:pridec) qu'au cours de celle-ci : il s'agit du traitement des marques de segmentation trop proches les unes des autres. Ce problème est dû au fait que les transitions ne sont pas instantanées et que certaines fonctions d'observation réagissent plutôt au début des transitions, d'autres plutôt à la fin des transitions, et d'autres plusieurs fois au cours d'une même transition. Nous obtenons une fonction de décision finale. Cette prise de décision finale constitue la troisième étape de l'analyse segmentation en zones stables.



L'étiquetage des segments est discuté succintement dans le cinquième chapitre (chapitre chap:label) de cette partie. Cet étiquetage constitue la quatrième étape de l'analyse segmentation en zones stables.



Dans le sixième chapitre (chapitre per_seg1) de cette partie, nous avons dans un premier temps observé le comportement des fonctions d'observation avec un son de flûte simple, c'est-à-dire parfaitement monophonique (pas de reverbération, etc.), harmonique, et quasi non modulé. Puis nous discutons les résultats obtenus avec le système complet sur un ensemble de signaux simulés ou réels.



Dans le septième chapitre (chapitre chap:corr_fo_ob) de cette partie, les corrélations entre les fonctions d'observation sont étudiées, d'abord en vue d'éliminer celles qui n'apportent pas d'information supplémentaire et donc de réduire le nombre de fonctions d'observation à utiliser. Nous indiquons dans la section sect:fusio (chapitre fo_seg) que la présence de deux capteurs absolument corrélés (fonctions de décision absolument identiques) implique que nous n'atteignons pas les performances optimales lors de la fusion de données. Les corrélations sont aussi étudiées en vue de caractériser perceptivement chaque fonction d'observation (elle réagit plutôt aux transitions en , aux transitions en énergie, aux transitions en contenu spectral, ou à une combinaison de ces trois types de transitions).



Dans le huitième chapitre (chapitre nec_seg) de cette partie, nous faisons quelques remarques qui montrent que le système de segmentation tel qu'il est décrit dans cette partie n'est plus suffisant dès que le signal n'est plus monophonique, harmonique et/ou non modulé, et qu'il est nécessaire de mettre en place un niveau de segmentation supérieur à celui présenté dans cette partie. Nous appelons cet autre niveau (décrit dans la partie part:seg_cara) segmentation en caractéristiques. Cette segmentation, plus grossière en ce sens qu'elle nous donne des segments plus longs que la segmentation en zones stables, aide à la segmentation en zones stables.



Nous donnons une conclusion à cette partie dans le neuvième chapitre (chapitre chap:part2) de cette partie.

Les fonctions d'observation

1.Introduction

L'extraction de fonctions d'observation est la première étape de l'analyse segmentation en zones stables.

Nous avons vu dans l'introduction générale à cet exposé que, pour les sons monophoniques, harmoniques et non modulés, une variation brusque du signal peut avoir lieu :

D'autres fonctions d'observation, n'entrant pas dans ces trois catégories, sont décrites dans la cinquième section (section sect:fo_au) de ce chapitre. Elles tentent de détecter des variations brusques dans le signal lui-même, ou de mettre en évidence plusieurs types de variations brusques simultanément.

Les fonctions d'observation peuvent encore être séparées en deux groupes : celles qui sont unidimensionnelles et celles qui sont multidimensionnelles. Une fonction d'observation multidimensionnelle est une fonction d'observation qui nous donne par exemple un trajet pour chaque harmonique, ou pour chaque bande de fréquence considérée. Nous voulons réduire chaque fonction d'observation multidimensionnelle à une fonction d'observation unidimensionnelle. C'est-à-dire que nous voulons mixer les résultats obtenus pour chaque dimension : apparaissent les premiers problèmes de fusion de données. Leur discussion et leur résolution font l'objet de la sixième section (section sect:fusio) de ce chapitre.

Dans la septième section (section sect:fo_re) de ce chapitre, un récapitulatif des fonctions d'observation étudiées est fait.

Nous concluons ce chapitre avec sa huitième section (section sect:conc_chap1_part2).

2.Fonctions d'observation basées sur les variations de

Introduction

Détermination du trajet de

Tout signal périodique peut être décomposé en une somme de sinusoïdes dont les fréquences sont toutes multiples d'une fréquence particulière, appelée fréquence fondamentale. Ces sinusoïdes sont appelées les harmoniques, ou les partiels harmoniques du signal. Et le signal est lui-même dit harmonique. Les sons considérés dans cette partie sont harmoniques localement, c'est-à-dire sur chaque note, ou encore sur chaque zone stable. Au cours de chaque note, nous n'observons que quelques périodes du signal. Pour un () de durée un quart de seconde, nous avons 110 périodes.

La fréquence fondamentale d'un signal sonore est obtenue grâce au logiciel développé à l' ircam (voir entre autres Thesis:Doval et Article:Garcia).

Fonctionnement du logiciel

Nous présentons succintement le principe simplifié de la méthode.

Il est fait l'hypothèse que le signal à analyser est harmonique. Il est découpé en portions (ou fenêtres d'analyse, ou encore trames) larges de quelques dizaines de millisecondes, et décalées de quelques millisecondes. Un spectre d'amplitude est calculé pour chacune de ces portions, d'instant central , multipliée par une fenêtre de pondération. Tous les pics significatifs du spectre d'amplitude sont détectés : ils ont pour fréquences respectives . Il s'agit ensuite de déterminer quelle fréquence fondamentale explique au mieux l'ensemble de ces pics. Un ensemble, fixe quelque soit , de fréquences fondamentales candidates est utilisé : . Chaque pic gardé, de fréquence , pour une candidate , correspond à l'harmonique de numéro d'ordre , avec : , où est l'opérateur plus proche entier de . ensembles , un par fréquence fondamentale candidate, sont obtenus : il s'agit de déterminer lequel est le plus vraisemblable, en prenant en compte la probabilité d'absence de chaque harmonique, la probabilité de dispersion de chaque harmonique autour de sa fréquence théorique , etc.

Nous obtenons donc le trajet de dans le temps : . Les sauts de correspondent à un changement de note (de hauteur) et ce sont ces sauts que nous voulons détecter, dans cette section sect:fo_f0.

Dérivées de

Les valeurs absolues des dérivées de

La fonction d'observation << valeur absolue de la dérivée de >>, , se calcule, à l'instant , à partir des que nous avons définis dans la section ssse:foncf0, ainsi :

Nous définissons la fonction d'observation << valeur absolue de la dérivée relative de >> ainsi :

Les fonctions d'observation et et les fonctions d'observation et sont implémentées dans le programme segmentation. Beaucoup d'autres dérivées << numériques >> pourront être utilisées : voir entre autres celles données dans l'article Article:Boashash[Note : La dérivée y est appelée << CFD >>, pour << Central Finite Difference >>, et la dérivée y est appelée << BFD >>, pour << Backward Finite Difference >>.]. Il s'agit d'une perspective.

L'apport des harmoniques de numéros d'ordre supérieurs

Nous calculons de la même façon les dérivées des harmoniques de numéros d'ordre supérieurs. Nous obtenons ainsi une fonction d'observation multidimensionnelle. Il faut alors fusionner les dimensions (voir la section sect:fusio). Ceci n'est pas fait dans le programme segmentation.

Indices de voisement -- Première forme

Principe de la méthode

Nous calculons un indice de voisement pour chaque harmonique. Nous utilisons le trajet de déterminé par le logiciel .

La procédure est la suivante :

C'est-à-dire que nous calculons pour tous les entre et , ou correspond au numéro d'ordre de l'harmonique, l'indice de voisement :

où : est tel que (notons que varie dans le temps, c'est-à-dire avec , suivant ) ; est la fréquence d'échantillonnage du signal sonore ; est l'opérateur plus proche entier de ; est la largeur de la troncature sur laquelle nous calculons la corrélation (la taille des spectres d'amplitude tronqués est donc ) ; et est l'opérateur normalisation de l'énergie de à 1. La normalisation en énergie d'un spectre d'amplitude tronqué entre et se fait ainsi :

pour . Dans notre cas et .

Nous donnons ici quelques notations, qui seront valables dans tout l'exposé. est la largeur temporelle des fenêtres d'analyse (en seconde), la même largeur en nombre d'échantillons. est la taille des fft. Les échantillons fréquentiels des spectres sont numérotés de à , et les fréquences correspondantes sont et . À l'échantillon fréquentiel , correspond une fréquence de . vaut .

Chacun des indices de voisement vaut 1 si une sinusoïde de fréquence est présente et moins de 1 sinon. Nous obtenons ainsi une fonction d'observation multidimensionnelle. Il faut alors fusionner les données (voir la section sect:fusio).

Relâcher la contrainte << Nous connaissons parfaitement >>

Si à l'instant une petite erreur est faite sur , quand nous calculons les indices de voisement comme nous l'indiquons ci-dessus dans la section ssec:prinmethvoi, les effets de cette erreur se répercutent pour tous ces indices de voisement . Il vaut donc mieux relâcher la contrainte . Ainsi, nous calculons les indices de voisement obtenus pour échantillons fréquentiels autour de cette valeur , et, ensuite, n'est pris en compte que le plus grand. L'indice de voisement de numéro d'ordre devient :

Une petite erreur sur nous donne une erreur sur l'harmonique . Donc doit être une fonction linéaire du numéro d'ordre de l'harmonique. Nous prenons : [Note : Il est un problème de notation. Dans tout cet exposé, nous considérons que le premier partiel harmonique ou premier harmonique correspond à la fréquence fondamentale, numérotée indifféremment ... ou . Ainsi, en règle générale dans cet exposé : ... et donc ici . ].

Les paramètres libres

Les paramètres libres sont au nombre de 6. Ce sont : , la largeur de chaque fenêtre d'analyse ; , la demi-largeur de la troncature ; , le nombre d'harmoniques pris en compte () ; ; , la taille de la fft ; la fenêtre de pondération. Nous avons vu que est de l'ordre de quelques dizaines de millisecondes. est choisie de telle façon que % de l'énergie totale de soit gardée. est choisi de l'ordre de 90. n'est pas choisi très grand. Souvent l'amplitude des harmoniques diminue rapidement avec leur numéro d'ordre. Ainsi le lobe principal des harmoniques de numéro d'ordre élevé est trop déformé par le bruit pour que nous obtenions un indice de voisement proche de 1. Le plus souvent, . est égal à , où est petit ( par exemple). Plus est grand, plus est petit, et donc plus les sont proches d'un , où est entier. Ainsi, si nous nous plaçons dans le cas d'un signal harmonique, plus est grand, plus les indices de voisement sont proches de 1. Nous n'avons pas de contrainte de temps de calcul : alors nous pouvons utiliser un taux de bourrage de zéros[Note : Ou << zero-padding >>. Le bourrage de zéros consiste à ajouter zéros à la fin du signal à analyser, de taille . Le bourrage de zéros est utilisé pour deux raisons :

] grand. Le dernier paramètre libre est la fenêtre de pondération : souvent, nous utilisons celle de blackman.

L'indice de voisement première forme implémenté dans le programme segmentation est l'indice . La fonction d'observation finale est la << fusion des valeurs absolues des dérivées des indices de voisement première forme >>.

Indices d'inharmonicité

Fonctionnement d' additive

Nous avons vu que le logiciel nous donne la fréquence fondamentale aux instants . Dans le logiciel de l' ircam additive, il est fait l'hypothèse que le signal sonore est une somme de sinusoïdes quasi harmoniques. Une fois que a été estimée à un instant donné , additive détermine une sinusoïde (sa fréquence, son amplitude et sa phase) pour chaque bande de fréquences centrée autour de , avec variant de à . Il s'agit de détecter le maximum du spectre d'amplitude dans chaque bande de fréquence. La largeur des bandes de fréquence est au plus de . Les positions de ces maximums nous donnent les fréquences des harmoniques.

Principe de la méthode

À chaque instant et pour chaque harmonique de numéro d'ordre ( variant de à ) nous calculons l'indice d'inharmonicité de la façon suivante :

est la fréquence du harmonique obtenu avec additive.

L'idée ici est qu'au cours des transitions, n'a plus de sens physique. Alors, l'inharmonicité devient importante pour tous les harmoniques.

Nous obtenons un critère de dimension . Nous avons donc ici de nouveau un problème de fusion de données (voir la section sect:fusio).

Relâcher la contrainte << Nous connaissons parfaitement >>

Dans la méthode présentée dans la section ssse:inhprin ci-dessus, nous accordons une grande confiance à . Les effets d'une petite erreur sur se répercutent pour tous les indices d'inharmonicité. Il vaut donc mieux relâcher la contrainte . Nous calculons un nouvel , appelé , ainsi :

Bien sûr, dans les zones stables, est très proche de .

Nous calculons alors l'indice d'inharmonicité de la façon suivante :

pour chaque harmonique de numéro d'ordre , avec variant désormais de à .

Paramètres libres

Le seul paramètre libre est le nombre d'harmoniques pris en compte (). Nous l'avons choisi petit, le plus souvent égal à trois. Ceci parce que l'amplitude de l'harmonique décroissant rapidement (en par exemple) avec son numéro d'ordre, le bruit détériore l'estimation de ses trois paramètres, c'est-à-dire notamment de sa fréquence.

L'indice d'inharmonicité implémenté dans le programme segmentation est l'indice . La fonction d'observation finale est la << fusion des valeurs absolues des dérivées des indices d'inharmonicité >>.

Analyse statistique sur le trajet de

Nous avons adapté ici un programme implémenté en c par Laurent Cerveau lors d'un stage de dea effectué à l' ircam (voir Rapport:Cerveau).

Principe de la méthode

À l'instant , nous observons le signal, c'est-à-dire ici le trajet de , sur deux portions adjacentes de taille échantillons (voir la figure figu:tran) :

Nous faisons l'hypothèse que sur chaque portion nous obtenons observations d'une variable aléatoire normale. Les densités de probabilité pour les deux variables aléatoires et sont normales et respectivement égales à et . Il s'agit de détecter les moments où correspond à une note et à une autre. L'écart maximal entre les deux suites aléatoires est obtenu quand la portion 1 couvre la fin d'une note et la portion 2 le début de la note suivante.

Nous calculons alors la probabilité que les modèles correspondants aux deux suites aléatoires soient au plus éloignés d'une distance , c'est-à-dire que nous calculons la probabilité à tout instant :

Nous donnons en annexe anne:proba les calculs qui nous permettent d'aboutir à cette intégrale. Nous n'obtenons pas une formule analytique : il reste cette intégrale, que nous calculons aisément numériquement. La taille des deux portions étant , les moyennes sont estimées ainsi :

et les variances ainsi (voir l'annexe ann:varsig) :

,

qui sont des estimateurs non biaisés des variances ; ou ainsi :

,

qui sont des estimateurs biaisés des variances.

étant de l'ordre de quelques dizaines, c'est-à-dire étant petit, il est préférable d'utiliser l'estimateur non biaisé de la variance, quoique en variance il soit moins performant que l'estimateur biaisé.

Un nouvel ensemble de valeurs

Au lieu de considérer l'ensemble des valeurs , nous considérons l'ensemble des valeurs telles que : . Le passage d'une note à une autre se déroulant sur un certain laps de temps (la transition n'étant pas instantanée), nous espérons en utilisant plutôt que augmenter la robustesse de l'algorithme.

L'apport des harmoniques de numéros d'ordre supérieurs

Nous utilisons cet algorithme de la même façon sur les trajets des harmoniques de numéros d'ordre supérieurs. Il faut alors fusionner les résultats (voir la section sect:fusio). Ceci n'est pas fait dans le programme segmentation.

Les paramètres libres

Ils sont au nombre de 4. Ce sont : , la taille des portions ; , le seuil ; , le numéro de l'ensemble considéré[Note : Si nous considérons l'ensemble des , ; si nous considérons l'ensemble des , : notons que ce sont les deux seules possibilités offertes par le programme segmentation. D'autres pourraient être envisagées : il s'agit d'une perspective.] ; , le nombre d'harmoniques pris en compte. ne doit ni être trop grande : il ne faut pas qu'une portion couvre plus d'une note ou deux ; ni trop petite : il ne faut pas que les variances des estimées , , et soient trop grandes. Il faut faire ici une hypothèse sur la longueur des notes : supposons qu'elle soit de l'ordre du quart de seconde. Souvent, le trajet de est échantillonné à , donc la valeur de choisie est d'environ 25. Dans cette méthode-ci il est un seuil : . Cependant, puisque nous analysons le trajet de la fréquence fondamentale, peut facilement être relié à une donnée musicale, en l'occurence à un écart de ton.

Finalement, la fonction d'observation considérée est ou bien , ou bien . Les deux sont disponibles dans le programme segmentation. Par défaut, est utilisée.

Utilisation d'une fonction de score

Une fois les marques de segmentation posées[Note : C'est-à-dire après avoir seuillé la fonction d'observation : voir le chapitre chap:pridec. Initialement, dans le programme de Laurent Cerveau, ce seuillage était effectué avec la deuxième méthode de seuillage (voir l'annexe ann:seuil), qui n'est pas forcément la plus efficace.] aux instants , leur validité est testée en définissant les deux fenêtres d'analyse ainsi :

Et en calculant le score de la marque de la façon suivante :

Si le score est trop faible, il convient de réexaminer et la position de la marque et le nombre de marques présentes entre et . Ceci n'est pas implémenté dans le programme segmentation.

La rupture de modèles sur le trajet de

Nous avons adapté ici un programme implémenté en c par Claude Barras au laforia et par Jérôme Daniel à l' ircam (voir Rapport:Daniel). L'algorithme est dû à Régine André-Obrecht (voir Article:Lepain, Rapport:Basseville, Techreport:Jehan et Books:Bassnik page 318 : << Divergence algorithm >>).

Le signal échantillonné (ici le trajet de ), que nous devons segmenter, est considéré comme étant un processus auto-régressif.

Les processus auto-régressifs (ou ar)

Le signal représente la réalisation d'un processus auto-régressif d'ordre s'il satisfait l'équation :

où les coefficients sont les paramètres ar et un bruit normal .

La densité spectrale de puissance[Note : Voir Article:Marple page 442 ou Article:Kay1 page 1388, où est appelée << power spectral density (PSD) >>.] est alors donnée par la relation :

En écrivant l'auto-corrélation du signal ainsi : , nous obtenons les équations de Yule-Walker :

Nous avons à notre disposition diverses méthodes permettant de résoudre récursivement (ordre variant de à ) ces équations de Yule-Walker : Durbin-Levinson, Burg, Marple (pour plus de détails, voir Article:Marple et Article:Kay1). Ces trois méthodes ont été implémentées dans le programme segmentation.

Notations et procédure

La décision de rupture à un instant est basée sur l'observation de l'entropie croisée de deux modèles ar du signal. Le premier est calculé à partir d'une portion du signal, de taille fixe et telle que ; et le second à partir d'une portion du signal dont l'origine est fixe et correspond à l'instant de détection de la rupture précédente, que nous notons , avec bien sûr . Ainsi : (voir la figure figu:rupt). Les moyennes de et sont normalisées à . L'ordre des deux modèles est :

Nous adoptons les notations suivantes :

De plus :

correspond au passé de l'échantillon .

et :

et correspondent aux densités de probabilité conditionnelles associées respectivement à et à .

L'entropie croisée

L'entropie croisée est alors :

Ce qui s'écrit dans le cas gaussien (voir Rapport:Basseville) :

avec l'erreur de prédiction pour le modèle , avec valant ou .

La statistique est définie comme étant la somme cumulée :

est un biais positif systématiquement ajouté, selon la règle de Page-Hinkley (voir Rapport:Basseville page 26 et Article:Lepain).

Détection de rupture

Le problème est à présent de détecter un maximum local de , moyennant un certain seuil . Cela se fait de la façon suivante :

Le retour en arrière

Or, a un comportement asymétrique par rapport aux modèles obtenus pour et . Cela veut dire que certains sauts sont plus facilement détectables si nous nous déplaçons dans le sens temporel rétrograde que si nous nous déplaçons dans le sens normal. Le signal est donc traité dans le sens rétrograde dès qu'il est soupçonné qu'une omission a eu lieu. Nous décidons qu'il y a eu peut-être omission quand : . Alors nous allons dans le sens rétrograde. Une fois que nous allons dans le sens rétrograde, si nous détectons une rupture à l'instant et si , la rupture à l'instant est acceptée et nous reprenons l'analyse dans le sens temporel normal à partir de l'instant .

L'apport des harmoniques de numéros d'ordre supérieurs

Nous utilisons cette algorithme de la même façon sur les harmoniques de numéros d'ordre supérieurs. Il faut alors fusionner les résultats (voir la section sect:fusio, en remarquant qu'ici nous obtenons des fonctions de décision, c'est-à-dire des listes de marques de segmentation, et non pas des fonctions d'observation). Ceci n'est pas fait dans le programme segmentation.

Les paramètres libres du programme

Ils sont au nombre de 7. Ce sont : , l'ordre des modèles ar ; , la taille de la fenêtre d'analyse de taille fixe ; , le biais systématiquement ajouté ; , le seuil de détection ; , la longueur à partir de laquelle nous soupçonnons qu'une omission a eu lieu ; , la longueur minimale entre une détection normale et une détection rétrograde ; , le nombre d'harmoniques pris en compte. Par défaut, nous avons : ; , telle que la largeur de la fenêtre de taille fixe soit de millisecondes ; ; . Par défaut, l'analyse dans le sens rétrograde n'est pas effectuée. Si elle est utilisée, nous avons : ; .

Conclusion

Contrairement aux autres fonctions d'observation, la prise de décision est incluse dans la << rupture de modèles ar >>. Cette remarque, très importante, est valable aussi pour la << rupture de modèles ar >> sur le trajet de l'énergie (voir la section rupt_ene) et pour la << rupture de modèles ar >> directement sur le son (voir la section rupt_son). En fait, les deux premières étapes de l'analyse segmentation en zones stables sont confondues. Cette remarque implique que ce que nous présentons dans le chapitre chap:pridec ne s'applique pas ici.

Ce n'est pas le cas pour d'autres fonctions d'observation basées elles aussi sur la modélisation ar : voir les sections flux_ar et brandt.

3.Fonctions d'observation basées sur les variations de l'énergie

Introduction : détermination du trajet de l'énergie

Nous entendons par << énergie >>, ici, l'énergie calculée sur une portion du son de taille échantillons ( classiquement correspond à une portion de quelques dizaines de millisecondes), c'est-à-dire que cela correspond plutôt à une puissance.

Nous obtenons le trajet de l'énergie du signal sonore dans le temps. Elle change pour chaque note et, de plus, pour certains signaux, aux instants de transition, elle passe par des minimums très faibles. Nous voulons ici détecter les sauts de la fonction temporelle .

Moorer (Thesis:Moorer), Morris et Schwartz (Article:Morris), notamment, utilisent l'énergie pour segmenter.

Cette fois-ci, le critère n'a qu'une dimension, et nous n'aurons pas les problèmes de fusion des résultats rencontrés pour les fonctions d'observation basées sur les variations de et des harmoniques de numéros d'ordre supérieurs (voir la section ssse:apsup).

Les fonctions d'observation

De la même façon que pour le trajet de , nous utilisons, comme fonctions d'observation, pour le trajet de l'énergie :

4.Fonctions d'observation basées sur les variations du contenu spectral

Indice de voisement -- Deuxième forme, calculé avec le spectre d'amplitude

Introduction

Deux indices de voisement sont définis : le premier, qui est basé sur l'analyse des spectres d'amplitude, dans cette section voise_fo2 ; et le second, qui est basé sur l'analyse des spectres complexes, dans la suivante (section voise_fo3). Ils sont différents des indices de voisement définis dans la section voise_for1 en ce que nous ne tenons pas compte de . Nous ne faisons ici aucune hypothèse sur l'harmonicité du signal. Ces considérations nous amèneront, dans le chapitre chap:detpol (partie part:poly), page page:poly, à faire une distinction, toute personnelle, entre << signal voisé >> et << signal harmonique >>.

Ces deux nouveaux indices de voisement ne sont pas encore implémentés en c, et donc ne sont pas inclus dans le programme segmentation.

Principe de la méthode (voir la section ssec:prinmethvoi)

Une portion du son large de quelques dizaines de millisecondes et d'instant central est considérée. Cette portion est multipliée par la fenêtre de pondération . Le spectre d'amplitude de cette portion pondérée du signal est calculé. Le spectre d'amplitude de la fenêtre de pondération est calculé. est tronqué autour de la fréquence nulle. Ce tronçon normalisé en énergie, , est large de échantillons fréquentiels. Nous considérons des tronçons normalisés en énergie glissants de . est la position de l'échantillon fréquentiel central de chaque tronçon, et la largeur de chaque tronçon est de échantillons fréquentiels. Nous corrélons et chaque . Rappelons que les normalisations en énergie se font ainsi (voir page page:nor) :

; et :

Les notations sont telles que pour l'échantillon fréquentiel d'indice , la fréquence est , pour l'échantillon fréquentiel d'indice , , pour l'échantillon fréquentiel d'indice , ...

La corrélation pour le tronçon de position centrale se calcule ainsi :

Le spectre est calculé pour échantillons fréquentiels entre 0 et . Il est donc composé de tronçons ( varie de à ). Nous obtenons un vecteur de corrélation composé de points.

Nous détectons les maximums locaux de ce vecteur . Pour chacun de ceux qui dépassent un seuil , nous décidons que nous avons une sinusoïde en cet endroit du spectre d'amplitude . Il est nécessaire d'ajouter une << condition supplémentaire >> : cependant, si la distance entre deux maximums locaux supérieurs à consécutifs () est inférieure à , nous ne gardons que la sinusoïde correspondant à la corrélation la plus grande[Note : Nous pourrions plutôt garder celle des deux sinusoïdes dont l'énergie est la plus grande ; ou mixer les deux tests (par exemple utiliser le produit de la corrélation par l'énergie pour chaque sinusoïde et ne garder que la sinusoïde correspondant au plus grand de ces produits). Il s'agit de perspectives.]. Cette << condition supplémentaire >> permet d'assurer qu'aucun échantillon fréquentiel n'est présent dans plusieurs des sinusoïdes gardées, que nous ne comptons pas plusieurs fois l'énergie d'un échantillon fréquentiel.

Nous calculons l'énergie de chaque sinusoïde gardée, c'est-à-dire l'énergie du tronçon concerné, de position centrale :

Nous additionnons les énergies de toutes les sinusoïdes gardées. Nous obtenons une énergie . L'énergie totale du signal est . Si le rapport des deux énergies est supérieur à un seuil à fixer, nous décidons que le signal est plutôt voisé, c'est-à-dire plutôt composé de sinusoïdes ; sinon, nous décidons qu'il n'est pas voisé[Note : Cette remarque concerne les parties part:seg_cara et part:poly, c'est-à-dire la segmentation en caractéristiques et la détection de la polyphonie.]. Grâce à la condition supplémentaire, il est assuré que le rapport soit forcément inférieur ou égal à 1.

Nous avons obtenu ainsi un indice de voisement proche de celui défini dans la section voise_for1, mais, contrairement à celui-ci, indépendant de la détermination de (pour l'indice de voisement défini dans la section voise_for1, nous corrélons avec les portions du spectre autour de , , ...).

La fonction d'observation implémentée sous matlab est la << valeur absolue de la dérivée de >>, soit :

Cas où le signal est un bruit normal

Il faut remarquer que quand le signal est du bruit, les corrélations ne sont pas nulles.

Préliminaires

Si le signal est une suite aléatoire normale de loi , nous prouvons (voir Book:Brillinger) que les parties réelles et imaginaires du spectre complexe sont indépendantes et qu'elles suivent des lois normales . Le spectre d'amplitude est le module du complexe et sont respectivement les parties réelles et imaginaires du spectre complexe. Nous prouvons alors que suit une loi de Rayleigh (voir Books:Charbit, pages 38 -- 39). La densité de probabilité de est :

avec .

Développements

Nous prouvons (voir l'annexe anne:annpois), que la moyenne de la variable aléatoire tend vers quand tend vers l'infini. La valeur moyenne de l'amplitude de chaque échantillon fréquentiel est : . Ainsi :

formule (1)

qui ne dépend pas des paramètres du bruit. Remarquons que puisque est supérieur à la valeur vraie de , est supérieure à . Ceci est représenté sur les figures figcor3, figcor2 et figcor1. Pour chaque figure, la courbe en trait interrompu représente la valeur théorique et la courbe en trait plein la valeur estimée des moyennes de en fonction de , la largeur de chaque tronçon étant . Les fenêtres de pondération utilisées ont été la fenêtre rectangulaire, la fenêtre de Hanning et la fenêtre de Blackman. D'après ces courbes et la formule (1), nous constatons que plus est grand plus la moyenne des corrélations avec le bruit est petite : ainsi, a priori, il faut prendre le plus grand possible.

Influence du bourrage de zéros

Appliquer un bourrage de zéros ne change rien aux résultats en ce qui concerne la corrélation avec le bruit ou les lobes secondaires d'une sinusoïde. En fait, dans le cas d'un signal suivant une loi normale , les échantillons fréquentiels réels et imaginaires du spectre complexe suivent des lois normales . Mais, puisque la moyenne des corrélations ne dépend pas de la variance des échantillons fréquentiels (voir la formule (1)), le bourrage de zéros n'a pas d'influence sur elles.

Les corrélations pratiques et théoriques en fonction de sont montrées, sans bourrage de zéros sur la figure figcor1, et avec un taux de bourrage de zéros de 16 (la taille de la fft est 16 fois la taille du signal) sur la figure figcor4. Bien sûr, dans le second cas, il faut, pour obtenir des résultats comparables au cas sans bourrage de zéros, prendre des tronçons plus larges.

Par contre, le bourrage de zéros permet d'améliorer les résultats de la corrélation avec le lobe principal donné par une sinusoïde pure : ainsi, en moyenne, la fréquence de cette sinusoïde est d'autant plus proche de celle d'un échantillon fréquentiel du spectre que le taux de bourrage de zéros est important, et donc la corrélation s'approche d'autant plus de 1. En moyenne, car cela dépend bien sûr de la fréquence de la sinusoïde : il y a toujours le cas défavorable où la fréquence d'une sinusoïde tombe juste entre deux échantillons fréquentiels du spectre.

Cas d'une sinusoïde : corrélations avec les lobes secondaires

Dans ce cas, les échantillons fréquentiels du spectre d'amplitude ne suivent pas une loi de Rayleigh.

La fenêtre de pondération utilisée est la fenêtre Blackman. Les autres paramètres sont :

Ici, nous nous intéressons avant tout au cas où nous considérons un tronçon (de taille ) du spectre d'amplitude dans les fréquences éloignées de . Les résultats sont présentés sur les figures cosbbl1, cosbbl2, cosbbl3 et cosbbl4. Nous constatons que la moyenne des corrélations avec les lobes secondaires est égale à la moyenne des corrélations avec le bruit.

Les paramètres libres

Ils sont au nombre de 5. Ce sont : , la demi-largeur[Note : La taille du tronçon est en fait .] des tronçons pour la corrélation ; , le seuil au-dessus duquel il est décidé qu'une sinusoïde est présente ; , la taille de la fft ; , la taille des fenêtres d'analyse ; et la fenêtre de pondération utilisée. Pour les signaux réels sur lesquels cette fonction d'observation a été testée (voir les figures novo page novo et novoi page novoi), nous avons choisi ; ; ; () ; et la fenêtre de pondération de Blackman.

Indice de voisement -- Deuxième forme, calculé avec le spectre complexe

Méthode

Cette fois nous avons :

et :

La corrélation s'écrit alors :

Les corrélations avec les lobes secondaires et dans le cas où le signal est un bruit normal sont montrés sur les figures cosbbl1c, cosbbl2c, cosbbl3c et cosbbl4c. Nous constatons que les corrélations avec les lobes secondaires sont nulles, mais que dès qu'un petit bruit est présent nous obtenons les mêmes résultats qu'avec l'indice de voisement deuxième forme calculé avec les spectres d'amplitude. Nous avons pris les mêmes valeurs pour les paramètres que ci-dessus (section ssse:casinu). Les paramètres libres sont les mêmes que pour l'indice de voisement deuxième forme calculé avec les spectres d'amplitude (section ssec:parlib).

La fonction d'observation implémentée sous matlab est la << valeur absolue de la dérivée de >>, soit :

.

Perspectives

Premièrement,
plus est grande, plus les performances sont bonnes, c'est-à-dire plus les corrélations sont proches de 0 quand nous utilisons les spectres complexes et un signal non bruité et corrélons avec des portions de spectre loin de la zone d'influence de la sinusoïde. De la même façon, plus est grande, plus les corrélations avec le bruit (et les lobes secondaires quand nous utilisons le spectre d'amplitude) sont petites.

Cependant, si une perturbation (c'est-à-dire une modulation d'amplitude ou de fréquence) vient déformer les lobes principaux, plus est grande, plus la corrélation avec ces lobes principaux est petite.

La première solution serait de trouver un compromis.

Une autre solution serait d'étudier l'influence de ces perturbations sur les lobes principaux et d'essayer d'améliorer les indices de voisement en conséquence. Quelques travaux ont été faits en ce sens, qui ne sont pas présentés dans cet exposé.

Deuxièmement,
cette fonction d'observation nous permet de déterminer dans quelles bandes de fréquences le signal, avec des sons << simples >> (c'est-à-dire monophoniques, harmoniques et non modulés), est plutôt voisé et dans quelles autres il ne l'est plutôt pas. Nous allons voir que les << flux spectraux >> (voir ci-dessous la section flux_spec) peuvent être calculés sur toutes les fréquences ou par bandes de fréquences. Le voisement nous permet de régler automatiquement le paramètre libre << position de la césure >> pour les << flux spectraux >>.

Conclusion

Le comportement de la fonction d'observation est très différent en ce qui concerne les lobes secondaires suivant que nous la calculons avec le spectre d'amplitude ou le spectre complexe : le spectre complexe donne de meilleurs résultats. Cependant, en présence de bruit, même de variance faible, cet apport n'est plus visible. Utiliser l'une ou l'autre de cette version de cette fonction d'observation ne semble donc pas déterminant.

Les << flux spectraux >>

Définition(s) du terme << flux spectral >>

Un flux spectral est la somme échantillon fréquentiel par échantillon fréquentiel de la valeur absolue de la différence entre deux spectres d'amplitude, entre deux enveloppes spectrales, ou entre un spectre d'amplitude et une enveloppe spectrale.

Les spectres d'amplitude sont calculés par fft (voir ci-dessous la section flux_spectres) ; les enveloppes spectrales à partir de la modélisation ar (voir ci-dessous la section flux_ar), du cepstre (voir ci-dessous la section ceps) ou des maximums locaux du spectre d'amplitude (voir la section calenvspe, dans la partie part:seg_cara).

1 Avec les spectres d'amplitude

Nous calculons le spectre d'amplitude sur une portion pondérée de largeur du signal ( vaut quelques dizaines de millisecondes : c'est-à-dire que vaut quelques centaines d'échantillons), puis sur une portion pondérée du signal décalée de quelques millisecondes (c'est-à-dire de échantillons) par rapport à la première. Les spectres d'amplitude sont calculés pour échantillons fréquentiels. Nous appelons le premier spectre d'amplitude et le second . Nous avons donc et pour variant de à .

Nous normalisons les spectres d'amplitude et pour qu'ils aient la même énergie comme nous l'indiquons page page:nor, avec et . Nous obtenons et .

Il s'agit de calculer :

Aux moments des transitions, c'est-à-dire aux changements de notes, la fonction d'observation , ou << flux spectral >>, croît, puisque le signal n'est plus stationnaire.

2 Avec l'enveloppe spectrale basée sur la modélisation ar

Introduction

L'enveloppe spectrale d'un spectre d'amplitude est une fonction lisse enveloppant ses pics (voir la figure figu:envspe), correspondant chacun à une sinusoïde. Une petite variation de l'amplitude ou de la fréquence (due à un trémolo ou à vibrato, entre autres) de ces sinusoïdes ne modifie pas énormément, d'une portion du signal à la suivante, l'enveloppe spectrale, alors que le spectre d'amplitude lui est très différent. Les effets du vibrato et du trémolo, ainsi que ceux du bruit, sont donc moins importants sur les enveloppes spectrales que sur les spectres d'amplitude. Nous espérons en utilisant les enveloppes spectrales plutôt que les spectres d'amplitude augmenter la robustesse de la fonction d'observation << flux spectral >>.

Il existe plusieurs moyens permettant d'obtenir l'enveloppe spectrale d'un spectre d'amplitude. Tout d'abord il y a la modélisation auto-régressive ( ar) : voir la section ssec:autoreg. Le choix de l'ordre des modèles pose un problème : il ne doit pas être trop élevé pour ne pas avoir une résonance trop importante pour les sinusoïdes présentes dans le signal. De plus, le temps de calcul devient rapidement très grand quand l'ordre augmente. Cette méthode est celle qui a été implémentée dans le programme segmentation.

Mais nous pouvons aussi considérer le cepstre (voir ci-dessous la section ceps), ou, encore, interpoler, linéairement ou d'une autre façon, entre les pics les plus grands (le problème étant de choisir les pics correspondant réellement à des sinusoïdes : voir la section vibr de la partie part:seg_cara) d'un spectre d'amplitude obtenu par transformée de Fourier ; etc.

Méthode

Ici, nous appelons la densité spectrale de puissance définie dans la section ssec:autoreg, page page:dsp, l'enveloppe spectrale.

Les deux formes de la fonction d'observation

Il y a deux versions possibles de cette fonction d'observation :

3 Avec l'enveloppe spectrale basée sur le liftrage du cepstre

Cette méthode est similaire à la méthode décrite dans 2 (section flux_ar). Elle diffère simplement par la technique utilisée pour calculer les enveloppes spectrales. Il y a deux versions possibles de la fonction d'observation :

Une fonction d'observation à plusieurs dimensions

Nous pouvons découper les spectres d'amplitude ou les enveloppes spectrales en plusieurs bandes de fréquence. Alors, nous normalisons en énergie chacune de ces bandes indépendamment des autres. Nous calculons le << flux spectral >> pour chacune de ces bandes. Nous avons la possibilité :

Ceci n'a pas été implémenté dans le programme segmentation. Le nombre de paramètres libres augmenterait d'une unité. Il faudrait ajouter , le nombre de bandes considérées, ou la position de la césure : nous n'avons pas essayé au cours de cette thèse de déterminer la position optimale de la césure. Il s'agit de perspectives.

Les paramètres libres

Ils sont au nombre de 4. Ce sont :

L'ordre des modèles ar est choisi petit, de l'ordre de 6. est tel que l'écart temporel entre les deux fenêtres soit de l'ordre de millisecondes.

Conclusion

Cette fonction d'observation a été utilisée dans le but de mettre en évidence avant tout les variations du contenu fréquentiel. Plusieurs bandes de fréquence seraient à utiliser pour deux raisons. D'abord, une évolution lente de l'énergie, sans changement de hauteur, agit surtout sur les hautes fréquences : les harmoniques de numéros d'ordre élevés sortent du bruit ou disparaissent dans le bruit. Ensuite, à énergie et à hauteur restant constantes, le bruit, pour les harmoniques de numéros d'ordre élevés, d'amplitudes souvent petites, est important, ce qui rend le flux spectral inutilisable pour ces fréquences : c'est-à-dire que nous obtenons les mêmes valeurs pour le flux spectral dans les zones stables et aux moments des transitions. Cette raison explique que nous ayons considéré les enveloppes spectrales.

5.Autres fonctions d'observation

Dérivées du centroïde

Le centroïde est défini dans la section masri de cette partie et dans la section cen_sou de la partie part:sou. Le centroïde est utilisé aussi dans la méthode de Masri (voir la section masri) et la méthode de Hajda (voir la section ssec:methhajda).

La fonction d'observation est la << valeur absolue de la dérivée du centroïde >>. La taille des fenêtres d'analyse et la fenêtre de pondération sont les paramètres libres. La méthode est implémentée seulement sous matlab.

La rupture de modèles directement sur le son

Il s'agit d'appliquer la même méthode que dans les sections rupt_f0 et rupt_ene, mais cette fois directement sur le signal sonore. Les paramètres libres sont les mêmes que ceux décrits dans la section rupt_f0. Cette méthode est utilisée pour la parole par Rapport:Basseville et Books:Bassnik, et pour la musique par Article:Lepain. Nous essayons ici de détecter directement les variations brusques du signal. La fonction d'observation est appelée .

Le test de Brandt

Méthode

L'algorithme (voir Article:Brandt et Techreport:Jehan) est basé sur l'étude de trois modèles ar calculés pour trois portions , et du signal sonore. Leurs tailles sont fixes. Elles sont simultanément glissantes. Le degré de dissemblance entre ces trois modèles est mesuré. Cette mesure, nous donnant des pics au moment des transitions et un bruit dans les zones stables, est une fonction d'observation. Les trois portions sont disposées comme il est indiqué sur la figure disp.

Un modèle ar d'ordre est calculé pour chacune de ces portions. Nous obtenons les variances des trois erreurs de prédiction (des trois bruits blancs générateurs) : , et . La fonction d'observation est alors le test de Brandt :

est l'instant central de la fenêtre . Le moment de dissemblance maximale est obtenu quand la portion couvre la fin d'une note et la portion le début de la note suivante.

Paramètres libres

Ils sont au nombre de 2. Ce sont : , la taille de la portion ; , l'ordre des modèles ar. En général, est pris petit (quelques unités).

L'analyse de la stationnarité

Introduction

D'un point de vue statistique, un signal << stable >> peut être défini comme étant un signal stationnaire (au second ordre) et ergodique. Un processus aléatoire (signal analogique) est stationnaire au second ordre s'il vérifie :

De la même façon, pour une suite aléatoire (signal échantillonné) nous avons :

Et le processus ou la suite aléatoire est ergodique (à l'ordre ) si ses moyennes temporelles (jusqu'à l'ordre ) sont indépendantes du choix de la réalisation (IV).

Nous considérons deux portions du signal de taille et décalées de échantillons : ce sont nos deux observations. La somme de sinusoïdes et d'un bruit normal est un processus stationnaire au second ordre et ergodique au moins jusqu'à l'ordre 2. Soit le cas d'un signal constitué d'une somme de sinusoïdes de fréquences et d'amplitudes (aucun bruit n'est présent) :

Nous obtenons alors :

La fonction d'observation

La première idée est de considérer les coefficients d'auto-corrélation pour différents et de fusionner les résultats. La fonction d'observation à la base est donc multidimensionnelle, avec tous les problèmes de fusion de données qui se posent alors (voir la section sect:fusio). Il est nécessaire de considérer plusieurs . En effet, il peut fort bien arriver que pour certains nous ayons :

où les et les correspondent aux fréquences et aux amplitudes des composantes sinusoïdales présentes dans une zone stable et les et les aux fréquences et aux amplitudes des composantes sinusoïdales présentes dans la zone stable juste adjacente à la première. Dans ce cas la transition n'est pas détectée.

La fonction d'observation choisie est la << moyenne arithmétique des valeurs absolues des dérivées numériques des coefficients d'auto-corrélation >>, c'est-à-dire :

est un jeu de décalages temporels à définir, le temps et . Pour , nous obtenons ce que nous appelons la << dérivée de l'énergie >> dans la section der_ene.

Les paramètres libres

Ils sont au nombre de 2. Ce sont : , la taille des portions du signal sur lesquelles nous calculons les coefficients d'auto-corrélation ; , le jeu de décalages temporels. Nous prenons en compte les petits coefficients d'auto-corrélation.

Conclusion

Les performances en présence d'un signal << perturbé >> (par exemple par la présence d'un vibrato) sont très dégradées. Il faut aussi voir qu'en pratique est très loin de tendre vers l'infini : souvent, nous utilisons, pour estimer les coefficients d'autocorrélation, des fenêtres d'analyse de seulement quelques centaines d'échantillons ( vaut quelques dizaines de millisecondes).

La méthode de Masri

Masri, dans Thesis:Masri et Article:Masrideux, définit une fonction d'observation sensible aux attaques (<< onset >>) de notes. Soit un signal de taille et sa transformée de Fourier, de taille ( varie de à ). Nous avons :

(nous commençons à sommer à partir de , c'est-à-dire que nous ne prenons pas en compte le continu) ; et (<< : High Frequency Content >>, ou centroïde non normalisé en énergie) :

Un changement soudain dans un signal introduit des discontinuités de phase, donc de l'énergie apparaît dans les hautes fréquences. Voilà pourquoi nous les favorisons dans .

Le signal est une portion du signal sonore, portion multipliée par une fenêtre de pondération. Cette portion est glissante : le pas de déplacement est de échantillons. Nous indiçons chaque portion temporellement par .

Ainsi, la fonction d'observation (pour Fonction d'Observation de Masri) s'écrit :

Il s'agit à présent de la seuiller. Le problème est le même que pour les autres fonctions d'observation : comment choisir automatiquement le seuil de détection ? Masri ne répond pas à cette question : il seuille à la main. Nous donnons des solutions à ce problème dans le chapitre chap:pridec et l'annexe ann:seuil. Nous tentons ici de détecter simultanément les variations de l'énergie et les variations du contenu spectral. Cette fonction d'observation n'a pas été implémentée, ni sous matlab, ni en c. Les paramètres libres sont et . est telle que la taille de la fenêtre d'analyse vaut quelques dizaines de millisecondes ; et est tel que le pas de déplacement vaut quelques millisecondes.

Énergie et Centroïde -- Hajda

Hajda, dans Article:Hajda, utilise lui aussi (qu'il appelle le centroïde) et l'énergie (calculée dans le domaine temporel, et non pas comme pour la méthode de Masri dans le domaine fréquentiel). Le but ici aussi est de simultanément détecter les variations de l'énergie et les variations du contenu spectral. Chaque note est découpée en quatre zones, qui se succèdent : l'attaque, la transition, l'état stable et la chute. Le comportement (croissance ou décroissance) de l'énergie et du centroïde est observé pour décider dans quelle zone nous sommes. Ainsi, Hajda donne (et explique), le tableau tabl:hajda.

Les étiquettes qui sont données ici (attaque, transition, état stable, chute) complètent la liste d'étiquettes donnée dans le chapitre chap:label de cette partie. Cette fonction d'observation n'a pas été implémentée, ni sous matlab, ni en c.

La méthode de Smith

Smith, dans l'article Article:Smith, filtre un signal , obtenu à partir du signal sonore original en prenant en compte certaines caractéristiques de la cochlée (filtrage passe-bande, les fréquences centrales des filtres étant logarithmiquement placées (échelle Mels) ; redressement de chaque signal obtenu après ce filtrage passe-bande ; sommation des signaux redressés), par des filtres basés sur des idées appliquées en traitement de l'image (voir Article:Marr).

Ces filtres sont de la forme :

( DoE : pour << Difference of Exponentials Filter >>)

ou :

( HDoG : pour << Half Difference of Gaussians >>)

Et le signal à segmenter est alors (différence entre une moyenne sur un temps court et une moyenne sur un temps long) :

valant ou .

Smith appelle les fonctions les opérateurs << onset/offset >>.

Le problème réside toujours dans la difficulté rencontrée pour seuiller et dans la détermination des paramètres libres , , et . Cette fonction d'observation n'a pas été implémentée, ni sous matlab, ni en c.

6.La fusion de données

Problématique de la fusion de données

Au sujet de la fusion de données, voir, pour une introduction, le livre de Varshney Book:Varshney. Le problème peut se formuler ainsi : plusieurs capteurs imparfaits tentent de détecter le même phénomène ; il faut rassembler leurs résultats, ceci dans l'objectif d'obtenir de meilleurs performances que si un seul des capteurs était utilisé.



Deux types de relations entre les capteurs dont nous voulons fusionner les données sont considérées dans cet exposé :

Nous allons, dans la suite de l'exposé, faire l'hypothèse que les dimensions des fonctions d'observation multidimensionnelles correspondent à des données homogènes, alors que deux fonctions d'observation différentes correspondent à des données hétérogènes.

Fusion dans le cas de données homogènes -- Fusion de données pour les fonctions d'observation multidimensionnelles

Nous avons présenté dans les sections précédentes des fonctions d'observation multidimensionnelles : les << valeurs absolues des dérivées relatives des trajets des harmoniques du signal >>, les << valeurs absolues des dérivées des indices d'inharmonicité >>... Le problème est que nous voulons réduire chaque fonction d'observation multidimensionnelle à une fonction d'observation unidimensionnelle. Nous avons fait l'hypothèse que les données des dimensions de chaque fonction d'observation multidimensionnelle sont homogènes. La méthode la plus simple pour réduire le nombre de dimensions est de les moyenner. Les moyennes qui peuvent être considérées sont (il s'agit des moyennes classiques) :

La moyenne arithmétique est implémentée dans le programme segmentation pour toutes les fonctions d'observation multidimensionnelles. La moyenne géométrique (sans la racine d'ordre ) est implémentée dans le programme segmentation pour fusionner les valeurs absolues des dérivées des indices d'inharmonicité.

Dans les moyennes présentées ci-dessus, les dimensions ont toutes le même poids. Il pourrait être utile de moins prendre en compte celles qui concernent les hautes fréquences, de pondérer chacune d'elle par l'amplitude de l'harmonique qui la concerne, ou par l'énergie de la bande de fréquence qui la concerne Il s'agit de perspectives.

Fusion dans le cas de données hétérogènes -- Capteurs décorrélés

Cette section concerne la fusion des fonctions de décision.

Capteurs identiques

Les quatre décisions possibles sont (le capteur a détecté quelque chose et il y avait quelque chose à détecter) ou (le capteur n'a rien détecté alors qu'il y avait quelque chose à détecter) ; et (le capteur a détecté quelque chose alors qu'il n'y avait rien à détecter) ou (le capteur n'a rien détecté et il n'y avait rien à détecter).

Faisons l'hypothèse que nous ayons trois capteurs identiques (<< identiques >> veut dire qu'ils ont la même probabilité de bonne détection : et la même probabilité de fausse alarme : ). Supposons que la probabilité de bonne détection (c'est-à-dire : le capteur détecte quelque chose et il y a quelque chose à détecter) pour chacun d'eux soit égale à 0,8 (cas 1). Supposons que la probabilité de fausse alarme (c'est-à-dire : le capteur détecte quelque chose alors qu'il n'y a rien à détecter) pour chacun d'eux soit égale à 0,3 (cas 2).

Remarquons que les deux cas sont semblables, si nous formulons le second ainsi : << supposons que la probabilité de bonne détection (c'est-à-dire : le capteur ne détecte rien et il n'y a rien à détecter) pour chacun d'eux soit égale à 0,7 >>. Cela indique qu'il y a deux sortes de bonnes détections.

Considérons le premier cas : il y a quelque chose à détecter. Nous décidons qu'il y a quelque chose si au moins deux capteurs nous indiquent qu'ils ont détecté quelque chose (c'est-à-dire quand le poids du est supérieur au poids du : il s'agit de la règle de la majorité). Nous donnons dans le tableau tabl:fusiotrois1 les diverses configurations possibles (les trois capteurs ont détectés quelque chose, deux des capteurs ont détecté quelque chose, etc.), la probabilité d'apparition de chacune de ces configurations, le poids du et du pour chaque configuration et la décision finale pour chaque configuration. Grâce à la fusion des fonctions de décisions de ces trois capteurs, la probabilité de bonne détection (c'est-à-dire : on détecte quelque chose et il y a quelque chose à détecter) passe de 0,8 à 0,896 (somme des probabilités des configurations I, II, III et V).

Considérons le second cas : il n'y a rien à détecter. Nous travaillons toujours avec les trois mêmes capteurs. Grâce à la fusion des fonctions de décisions de ces trois capteurs, la probabilité de fausse alarme (c'est-à-dire : quelque chose est détecté alors qu'il n'y a rien à détecter) passe de 0,3 à 0,216.

Capteurs non identiques

Ci-dessus nous avons considéré trois capteurs identiques (mêmes probabilités de bonne détection et mêmes probabilités de fausse alarme). Clairement, la fusion des fonctions de décisions de ces trois capteurs permet d'obtenir une plus grande probabilité de bonne détection et une plus petite probabilité de fausse alarme.

Quand les capteurs ne sont pas identiques, l'apport de la fusion des fonctions de décisions devient incertain. Nous donnons quelques exemples dans le tableau tabl:fusiotrois2. Nous constatons que la fusion de données n'est pas efficace pour tous les exemples (la fusion de données est inefficace quand l'un des capteurs a une supérieure à la finale).

Dans deux cas la fusion de données est inefficace. Pour le cas 3, ceci est dû à ce que l'un des capteurs a des performances très supérieures à celles des deux autres. Pour le cas 7, ceci est dû à ce que l'un des capteurs a des performances très inférieures à celles des deux autres.

Ces exemples nous montrent qu'il faut utiliser la fusion de décisions avec prudence. Il faut d'abord s'assurer que les fonctions de décision obtenues aient des performances sensiblement identiques.

Nous pourrions ajouter des poids sur les capteurs : nous faisons plus confiance en tel ou tel capteur. Ceci ne ferait qu'augmenter la difficulté du processus de fusion.

Fusion dans le cas de données hétérogènes -- Deux capteurs sont corrélés

Nous considérons dans cette section que nous avons 5 capteurs. Deux cas sont étudiés : ou bien deux des capteurs sont absolument corrélés (fonctions de décision identiques), ou bien ils sont tous décorrélés. Nous donnons dans le tableau tabl:fusiotrois3 la finale pour plusieurs configurations des des capteurs, ceci suivant que deux des capteurs sont absolument corrélés (dans ce cas, ce sont les capteurs 1 et 2 qui sont corrélés) ou décorrélés.

Ces exemples nous montrent que l'utilisation de fonctions de décision égales (capteurs absolument corrélés) fait que les performances de la fusion de données sont moins bonnes qu'espéré. Il faut d'abord s'assurer que les capteurs soient décorrélés.

Fusion dans le cas de données hétérogènes -- Capteurs corrélés

Nous considérons dans cette section que nous avons capteurs. La probabilité de bonne détection pour chaque capteur est (capteurs identiques). Nous étudions la probabilité de bonne détection après la fusion de données. Plusieurs cas sont considérés :

La probabilité de bonne détection après la fusion de décisions, pour ces quatre cas, est donnée en fonction de sur la figure figu:pbdncapteurs.

Ainsi nous pouvons voir qu'il est important d'utiliser des fonctions d'observation décorrélées.

7.Recensement des fonctions d'observation étudiées

Le recensement des fonctions d'observation utilisables pour la segmentation en zones stables d'un signal monophonique, harmonique et non modulé (c'est-à-dire pour la segmentation en notes et/ou en phones) est fait dans le tableau res1. Nous donnons dans ce tableau pour chaque fonction d'observation à quel endroit de cet exposé elle est décrite ; son nombre de dimensions ; son degré d'indépendance par rapport aux programmes de l' ircam ; si elle est implémentée dans le programme segmentation ; et son nom symbolique. Les performances de ces fonctions d'observation sont évaluées sur des bases de données qui sont présentées dans la section anna, ainsi que sur des signaux simulés.

8.Conclusion

Nous avons défini un processus de segmentation, décomposé en quatre étapes. Nous venons de décrire le première : l'extraction de fonctions d'observation. Tel est ce processus de segmentation que nous pouvons toujours implémenter d'autres fonctions d'observation et aisément les y intégrer. Ainsi, un certain nombre de fonctions d'observation ont été définies par différents auteurs, que nous n'avons pas présentées ici. La méthode d' Alkulaibi (voir la référence Article:Alkulaibi) nous donne une fonction d'observation basée sur les moments d'ordres supérieurs (<< Higher Order Moments : HOM >>). La méthode de Solbach (voir la référence Article:Solbach) nous donne une fonction d'observation basée sur les ondelettes. Dans Article:Faudemay et Article:Junqua sont définies des fonctions d'observation basées sur les coefficients cepstraux. Etc.

Seulement, quelques remarques sont à faire à propos de l'intégration d'éventuelles nouvelles fonctions d'observation :

Ceci sera discuté plus en détail dans les chapitres per_seg1 et nec_seg, puis dans les autres parties de l'exposé.



Lors du calcul de certaines fonctions d'observation, le programme segmentation offre la possibilité de tenir compte de la fonction d'audition de l'oreille (voir l'annexe anne:attenu). Ainsi, ces fonctions d'observation peuvent aussi bien être considérées d'un point de vue purement traitement du signal, que d'un point de vue plus perceptif. Pour les flux spectraux, cette prise en compte de la fonction d'audition de l'oreille se traduit par le calcul du produit de la valeur de chaque échantillon fréquentiel des spectres d'amplitude ou des enveloppes spectrales par la valeur de la fonction d'audition de l'oreille à la fréquence pour cet échantillon fréquentiel. Pour les indices de voisement et pour les indices d'inharmonicité, cette prise en compte de la fonction d'audition de l'oreille se traduit par le calcul du produit de chaque indice par la valeur de la fonction d'audition de l'oreille à la fréquence du partiel qui nous donne cet indice.

Prise de décision pour chacune des fonctions d'observation

1.Introduction

Les fonctions d'observation implémentées dans le programme segmentation sont au nombre de dix. Il s'agit de :

Seule la dernière fonction d'observation est basée sur un algorithme de décision. Pour les autres, il nous faut discriminer les pics qui ont un sens, c'est-à-dire ceux qui correspondent à une transition, de ceux qui correspondent à du bruit, c'est-à-dire qui sont présents dans les parties stables du signal. Ceci est la deuxième étape de l'analyse segmentation en zones stables.



Dans la deuxième section (section sect:seuil) de ce chapitre, est présentée la méthode de seuillage qui a été retenue.

Dans la troisième section (section sect:norma) de ce chapitre, nous discutons de la normalisation des fonctions d'observation, cette normalisation ayant pour but d'éviter le seuillage.

Nous donnons une conclusion dans la quatrième section (section sect:conper) de ce chapitre. Nous donnons aussi quelques perspectives.

2.Seuillages

Calcul automatique de la valeur des seuils

Chaque fonction d'observation correspond à une variable aléatoire dont les échantillons se répartissent en deux classes : une qui correspond à du bruit (dans les zones stables) ; l'autre aux pics à détecter (aux moments des transitions). Il s'agit de discriminer ces deux classes, c'est-à-dire de poser un seuil. Il existe un grand nombre de méthodes pour seuiller automatiquement. Elles sont présentées, non exhaustivement, dans l'annexe ann:seuil. Leurs qualités et leurs défauts respectifs sont discutées dans cette même annexe. Elles viennent principalement du traitement des images : voir notamment Article:Survey.

Dans notre cas, les pics dus aux transitions sont très rares et leur variance est grande. Nous montrons dans l'annexe ann:seuil que les performances des méthodes de seuillage sont énormément dégradées quand la probabilité a priori d'une classe est très petite et quand la variance de cette même classe est très supérieure à la variance de l'autre classe.

La méthode implémentée dans le programme segmentation est la méthode des . Si nous considérons que le bruit suit une loi normale, nous pouvons estimer , l'écart-type, en retenant par exemple