Il s'agit ici de poser des marques de segmentation sur un signal acoustique, dans le but de construire des techniques permettant d'améliorer le codage du son et d'obtenir des segments de son qui soient manipulables, transformables...
On définit trois niveaux de segmentation :
Le niveau << source >> : on distingue dans une bande son les parties parlées , les parties chantées et les parties instrumentales, et d'autres (bruits...).
Le niveau << caractéristiques >> : on caractérise des segments plus petits avec des caractéristiques du type : silence/son, transitoire/stable, voisé/non voisé, harmonique, présence de vibrato...
Le dernier niveau est la segmentation du signal en notes ou en phones .
Extraction des caractéristiques et troisième niveau de segmentation
Procédure :
Cette procédure est trop simple, notamment parce qu'elle ne fait pas (ou pas assez) interagir les niveaux de segmentation entre eux.
Fonctions d'observation utilisées :
Tracé de f0
Dérivée de f0
Dérivée relative de f0
Tracé de l'énergie
Dérivée de l´énergie
Dérivée relative de l´énergie
Multiplication des inharmonicités des premiers partiels
Somme des inharmonicités des premiers partiels
Coefficient de voisement
Flux spectral
Chacune de ces fonctions d'observation est une << caractéristique >> du signal étudié.
Prise de décision :
J'utilise des méthodes de seuillage statistiques, venant notamment du traitement des images.
Un exemple
Le son étudié
Visualisation des fonctions d'observation
Prise de décision
Prise de décision finale : segmentation en notes
Remarque
La procédure linéaire donnée ci-dessus n'est pas suffisante : les deux autres niveaux de segmentation influent sur celui-ci et des interactions (au niveau de leur calcul et/ou de la prise de décision) entre les fonctions d'observation sont à prendre en compte.
Séparation de sources
Définition
Il ne s'agit pas ici du problème classique de la << blind separation >>, c'est-à-dire du problème où l'on a n sources et m capteurs, avec n<=m et m>=2 . Dans notre cas, nous avons 1 capteur (bande son en mono) et n sources (nous nous limitons à n=2 pour le moment).
Dans un premier temps, nous nous intéressons au mixage de deux sons harmoniques. Nous distinguons encore trois cas :
les deux sons ne sont pas formés des mêmes notes et les instants de ruptures entre elles ne tombent pas aux mêmes instants pour les deux sons
les deux sons ne sont pas formés des mêmes notes mais les instants de ruptures entre elles tombent aux mêmes instants pour les deux sons
les deux sons sont formés des mêmes notes et les instants de ruptures entre elles tombent aux mêmes instants pour les deux sons (ils ont alors, par exemple, des vibratos, et/ou des trémolos différents)
Le premier cas
L'idée est d'obtenir le tracé de tous les partiels et de les ranger dans deux groupes. Pour ce faire, nous utilisons plusieurs critères :
un chaque instant, nous rangeons les partiels présents en deux groupes harmoniques
vibrato
trémolo
variations de fréquence
variations d'amplitude
raccordement des partiels (<< onset >> et << offset >>)
Pour finir, il faut recoller les morceaux.
Les problèmes qui se posent sont compliqués à résoudre :
un des partiels appartient à l'un ET à l'autre des sons
un partiel appartient d'abord au son 1 , puis aux deux sons (on a eu un changement de note pour le son 2 ) (puis, à la rigueur, au son 2 seul (on a eu un changement de note pour le son 1 ))
On voit donc que, comme pour la segmentation, un processus linéaire :