Bonjour,
Je pense que j'avais mal calculé ma courbe cible la première fois. En cherchant des filtres HRTF pour différents individus pour faire un calcul plus robuste, j'ai trouvé un jeu de données ici :
http://gershwin.akustik.rwth-aachen.de/h...tf-lic.php
Il suffit de remplir le formulaire, puis un lien qui n'est valide que 2 heures, vous est envoyé. Le jeu de données présente des HRTF pour 48 individus, au format SOFA (et au format itaHRTF que je n'ai pas utilisé). J'ai mis une heure pour vérifier que j'avais bien compris les données... Il vous suffit de télécharger l'API matlab SOFA, ajouter le dossier au path de matlab, télécharger et extraire les fichiers SOFA de la base de données que j'ai donnée auparavant. J'ai utilisé ce script si vous voulez vous amuser :
https://drive.google.com/open?id=1OY93G5...0EO_seLjWZ.
En analysant le premier jeu de données, j'ai essayé de comparer l'impulsion oreille gauche vs oreille droite, pour voir si la référence temporelle était cohérente ou non dans les impulsions. En effet, le délai influe sur la sommation des réponses d'impulsions pour la source gauche et droite pour une même oreille : je préfére utiliser le délai de l'expérimentation plutôt que de calculer un délai erroné. Avec REW, il semble qu'a l'import d'une impulsion au format .wav, l'alignement temporel du pic d'impulsion soit automatiquement calculé et l'impulsion automatiquement décalée temporellement. En revanche sur Matlab, si j'affiche les deux impulsions gauche et droite, les impulsions sont bien décalées, exemple pour une source situé 90° à gauche :
Le délai est d'environ 44-18 = 26 échantillons, soit pour 44.1Khz un délai de 0.59ms. Ca représente une largeur de tête de 20cm, sauf que la largeur de tête (distance entre les orifices et donc la position des micros) dans les expérimentations est de 14cm en moyenne (ca varie de quelques cm entre chaque individu, souvent moins de 2). J'en déduis que l'onde parcours environ 20cm pour "contourner" la tête.... Mais bon, on a vu que les impulsions sont correctement référencées temporellement, donc je m'abstiendrai de ce calcul de délai dorénavant.
J'ai tout d'abord extrait les impulsions des oreilles G et D pour les 48 individus pour une source de face, que j'ai aligné temporellement et pour lesquelles j'ai ensuité réalisé un vector average. Comme il n'est pas possible de faire cela pour 48 mesures, j'ai fais un premier average sur les réponses des individus 1 à 20, puis un second average sur les réponses des individus 21 à 48, puis j'ai moyenné les deux impulsions obtenues sur ces deux paquets.
Ensuite, j'ai considéré une écoute stéréophonique avec deux sources disposées à un certain angle par rapport au centre. Par exemple, 30 degrés.
Pour chaque individu, j'ai extrait les 72 impulsions les plus proches du plan horizontal (l'auditeur est a une position (0,0,0), donc la source doit être a une hauteur (x,y,z proche de 0). Sur le premier fichier MRT01.sofa, il s'agit des impulsions 16,32,64....,2304. Mais sur les autres individus, les mesures ne sont pas indexées de la même manière. En revanche, il semble y avoir toujours 72 impulsions proches du plan horizontal (résolution de 5 degrés sur l'azimut). J'ai donc extrait dans un premier temps les 72 impulsions horizontales. Puis j'ai cherché l'impulsion dont l'azimut est le plus proche de celui des enceintes. Je n'ai pas fait d'interpolation : si l'angle est 29°, l'impulsion sera celle avec un azimut de 30°, je n'interpole pas entre l'impulsion de 25° et de 30° donc.
Puis j'ai utilisé Matlab pour effectuer une transformée de Fourrier, une sommation des impulsions pour la source G et la source D pour chaque oreille, puis j'ai calculé la transformée inverse pour calculer l'impulsion, que j'ai alors exporté en .wav.
Ensuite, j'ai calculé a l'aide de REW un moyennage vectoriel pour les 48 impulsions de l'oreille G (combinant le signal de la source G et de la source D), et un moyennage vectoriel des 48 impulsions de l'oreille D, enfin un moyennage vectoreil des 2 car la tête est a peu près symétrique. J'ai procédé, comme tout à l'heure, par paquet de 20 à 28 impulsions.
J'ai ensuite calculé la compensation qu'il faut appliquer pour obtenir une réponse similaire à celle d'une source frontale. J'ai réalisé ceci pour trois angles de configuration : 25° (ma configuration), 30° (la configuration "standard" recommandée), et 45° (la configuration de Dominique Pétoin). Voici le résultat, que j'ai aligné en amplitude à 500hz et que j'ai fenêtré temporellement avec une FDW de 6 cycles et que j'ai lissé a 1/3 octave :
Je fais plusieurs constats :
- Entre les courbes 25° et 30°, l'écart sur la bande passante 180Hz à 6000Hz ne dépasse pas 1dB, ce qui est signe que les réponses calculées sont plutôt fiables, consistantes.
- Entre les courbes 30° et 45°, l'écart est important dans le haut du spectre : environ 10dB d'écart à 3khz, ce qui est signe que dans un champ libre, l'angle d'incidence des enceintes est sensiblement importante.... si 30° est la courbe de référence, il faut fortement atténuer entre 5 et 10khz, en tout cas par rapport à la bosse à 3khz !
- Si les enregistrements sont masterisés pour sonner "bien" a 30°, je n'ai pas besoin de corriger ma réponse ou très très peu
- Si les enregistrements sont faits en mono et ne sont pas masterisés pour sonner "bien" spécifiquement en stéréo à 30° d'incidence (par exemple pour un film encodés en surround et downmixé en stéréo...) , il faut (évidemment toujours en champs libre...) compenser légèrement le haut du spectre : +2dB vers 3.5khz sur 1 octave, et (+4 à +5dB) vers (7 à 7.5Khz) sur 0.4 octave environ.
Je vais essayer d'ajuster ma courbe cible vers cette nouvelle correction.
Concernant le RT60, j'ai analysé des réponses d'impulsions de Samplicity, il semble d'après le spectrogramme qu'il soit fortement fait usage de diffusion, ce qui peut peut-être expliqué pourquoi je ne supporte pas la réverb chez moi : peut-être que la présence de réverb implique une diffusion très bien équilibrée... Je ne sais pas comment faire pour diffuser correctement sur tout le spectre, donc pour l'instant je me contente d'absorber : c'est mieux pour mes oreilles ^^.
Cdlt,
Jean