Modification de la hauteur d'un son
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Modification de la hauteur d'un son



  1. #1
    invite91087d68

    Modification de la hauteur d'un son


    ------

    Bonjour a vous, je suis étudiant en 2nde année de classe préparatoires, et j'ai un TIPE a faire sur le traitement audio, et en particulier, nous cherchons a modifier la hauteur d'un son, via Mapple.

    MA démarche était d'ouvrir un fichier wave via Maple, de le lire, d'appliquer une FFT afin d'obtenir le spectre, de modifier celui çi pour rendre plus aigu ou plus grave, et de le recomposer en un fichier sonore.

    Mon problème viens du fait que lors du test des programmes que j'ai crées, il s'est avéré que le son n'était pas modifiée, et n'était pas rendu plus grave ou plus aigu.

    Je cherche donc a savoir comment modifier le spectre de mon signal, audio afin de le rendre plus grave ou plus aigu.

    Merci d'avance !!

    PS;je cherche un point de vue "mathématique", et pas seulement une réponse du genre: utilise audacity...

    -----

  2. #2
    NicoEnac

    Re : Modification de la hauteur d'un son

    Bonjour,

    Ton son récupéré sous Mapple est un vecteur d'échantillons si je ne m'abuse. Ces échantillons sont lus à une certaine fréquence (44.1 kHz) par le lecteur audio afin de recréer un signal analogique vers tes enceintes. Pour info, cela provient du fait qu'échantillonner un signal revient à le reproduire au niveau du spectre fréquentiel tous les 2Fe.

    Bref ce que je veux dire, c'est que si tu supprimes un échantillon sur 2 tu obtiendras une fréquence 2 fois plus haute. Une manière de faire varier la fréquence plus finement, serait de reconstituer ton signal en analogique (ce qui revient à déterminer le spectre), puis de l'échantillonner à une fréquence Fe' différente de celle du lecteur audio (44.1 kHz donc).

    La clé réside dans le fait que le lecteur audio présume qu'il reçoit un vecteur d'échantillons à une fréquence et qu'il va le lire en conséquence. Il suffit de le truander en modifiant cette fréquence d'échantillonnage.

    Je ne sais pas si je suis clair
    "Quand les gens sont de mon avis, il me semble que je dois avoir tort."O.Wilde

  3. #3
    invite91087d68

    Re : Modification de la hauteur d'un son

    heu...ouais, je vais essayer de comprendre ça déja, mais par contre, si quelqu'un a d'autres réponses, n'hésitez pas !!

    Par contre, comment concrètement je peux changer le taux d'écahntillonage de mon son ??

  4. #4
    invite91087d68

    Re : Modification de la hauteur d'un son

    J'arrive pas a éditer, sa plante a chaque fois, donc je re...

    j'ai essayé ta manip, la première en tout cas, sa marche bien, mais j'obtiens un son 2 fois plus court,e t 2 fois plus rapide...moi je voudrais garder la meme longueur et la meme vitesse...

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

    Re : Modification de la hauteur d'un son

    C'est une modification assez complexe.

    Je crois qu'il existe des packages open source qui font ça. Cela s'appelle du "Time stretching".
    En fait, disons que l'opération que tu veux faire est équivalente à un time stretching, qui change la durée sans changer la fréquence. Il suffit de multiplier la durée par deux. Ensuite, tu ralentis deux fois ton signal. Cela lui redonne sa vitesse initiale, mais la fréquence sera divisée par deux.

    Je ne connais pas le détail de l'opération de time stretching, mais en gros, cela doit consister à découper le signal en tranches, et à répéter chanque tranche. Les tranches ne doivent être ni trop petites, afin de ne pas supprimer les fréquences, ni trop grandes, afin que le son paraisse toujours continu. Normalement, la bonne taille devrait être de 1/10e de seconde.

    Réalisé comme cela, le résultat doit être assez horrible. Je crois que pour obtenir un résultat acceptable, il faut calculer les FFT de chaque tranche, faire le collage des tranches de FFT calculées avec le décalage temporel souhaité, et reconvertir en son.

    Bien sûr, il doit y avoir toute une alchimie dans la façon de découper les tranches, (avec un certain pourcentage de recouvrement ?), et de les "fenêtrer" pour éviter les effets de bord (fenêtrage Blackmann-Harris, Hanning, etc).
    Dans un espace vectoriel discret, les boules fermées sont ouvertes.

  7. #6
    invite91087d68

    Re : Modification de la hauteur d'un son

    Merci beaucoup pio, néanmoins, je ne cherche pas une explication parfaite, ni un algorithme permettant de gommer toutes les imperfections...

    un algorithme basique, me suffirait, meme si j'ai ensuite des effets de clics.

  8. #7
    NicoEnac

    Re : Modification de la hauteur d'un son

    Citation Envoyé par Pio2001 Voir le message
    Je crois qu'il existe des packages open source qui font ça. Cela s'appelle du "Time stretching".
    Tu peux aussi chercher "pitch shifting"
    "Quand les gens sont de mon avis, il me semble que je dois avoir tort."O.Wilde

  9. #8
    invite91087d68

    Re : Modification de la hauteur d'un son

    Bon ben j'ai réussi !!

    avec un système de fenetrage, sa marche pas trop mal, sa grésille encore un petit peu, maintenant j'ai plus qu'a étudier comment améliorer ça !!

  10. #9
    NicoEnac

    Re : Modification de la hauteur d'un son

    Tu peux faire varier les fenêtres. J'ai vu des exemples en cherchant hier utilisant une simple fenêtre triangulaire. Pourrais-tu néanmoins détailler ce que tu as fait ici ou en message perso stp ? Ca m'intéresserait !
    "Quand les gens sont de mon avis, il me semble que je dois avoir tort."O.Wilde

  11. #10
    invite91087d68

    Re : Modification de la hauteur d'un son

    DIsons que je n'ai pas fait une méthode fine, pour commencer.

    J'ai pris un petit fragment de mon son (2048 echantilons), ensuite, j'ai appliqué une FFT a ce fragment, j'ai crée un nouveau tableau de valeurs, prenant 1 valeur sur 2 de celles obtenues suite a la FFT, j'ai ensuite appliqué une FFT inverse, mais sur la base de 1024 valeurs cette fois.

    Ensuite, j'ai appliqué ça avec une boucle sur une série de fragments (64 fragments me fait un morceau de 2 ou 3 secondes), et j'ai recomposé le tout en un nouveau fichier son.


    Il est 2fois plus court, mais garde la meme hauteur, en tout cas a l'oreille.

    Par contre, en utilisant un fenetrage plus pointu, comme une fenètre de Hann, je pense pouvoir améliorer la qualité, ou sinon, en recouvrant légèrement les fenetres à la base.

    Je vais également essayer en prenant des moyennes de valeurs pour le tableau en frequentiel modifié.En effet, si j'ai la des valeurs pour f1, f2, f3, f4 a la base, après modification, je supprime simplement f2 et f4.
    La je fait plutot faire quelque chose du type (f1+f2)/2 et (f3+f4)/2, je verrais bien ce que sa donne.

Discussions similaires

  1. Modification enceinte pour plus de son...
    Par invite64eef85a dans le forum Électronique
    Réponses: 30
    Dernier message: 04/02/2009, 17h29
  2. La hauteur d'un pont
    Par invite434b562e dans le forum Physique
    Réponses: 11
    Dernier message: 13/01/2009, 03h01
  3. hauteur d'un cylindre
    Par invite315cffb2 dans le forum Mathématiques du collège et du lycée
    Réponses: 10
    Dernier message: 03/11/2008, 22h54
  4. [TPE]Son, modélisation et modification
    Par invite7915ecde dans le forum TPE / TIPE et autres travaux
    Réponses: 2
    Dernier message: 01/11/2008, 06h49
  5. [Brun] hauteur de son différent
    Par invitea3237216 dans le forum Dépannage
    Réponses: 6
    Dernier message: 12/10/2008, 16h13