Generation de sons 3D avec HRTF
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Generation de sons 3D avec HRTF



  1. #1
    VBcoder

    Generation de sons 3D avec HRTF


    ------

    Bonjour,
    Je ne suis pas sûr que ce soit le bon forum, mais comme cela concerne les ondes sonores (qu'on étudie en cours de physique) je me suis dit que c'était le plus approprié.

    J'aimerais utiliser les HRTF (Head Related Transfer Function) pour faire le sons provenir d'une certaine direction pour faire des musiques "8D"

    D'après ce que j'ai compris, il faut déjà calculer la fonction de transfert pour disons un angle donné :
    - On joue un son à coté de la tête d'une personne, et on récupère le son que le micro dans chaque oreille de la personne a capturé.
    - Avec une transformée de Fourier, on récupère le spectre du son original et des 2 sons capturés par les oreilles.
    - On calcule pour chaque oreille, le spectre du son capturé divisé par le spectre du son original.
    --> On a maintenant les 2 fonctions de transfert.

    Maintenant on veut faire provenir n'importe quel son d'un certain angle.
    On crée alors un fichier stéréo :
    Piste Gauche : invFourier( F_Transfert_oreille_G * Fourier(son) )
    Piste Droite : invFourier( F_Transfert_oreille_D * Fourier(son) )

    Et ça devrait fonctionner, non ?

    J'ai essayé de faire ça, mais je n'ai réussi à trouver que des enregistrements de sons autour des oreilles, mais sans le son original (le son émis).
    C'était sur ce site : http://recherche.ircam.fr/equipes/sa.../download.html
    Donc j'ai pris comme son original un des sons perçus par les oreilles.
    J'ai testé le procédé précédent, et ça ne marche pas très bien.

    Donc voici les questions que je me pose :

    J'ai entendu parler des fichiers .SOFA (Spacially Oriented Format for Acoustics) qui devraient peut-être contenir toutes les données qui m'intéressent, mais je ne sais pas comment les ouvrir, quel module utiliser en Python? Ou bien quel logiciel ?

    Pour les procédés que j'ai décrit pour calculer la Fonction de Transfert et l'appliquer, est-ce que c'est ce qu'il faut faire ?
    Est-ce qu'il n'y aurait pas un module Python qui permet de générer des sons 3D avec les HRTF ?
    Ou bien quels logiciels gratuits peut-on utiliser ?

    Merci de vos réponses

    -----

  2. #2
    Resartus

    Re : Generation de sons 3D avec HRTF

    Bonjour,
    Ce lien recapitule les divers logiciels utilisables
    https://www.sofaconventions.org/medi...tware_and_APIs

    Pour faire vos divisions dans toute la gamme, le son que vous utilisez devra avoir un spectre suffisamment large. Mais il me semble que des mesures en faisant varier la fréquence du son seraient préférables,
    Et plutôt que des micros d'oreilles sur un humain, il vaudrait sans doute mieux les mettre dans une tête artificielle
    Why, sometimes I've believed as many as six impossible things before breakfast

  3. #3
    gts2

    Re : Generation de sons 3D avec HRTF

    Pour SOFA et Python SOFA_APIs

    EDIT : doublon, avec mes excuses.

  4. #4
    Pio2001

    Re : Generation de sons 3D avec HRTF

    Citation Envoyé par VBcoder Voir le message
    Pour les procédés que j'ai décrit pour calculer la Fonction de Transfert et l'appliquer, est-ce que c'est ce qu'il faut faire ?
    Bonjour,
    Le premier problème avec cette façon de faire est qu'on va avant toute chose enregistrer la fonction de transfert de la pièce dans la quelle on se trouve, qui domine la fonction de transfert tête / torse. Il faudrait enregistrer cela dans une chambre sourde, ou bien utiliser le fenêtrage de réponse impulsionnelle pour s'affranchir de l'acoustique de la pièce (voir plus bas, logiciel REW).
    Le second est que pour enregistrer ce genre de fonction de transfert (pour mesurer les performances d'une enceinte hi-fi, par exemple), le rapport signal-bruit est désastreux.

    Je ne sais pas comment on mesure les HRTF, mais pour caractériser les enceintes, la méthode qui s'est imposée aujourd'hui est la méthode "Farina", qui permet de reconstruire une réponse impulsionnelle à partir d'un sinus glissant (logiciel REW), et dont le rapport signal-bruit est bien meilleur que lorsqu'on enregistre une simple impulsion.
    Je ne connais pas les détails, mais ce n'est peut-être pas très éloigné de ce que tu proposes. Sauf que le signal original est obligatoirement un sinus qui balaye la bande audio en parcourant les fréquences de façon logarithmique.

    Ensuite, pour appliquer une fonction de transfert connue à un signal, le plus simple et économique est la convolution : on exporte la réponse impulsionnelle de notre fonction de transfert à la fréquence d'échantillonnage du signal à traiter, et on convolue le signal avec la réponse impulsionnelle (à l'aide d'un DSP de type FIR, comme le plugin convolver pour Foobar2000).
    Mais cela ne permet que l'application d'une fonction de transfert fixe. J'imagine que pour la simulation de sons en 3D, on emploie une toute autre méthode, afin de pouvoir faire varier la correction en temps réel sans interrompre le flux audio, et ainsi simuler des sons qui se déplacent dans l'espace.
    Dans un espace vectoriel discret, les boules fermées sont ouvertes.

  5. A voir en vidéo sur Futura
  6. #5
    Pio2001

    Re : Generation de sons 3D avec HRTF

    PS (délai d'édition écoulé) :

    Il existe des HRTF génériques simulant une tête humaine moyenne.

    En pratique, on a aujourd'hui encore beaucoup de mal à donner l'illusion d'un son qui provient de l'avant. J'en discutais il n'y a pas si longtemps avec un professionnel de l'audio, et parmi les pistes de recherche il y avait la réalisation d'une HRTF propre à chaque individu au lieu d'une HRTF générique, et l'utilisation d'écouteurs intra-auriculaires, les casques avec écouteurs externes ajoutant une fonction de transfert supplémentaire du son qui correspond à la propagation depuis l'écouteur du casque vers le pavillon de l'oreille situé devant lui.
    Dernière modification par Pio2001 ; 10/07/2020 à 00h37.
    Dans un espace vectoriel discret, les boules fermées sont ouvertes.

  7. #6
    VBcoder

    Re : Generation de sons 3D avec HRTF

    Citation Envoyé par Pio2001 Voir le message
    Il existe des HRTF génériques simulant une tête humaine moyenne.
    Bonjour !
    Merci pour vos réponses
    J'aimerais justement savoir où je peux trouver ces HRTF, car je ne suis pas arrivé à trouver de telles données sur Internet.
    Enfin il est très possible que recherche mal ^^

  8. #7
    Pio2001

    Re : Generation de sons 3D avec HRTF

    Tu peux rechercher les termes HRTF, mais aussi HRIR (Head Related Impulse Response), et binaural recording.

    Si tu lis l'anglais, voici une discussion sur le forum head-fi qui devrait t'intéresser : https://www.head-fi.org/threads/reco...zation.890719/

    Je n'ai lu que les deux premières pages, mais il me semble que les intervenants essaient de faire plus ou moins la même chose que toi.
    Dans un espace vectoriel discret, les boules fermées sont ouvertes.

  9. #8
    VBcoder

    Re : Generation de sons 3D avec HRTF

    Bonjour,

    J'ai trouvé des "HRTF datasets", mais j'obtient des fichiers .sofa ou .ita, or j'aurais voulu avoir les données pour avoir directement la fonction de transfert...
    Je ne sais pas comment extraire ces données de ces fichiers...
    En fait il me faudrait déjà savoir ce que ces fichiers contiennent concrètement... Ce que je n'arrive pas à comprendre.

Discussions similaires

  1. Sons Graves Entendus plus loin que Sons Aigus
    Par invite11fdcbbe dans le forum Physique
    Réponses: 16
    Dernier message: 03/03/2019, 06h10
  2. Home cinéma ne fonctionne pas avec les sons AC3
    Par invite038d0deb dans le forum Matériel - Hardware
    Réponses: 0
    Dernier message: 12/05/2008, 10h57
  3. Réponses: 21
    Dernier message: 19/10/2007, 07h58
  4. Probleme de sons avec msn
    Par invitebeb790dc dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 29/01/2006, 19h20
  5. Jouer avec les sons.
    Par invitee9245170 dans le forum Physique
    Réponses: 2
    Dernier message: 06/04/2004, 05h50