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