Convertir des sons .wav en valeurs expoitables
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

Convertir des sons .wav en valeurs expoitables



  1. #1
    Teknic

    Convertir des sons .wav en valeurs expoitables


    ------

    Bonjour à tous,

    je cherche une méthode qui me permettrait de transformer des fichiers .wav en tableau. La finalité est d'obtenir des données que je peux utiliser à ma guise dans la programmation d'un petit synthétiseur/sampleur organisé autour d'une arduino Due.

    Pour l'instant j'utilise "Encode audio" un utilitaire sur mac qui permet de convertir mes sons .wav (mono 44,1KHz), cependant il ne fonctionne qu'avec des sons 8 bits alors qu'il me faudrait une résolution d'au moins 12 bits.

    Je "synthétise" aussi des forme d'ondes depuis un simple programme basic.


    Au final les données pour être exploitables doivent se présenter sous la forme suivante:
    {0, 1023, 2047, 3071, 4091, 3071, 2047, 1023 }
    (Exemple démonstratif: il s'agit ici d'un fichier constitué de 8 échantillons, le signal audio encodé en 12bits représente un triangle. ).


    Bref, avez-vous des solutions pour effectuer la conversion de fichier audio 12bits (ou plus) en ce type de tableau?
    J'ai l'impression qu'il n'existe pas d'utilitaire pour cela, comment m'y prendre ?

    Je précise que mes connaissances en programmation sont limitées et que je suis sur mac.


    Merci pour vos conseils.

    -----

  2. #2
    Kissagogo27

    Re : Convertir des sons .wav en valeurs expoitables

    Bonjour, certains font l'inverse, avec les détails il devrait être possible de décoder un fichier Wav pour remplir un tableau ?

    https://openclassrooms.com/forum/suj...mat-wave-37889

  3. #3
    RomVi

    Re : Convertir des sons .wav en valeurs expoitables

    Bonjour

    Je peux le faire avec adobe audition (il suffit de sauver le morceau au format txt), je suppose que ce logiciel est disponible sur Mac également.

  4. #4
    Teknic

    Re : Convertir des sons .wav en valeurs expoitables

    Bonjour Kissagogo,

    merci pour ce conseil, en effet avec ces informations si je pouvais lire les données d'un .wav comme un simple texte je pourrais définir quelle partie des données m'intéresse.

    Seulement quand j'essaye d'ouvrir un ".wav" avec un simple éditeur de texte je tombe sur quelque chose comme ça:

    "RIFF$ WAVEfmt D¨àXdata¯

    !"#$%&')*+,-.01234678:;<>?@BCEFHIJLMOPRSUV XY[\^_abcefhijlmopqrtuvwyz{|}~ÄÅ ÇÉÑÃÙˆÚÇ˚1˜ê˘»¸π˙¥¸°¸π¸Æ˚J¯˚˜˜ eıJıíÚÚDÙ≈ÒŸÓµÓDÓìÓBÔÌÏÓdÌÔ∏Ú≠ Ù§ˆoˆ–˜ç¯*¯-¸˛Åflkd∆Ú
    'A@I),ÒNj?∆‚zë@xÚlî˙õıl¯'¸ÿ˘¸ ¸/¸˚^˜˜"ˆcÙUÙ}ÒÒfÛ”“ÌΩÌVÌ∑ÌyÓBÏ EÎRÌ∫ÏpÓ8Ú:Ù=ˆ
    ˆq˜1¯œ˜€˚≥˝¡ˇ6ë“z¶
    ŸÒˆ’ªÿù˘ÆÎpç%<ÎÇ¢.û
    uæ∫
    ]ÎŒCî∆∑ÿ˛¨˝÷¸b˛@Ú˝Â˚≥¸˛¸ˇÖˇVˇµx ≈ˇ€'c&ÄXÌ^‡\%\ògB‘
    &‚¸#¸F¸g˚˝<˚˘¨¯÷Ù&Ò’ÔLêÔ˜ Ó/Ӹ͵ÈaÁæ¡Á~ÁÿÊÁ.ÊrÊaÊTÊ%Á·Ê…Ê ⁄ÂA¡Ê{ÁïÁ∂ÁëÁ˛ÁÈÍÍ≠ÍVÎȪËÍÈ9Í ¨Î
    ÎâÍ5ÈÈïÈCÍ(ÏqΥȣÈÔË\ÈåÍ◊ÌsÒ© ÅtïÔ#ÒÇÛˆÙ±ˆÛ¯P˙G˚ü¸É˝/˛%«¢»˚
    P∞
    Z$·ûGsñDÛØæùɵ˜r¥°
    êw
    Ÿ ≠s«(".·Ò˝◊©¢
    Ò
    (
    ∑g¥
    _Á"@û£.Ó»ÃÙ`zî_ty·àä”[Ø’`‹.Ü8
    ¢
    "

    etc...
    etc...
    Je me rends compte que cette question est d'un niveau zéro...:/ mais comment puis-je ouvrir un fichier".wav" et le lire comme du simple texte?

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

    Re : Convertir des sons .wav en valeurs expoitables

    Bonsoir Romvi,

    Merci pour cette info très intéressante.... adobe audition est dispo sur mac, par contre c'est malheureusement payant.

    Hum :/

  7. #6
    Jack
    Modérateur

    Re : Convertir des sons .wav en valeurs expoitables

    Je me suis déjà amusé à tripatouiller des fichiers wav en langage C.
    En gros, le début du fichier est une structure de données décrivant l'organisation du contenu. Le reste est constitué de la suite des échantillons.
    Davantage d'infos par ici.

  8. #7
    bobflux

    Re : Convertir des sons .wav en valeurs expoitables

    Perso j'utilise sox :

    $ sox fichier.wav --encoding signed-integer --bits 16 --channels 1 --type raw --endian little fichier.raw

    Cette ligne de commande convertit le .wav en fichier brut contenant des échantillons 16 bits mono, donc trivial à reprendre en python, C, etc...

  9. #8
    Jack
    Modérateur

    Re : Convertir des sons .wav en valeurs expoitables

    Citation Envoyé par bobflux Voir le message
    Perso j'utilise sox :

    $ sox fichier.wav --encoding signed-integer --bits 16 --channels 1 --type raw --endian little fichier.raw

    Cette ligne de commande convertit le .wav en fichier brut contenant des échantillons 16 bits mono, donc trivial à reprendre en python, C, etc...
    Je me la note cette commande, je ne connaissais pas du tout.

  10. #9
    bobflux

    Re : Convertir des sons .wav en valeurs expoitables

    Oui, sox est le couteau suisse.

    Problème : je voulais lire des WAV encodées en float32, en python.
    Solution : popen("ligne de commande sox") qui livre les données dans le fllux de sortie du processus, et numpy.fromfile()... et yafini.

    Accessoirement ça lit (et écrit) aussi à peu près n'importe quoi, ça peut faire des filtres etc...

  11. #10
    lou_ibmix_xi

    Re : Convertir des sons .wav en valeurs expoitables

    La bibliothèque libsndfile est fournie avec des petits utilitaires, il y a en peut-être un permettant de faire ce que tu veux, sinon le créer autour de la bibliothèque est très simple.
    Pour ce genre de trucs, j'utilise OCTAVE (clône open-source de MATLAB), il peut très simplement lire/écrire des fichiers wav.

  12. #11
    whoami

    Re : Convertir des sons .wav en valeurs expoitables

    Bonjour,

    En environ 1 seconde, trouvé le format d'un fichier .wav : https://fr.wikipedia.org/wiki/WAVEform_audio_format

    Plus qu'à bosser un peu.

  13. #12
    jiherve

    Re : Convertir des sons .wav en valeurs expoitables

    Bonjour,
    En effet Sox c'est très bien même si l'interface est de type brutale. Il suffit de se faire des petits fichiers textes ou .bat pour automatiser la chose.
    Personnellement je l'utilise surtout pour convertir des .wav en format binaire pur sans emballage a noter que pour des bidouilles qui ne sont généralement pas de la HiFi un format 8 bits suffit c'est très peu encombrant et facile à traiter par un petit µC. Avec un Atmega il suffit de recopier les valeur directement dans le registre du timer qui gère la PWM audio. Le format sox qui va bien est .u8 (unsigned 8bits).
    JR
    l'électronique c'est pas du vaudou!

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. Ecart type différent pour des valeurs "normales" et des valeurs en log10
    Par mec3b dans le forum Mathématiques du supérieur
    Réponses: 5
    Dernier message: 06/09/2016, 09h45
  3. Sons
    Par Homerleroi dans le forum Archives
    Réponses: 16
    Dernier message: 25/03/2013, 00h12
  4. Fil de sons
    Par invite63180595 dans le forum Actualités
    Réponses: 3
    Dernier message: 20/08/2008, 21h26
  5. Réponses: 21
    Dernier message: 19/10/2007, 07h58