Sondage :
Vous n’avez pas la permission de voter pour ce sondage.
Total 0 vote(s) 0%
* Vous avez voté pour cette proposition. [Voir les résultats]

Courbe cible d'une reproduction sonore en configuration "stéréo"
RE: Courbe cible d'une reproduction sonore en configuration "stéréo"
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 :
[Image: source_90degres_gauche.png]

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 :
[Image: target_curve_25_30_45degres.png]

Je fais plusieurs constats :
  1. 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.
  2. 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 !
  3. 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
  4. 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.

Cdlt,
Jean
Répondre
RE: Courbe cible d'une reproduction sonore en configuration "stéréo"
En fin de compte la courbe cible initiale était la bonne, j'avais un bug dans le choix des impulsions (calcul tricky de l'azimut...), et il y a un fichier dont les coordonnées semblent corrompues (le fichier MRT15.sofa). Du coup j'ai refais des calculs mais avec seulement 13 fichiers par côté pour pouvoir faire le moyennage des deux oreilles d'un coup.


Les nouvelles courbes cibles pour différents angles, en prenant 0 degré comme référence :

[Image: compensation_stereo_reference_0degree.png]



En prenant 30 degré comme référence :
[Image: compensation_stereo_reference_30degree.png]

Toutes les réponses d'impulsions calculées ici au format .mdat, le script ici.

Les courbes sont seulement lissées à 1/2 octaves, je n'ai pas fenêtré temporellement ça n'a pas de sens.

A vous de décider la référence à choisir maintenant : 0° ou 30° ? Big Grin
Répondre
RE: Courbe cible d'une reproduction sonore en configuration "stéréo"
J'ai une question sans doute idiote. Je dois avouer que je lis un peu en diagonale les posts les plus longs car c'est un peu trop complexe pour moi...

Si j'ai bien compris, tu appliques les corrections en fonction de la largeur de ta tête (écart entre les deux oreilles) et de l'angle entre ta tête et les enceintes. Ma question c'est: si tu n'es pas assis pile-poil au bon endroit ou si tu bouges la tête, les corrections sont-elles encore valides?

Mikael
CD: Sphinx Myth9 MkII+Parasound DAC2000/ LP: Technics SP10 MkII+Schröder 2+Phasemation PP500/ Transfo: Sculpture A/ Pré-phono: Audionet PAM/Pré: Firstwatt B1 DIY/Ampli: Firstwatt AlephJ DIY/HP: Petite Onken+Altec 414-8B+Faital HF10AK+Audio Pavillon MA600.
Répondre
RE: Courbe cible d'une reproduction sonore en configuration "stéréo"
folkdeath95 a écrit :J'ai une question sans doute idiote. Je dois avouer que je lis un peu en diagonale les posts les plus longs car c'est un peu trop complexe pour moi...

Si j'ai bien compris, tu appliques les corrections en fonction de la largeur de ta tête (écart entre les deux oreilles) et de l'angle entre ta tête et les enceintes. Ma question c'est: si tu n'es pas assis pile-poil au bon endroit ou si tu bouges la tête, les corrections sont-elles encore valides?

Mikael

J'ai appliqué une correction en faisant un moyennage sur 14 individus à morphologie différente. A priori ce moyennage permet de "robustifier" justement la correction. J'essaie de m'approcher de ce qui tend, en moyenne, à être le plus adapté pour le champ direct, ma pièce étant très absorbante le champ diffus est quasi absent. Effectivement le champ sonore perçu autour de la tête varie fortement entre les mesures des différents individus que j'ai utilisé, au point que je me demande si le champ diffus n'est pas l'unique moyen de "robustifier" la réponse du système, en quelque sorte.... Mais c'est contradictoire avec ce que j'ai pu ressentir jusqu'à présent : à chaque fois que j'avais de la réverbération, le son était moins bon. Si j'ajoute de la réverbération artificielle idem et ce quelle que soit la réponse utilisée pour la convolution.

J'ai vu sur une impulsion d'un set que j'avais trouvé quelque part que la réponse dans une "acoustic living room" de taille moyenne était élevé (genre 0.5sec ou 1sec selon les impulsions), et le spectrogramme présente des bosses et trous partout répartis de façon homogène sur le spectre, ce qui me semble être signe de forte diffusion. Peut-être la voie à adopter....

Cdlt,
Jean
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)