UE Traitement des Signaux Audio

Transcription

UE Traitement des Signaux Audio
UE Traitement des Signaux Audio
Présentation du projet
L’objectif de ce projet, découpé en 5 séances de 4 heures (+1 soutenance bibliographique), est de
mettre en oeuvre une chaine de traitement complète des signaux audio, de leur acquisition à leur traitement pour de la localisation ou de la reconnaissance de mots. Les méthodes à exploiter sont évidemment
différentes selon qu’on travaille avec une capteur binaural (audition bio-inspirée) ou une antenne de microphones. Voici les différentes étapes à effecuer au cours du projet :
– Simulation et Acquisition de signaux audio - A l’aide d’un outils fonctionnant sous Matlab/Simulink, la propagation d’une source sonore quelconque sera simulée. Le capteur acoustique
émulé sera constitué d’une antenne linéaire de N microphones. En parallèle, une véritable antenne
linéaire de 4 microphones omnidirectionnels sera utilisée pour récupérerer des signaux audio depuis
une carte d’acquisition. De la même façon, une tête binaurale KU100 fabriquée par Neumann pourra
être utilisée pour récupérer des signaux binauraux. Une base de donnée de HRTF est également disponible afin de simuler finement l’effet de la tête sur la propagation d’un son. Enfin, des signaux de
parole seront également enregistrés de façon à constituer une base de mots.
– Localisation de source sonore - Sur la base des signaux simulés et expérimentaux en provenance de l’antenne de microphones ou de la tête binaural, une méthode de localisation (à choisir en
fonction du capteur utilisé) sera testée dans le cadre de sources sonores faible bande (sifflements)
ou larges bandes (voix).
– Extraction de source sonore - Toujours à partir des signaux simulés ou expérimentaux, il sera
nécessaire de mettre au point une méthode d’extraction de source sonore afin d’extraire le signal
d’intérêts des éventuelles sources de bruit placées autour du capteur audio.
– Reconnaissance de parole - Enfin, à partir des signaux de parole issus de l’étape d’exctraction,
différentes méthodes de reconnaissance de mots basées sur l’algorithme DTW (Dynamic Time Warping) et les codages LPC, PLP et MFCC seront testées.
L’évaluation des ce projet se fera sur la base de votre implication lors des différentes
séances de Projet. Vous devrez rendre également à la fin du projet un rapport de projet
complet par binôme portant sur l’ensemble des points abordés en séance. Il est IMPERATIF que ce rapport soit composé de résultats et de courbes COMMENTES.
ATTENTION : ce projet est AMBITIEUX, ce qui signifie clairement qu’il y a beaucoup
de travail personnel à fournir. Il est clair que les 6 séances de 4 heures seules ne seront pas
suffisantes pour mener à bien ce projet.
1
I
Thème 1 : Simulation et Acquisition de Signaux Audios
Une première étape consiste à d’obtenir, par la simulation ou expérimentalement, des signaux audio
qui seront ensuite exploités lors des séances suivantes. Différents scénarios seront envisagés (sources faible
ou large bande, une ou plusieurs sources, etc.) afin de permettre de tester en détails les performances des
algorithmes utilisés. Pensez à revoir rapidement les notions théoriques concernant :
– la propagation d’une onde sonore,
– l’échantillonnage et le théorème de Shannon (temporel et spatial).
I.1
Simulation de la propagation
Dans toute cette partie, nous considérerons une antenne de N microphones régulièrement espacés
d’une distance d cm. Tout type de source sonore peut être simulées : un signal sinusoı̈dal de fréquence
f0 par exemple, ou des signaux de parole (des signaux sont disponibles dans 2 fichiers wav voix1.wav et
voix2.wav si nécessaire). Le schéma fourni n’est pas complet, c’est à vous de le compléter sur la base de
ce que vous avez vu en cours.
1. Sous Matlab, ouvrir le fichier simu_param.m. Commenter son contenu et examiner le paramétrage
de l’antenne de microphones. Ecouter et visualiser les 2 signaux de paroles.
La simulation de la propagation s’opère à travers un schéma Simulink appelé simu.mdl. Celui-ci est
composé de différents blocs, chacun représentant un des aspects de la scène sonore simulée. Le bloc fonctionnel principal se nomme Simulation de la propagation et contient toute la mise en équation du problème
de propagation entre une source et l’antenne de microphones paramétrée dans le fichier simu_param.m.
2. Double cliquer sur le bloc Simulation de la propagation. Examiner son contenu, et compléter à l’aide
des blocs fonctionnels disponibles dans la librairie de base de Simulink.
3. Tester ensuite le bon fonctionnement du simulateur à l’aide d’une source sinusoı̈dale de fréquence
f0 = 1kHz pour différentes positions (r, θ) (distance, azimut à la source). Pour cela, vérifier que le
déphasage entre chacun des signaux issus des microphones correspond bien à la valeur théorique
attendue. Sauvegarder le résultat d’une de ces simulations pour un angle de votre choix, et une
distance comprise entre 1 et 3 mètres.
4. De la même façon, simuler la propagation d’un des deux signaux vocaux fournis depuis une position de votre choix. Vérifier là encore le bon fonctionnement du simulateur en vous basant sur les
décalages temporels existant entre les signaux issus des microphones. Sauvegarder le résultat d’une
de ces simulations dans les mêmes conditions que précédemment.
5. Modifier le schéma de façon à simuler la propagation des 2 signaux vocaux disponibles simultanément. Sauvegarder le résultat.
Vous disposez maintenant d’un outil simple de simulation de la propagation en environnement libre.
Libre à vous de l’utiliser par la suite pour simuler les signaux et sources qui vous intéressent.
I.2
Acquisition de signaux audio
Dans cette partie, une carte d’acquisition 4 voies de National Instruments est utilisée afin d’acquérir
les signaux issus d’une antenne linéaire de 4 microphones omnidirectionnels, d’un microphone de scène ou
2
d’une tête binaurale KU100. La carte d’acquisition effectue un échantillonnage synchrone de toutes ses
voies, et restitue ensuite les échantillons acquis dans un fichier texte qui pourra être ensuite utilisé sous
Matlab. Pour cela, le logiciel Sound and Vibration Assistant édité également par National Instruments
sera utilisé. La configuration de ce logiciel est déjà effectuée, avec les paramètres suivants : durée d’enregistrement : 5s, fréquence d’échantillonnage : fe = 50kHz.
1. Examiner la chaı̂ne d’acquisition exploitée. Déterminer le rôle de chacun de ses éléments. Lancer le
logiciel d’acquisition et tester son fonctionnement avec l’aide de l’encadrant de TP.
2. Effectuer l’acquisition d’une sifflement émis depuis la position de votre choix par rapport à l’antenne.
Contrôler la fréquence du sifflement depuis le logiciel d’acquisition. Quelle condition cette fréquence
doit-elle absolument vérifier ?
3. Après enregistrement, un fichier texte nommé acquisition.txt se trouve sur le bureau Windows.
Examiner son contenu. Renommer le (mettre un nom explicite !), et sauvegardez le.
4. Procéder de la même façon pour l’enregistrement de :
– 2 sifflements émis depuis 2 directions différentes,
– un signal de parole,
– 2 signaux de parole simultanés ;
– tout autre sons que vous jugerez utiles !
A la fin de cette première partie, vous devez disposer de plusieurs fichiers texte contenant les signaux
issus de l’antenne ou de la tête binaurale pour chacun des scénario envisagés. Le fichier data_conv.m
fourni permet de traiter ces fichiers de façon à obtenir 4 fichiers Matlab au format qui sera utilisé pour
les séances suivantes.
5. Examiner le fichier data_conv.m et commenter son contenu.
Afin de constituer une base de mots qui sera utilisée par la suite pour effectuer de la reconnaissance
de parole, il est nécessaire d’enregistrer environ 15 mots prononcés par différents locuteurs.
6. Partant d’un contexte applicatif de votre choix, choisir 15 mots qui constitueront la base de mots.
Enregistrer tous ces mots prononcés par un minimum de 5 personnes à partir du microphone de scène
SHURE disponible. A la fin de cette séquence d’enregistrement, vous devez disposer au minimum
de 15 × 5 fichiers texte différents : veillez à leur donner des noms explicites !
3
II
Thème 2 et 3 : Localisation/extraction de source sonore
II.1
Algorithme MUSIC :
L’objectif est maintenant de localiser une ou plusieurs sources sonores faibles bandes. Ces sources ont
été soit simulées, soit acquises expérimentalement lors de la séance 1 du projet. Une extension au cas de
sources sonores large-bande sera enfin evisagée afin de pouvoir localiser un signal comme la voix.
La méthode de localisation envisagée s’appuie sur la méthode haute-résolution MUSIC (MUltiple
SIgnal Classification) vue en cours. Le fichier music.m contient le code de l’algorithme à compléter.
Algorithme faible bande mono source :
1. Une première étape consiste à déterminer la fréquence centrale des signaux faible bande à traiter. A
l’aide d’une analyse adaptée, déterminer cette fréquence centrale. En déduire, parmi le vecteur de
fréquence renvoyé par Matlab, l’indice correspondant à la fréquence d’intérêt.
2. La méthode MUSIC s’appuie sur l’analyse en fréquence de fenêtres successives des signaux issus de
l’antenne. Effectuer cette analyse à court terme, pour chacune des fenêtres constituant le signal.
3. L’étape suivante consiste en l’estimation, à un instant donné, de la matrice de covariance des signaux
issus des microphones. Appuyez vous sur le polycopié du cours qui indique la méthode d’estimation
retenue, basée sur les valeurs passées de la FFT.
4. Une fois l’estimation fonctionnelle, effectuer une décomposition en valeurs et vecteurs propres de la
matrice de covariance. Que constatez-vous ?
5. A partir de la décomposition précédente, séparer les espaces bruit et signal estimés. En déduire
immédiatement l’expression du projecteur dans l’espace bruit.
6. Enfin, calculer le pseudo-spectre. Pour cela, vous disposez de la fonction Matlab steering_vector.m
qui calcul le vecteur d’antenne pour une distance, un angle, une fréquence, et une configuration
d’antenne (variable ANTENNE) données en paramètre.
7. Vérifier que le pseudo-spectre présente bien un maximum en la position de la source. Pour cela,
tester votre code à partir des signaux simulés. Commenter.
8. Tester ensuite l’algorithme sur les signaux réels. Conclure quant à l’efficacité de la méthode.
Algorithme MUSIC faible bande multi source
L’algorithme précédent suppose l’existence d’une unique source sonore. Modifier son code pour qu’il
puisse prendre en compte la présence de 2 sources faible-bande émettant simultanément. Tester votre code
sur les signaux simulés et expérimentaux. Que remarquez vous ?
Algorithme MUSIC large bande
Proposer une extension large bande de l’algorithme MUSIC proposé. Pour cela, on ne considérera
uniquement la bande en fréquence 300Hz ≤ f ≤ 3kHz.
4
II.2
Formation de voie
L’objectif ici est de mettre en oeuvre une formation de voie conventionnelle pour localiser et/ou
extraire un signal sonore large bande. Comme précédemment, les sources sonores à traiter seront extraites
des simulations ou des relevés expérimentaux effectués en séance 1.
La formation de voie est une technique qui consiste à polariser, dans une direction donnée de l’espace,
une antenne de microphones par l’intermédiaire de filtres numériques W1 (k), W2 (k), . . . , WN (k) bien
choisis (cf. figure 1). Dans le cas de la formation de voie conventionnelle, ces filtres sont choisis de façon
à compenser les retards liés à la propagation en sortie de chacun des microphones. L’antenne discrète
de microphone peut alors être assimilée à une antenne continue, possédant un diagramme de directivité
fonction des réponses en fréquences des filtres retenus.
Figure 1 – Formation de voie
Cette séance est composée de trois parties. Dans un premier temps, le diagramme de directivité de
l’antenne est identifié et étudié en fonction de différents paramètres. Puis, la formation de voie est exploitée
afin de calculer des cartes d’énergie acoustique de l’environnement, dans le but de localiser une ou plusieurs
sources sonores. Enfin, les capacités d’extraction de la méthode sur une source large bande sont testées.
Etude du diagramme d’antenne
1. La réponse en fréquence des filtres utilisés pour la formation de voie conventionnelle est Wi (k) =
ejkcτ , avec i = 1, . . . , N et τi le retard lié à la propagation entre la source et le iième microphone. En
déduire l’expression théorique du diagramme de directivité lorsque l’antenne est polarisée en θ = θ0 .
2. Le diagramme d’antenne peut être identifié expérimentalement à l’aide d’une source sinusoı̈dale de
fréquence f0 . Pour chacune des position θ de la source, le rapport entre les amplitudes du signal de
sortie de la formation de voie et de la source permet de déterminer un gain d’antenne. La fonction
MATLAB diagramme permet d’effectuer cette identification selon ce mode opératoire.
(a) Etudier le fonctionnement de la fonction diagramme proposée (help diagramme).
(b) Vérifier que les signaux des microphones, déphasés par la propagation, sont bien remis en phase
pour une direction de polarisation bien choisie.
5
(c) Effectuer l’identification du diagramme d’antenne pour des paramètres d’antenne que vous
aurez choisis (nombre de microphone, espacement entre les microphones, fréquence émise par
la source, etc.)
(d) Tracer le diagramme obtenu en fonction de l’azimut θ et de la fréquence f0 . Que remarquez
vous ? Justifier.
(e) Etudier indépendamment l’influence de chacun des paramètres précédents sur le diagramme
d’antenne. Commenter.
(f) Enfin, tracer le diagramme de l’antenne de microphones utilisée lors de la première séance
(rappel : N = 8, d = 8cm). Conclure quant à l’efficacité du filtrage spatial obtenu.
Exploitation de la formation de voie pour la localisation
Utiliser la formation de voie pour la localisation revient à polariser successivement l’antenne dans toutes
les positions potentielles des sources sonores de l’environnement. Le fonctionnement de cette méthode est
totalement analogue à un radar, à la différence que la polarisation est ici électronique et non mécanique.
Pour chacune des directions testées, l’énergie du signal de sortie de la formation de voie est calculée, puis
reportée dans une carte d’énergie de l’environnement. Les positions des sources sont alors estimées à partir
de l’allure de cette carte d’énergie, généralement à partir de ses maximums.
1. La fonction MATLAB beamforming (formation de voie, en anglais) vous est fournie. Etudier son
fonctionnement (help beamforming).
2. Calculer les sorties des formations de voie pour des azimuts allant de 0 à 180 degrés, par pas de
1 à 2 degrés, pour une seule et unique source sonore simulée ou expérimentale. Afficher l’allure de
quelques uns des signaux de sortie. Que remarquez vous ?
3. Calculer l’énergie de ces signaux de sortie sur des fenêtres successives de dim_fenetre points. Afficher
alors, sous la forme d’un diagramme polaire, les cartes d’énergie obtenues au fur et à mesure du
temps.
4. Commenter l’allure de la carte d’énergie en fonction de la nature de la source. En particulier, en
vous appuyant sur l’étude d’influence de la fréquence f0 effectuée dans la partie précédente, proposer
une amélioration visant à mieux localiser les signaux vocaux.
5. Valider le fonctionnement de la formation de voie pour la localisation lorsqu’il y a plusieurs sources
dans l’environnement. Conclure.
Exploitation de la formation de voie pour l’extraction
De part les capacités de filtrage spatial d’une formation de voie, il est possible de focaliser l’antenne de
microphones dans une direction souhaitée de l’espace afin d’extraire de l’environnement la source sonore
d’intérêt.
1. A partir des signaux issus des formations de voie ci-dessus, vérifier les capacités d’extraction obtenues
dans le cas ou une seule et unique source sonore d’intérêt est présente dans l’environnement. Ecouter
les signaux extraits, et les comparer avec un des signaux “bruts” issus des microphones.
2. Tester le cas multisource. Commenter l’efficacité de l’extraction des deux sources. Justifier les résultats obtenus et conclure.
6
II.3
Audition binaurale
L’objectif dans ce thème est de localiser et extraire une source faible ou large bande sur la base de
signaux binauraux issus d’une tête binaurale KU100 (signaux mesurés en séance 1) ou issus d’une base
de donnée HRTF fournie. Pour cela, il sera nécessaire de travailler avec les indices binauraux ILD et
IPD/ITD permettant d’aboutir à une localisation horizontale.
CIPIC database
Une base de donnée regroupant des mesures expérimentales de HRTF vous est fournie. Celle-ci a été
créée par le CIPIC (Center for Image Processing and Integrated Computing) et vous permet d’avoir accès,
pour de nombreux sujets, aux réponses impulsionnelles de la tête (HRIR). Celles-cic permettent de relier
un signal émis depuis une position déterminée par son azimuth et élévation aux 2 signaux gauche et droite
percus par les 2 oreilles du sujet. Une interface graphique vous permet de visualier ces réponses d’une
part, et des fonctions vous permettent d’extraire les échantillons de ces HRIR d’autre part.
1. L’utilitaire show_data permet d’afficher les HRTF et HRIR pour différents sujets et différentes
positions. Accéder au répertoire doc de la toolbox, et parcourir les différents articles présents afin
de prendre en main l’outils graphique.
2. Extraire, en s’inspirant du code fourni en exemple dans la documentation, les HRIR pour un couple
(azimuth ;élévation) donné.
3. A partir d’un signal monophonique de votre choix, créer un signal binaural provenant d’une directon
donnée. Ecouter le signal. Perecevez vous l’origine spatial du son ? Tester pour différentes positions
et pour différents sujets.
ITD/IPD - ILD
1. L’interface graphique de l’utilitaire show_data fournit un affichage de l’ITD. Proposer un moyen
permettant de retrouver cette courbe, à partir des HRIR directement, et à partir des signaux gauche
et droite simulés.
2. Déterminer les IPD et ILD en fonction de la fréquence.
3. Vérifier si les indices binauraux déterminés vérifient bien les propriétés vues en cours. Tester leur
mesure à partir de différentes sources sonores, que ce soit en simulation ou à partir des signaux
audio mesurés en séance 1.
Etude des modèles
Proposer, à partir des différents modèles vus en cours, une méthode visant à localiser une source sonore
depuis un enregistrement binaural. Tester dans un premier temps votre méthode sur les signaux simulés,
dont vous connaissez exactement l’origine spatiale. Valider ensuite son fonctionnement sur des signaux
réels, à partir de signaux faibles ou large bandes. Vérifier l’influence du bruit sur la qualité de localisation.
Enfin, mettre au point une stratégie simple d’extraction de source sonore en présence de 2 sources.
7