IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Convertir fichier audio (wav) en liste de chiffres au format decimal ou hexa


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 125
    Par défaut Convertir fichier audio (wav) en liste de chiffres au format decimal ou hexa
    Bonjour à tous,

    J'ai besoin de convertir un fichier son .wav (PCM non signé, 8KHz, 8bit, mono) en un fichier texte contenant toutes les valeurs numérique qui caractérise la piste sonore. Que les valeurs soient au format décimal ou hexa n'a pas d'importance.
    Avez vous une idée ?

    Merci.

  2. #2
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 512
    Par défaut
    Bonjour,
    je pense que tu as déjà du chercher sur Google. Voici par exemple un site qui détaille les quelques données de l'entête du fichier wav :

    http://www.freesoundeditor.com/docwave.htm

    A+
    Charly

  3. #3
    Membre expérimenté
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Décembre 2014
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Décembre 2014
    Messages : 115
    Par défaut
    Salut,
    Voici un petit bout de code (testé) qui convertit n'importe quel fichier binaire vers un fichier .txt
    avec des valeurs affichées en Hexa ( // ou décimal en)
    On va faire simple avec les noms : Soit Form1 avec dessus Opendialog1 , memo1 et Button1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    const NoSrc = -1;   // Fichier source n'existe pas
          ExDst = -2;   // Fichier destin existe déjà
     
    function BinToHexa (nSrc, nDst : string): integer;
    var Buff: array[0..15] of byte;
        i, nbLu: integer;
    var fSrc: file;
        fDst: text;
    begin
       result := 0;
       if not FileExists(nSrc) then
          result := NoSrc
       else if not FileExists(nSrc) then
          result := ExDst
       else begin
          assignfile (fSrc, nSrc);
          reset (fSrc, 1);
          assignfile (fDst, nDst);
          rewrite (fDst);
          while not eof(fSrc) do
          begin
             blockread( fSrc, Buff, 16, nbLu);
             for i := 0 to nbLu-1 do
                write (fDst, format('%2.2x ', [Buff[i]]));
                // ou en décimal write (fDst, format('%3.3d ', [Buff[i]]));
             inc(result, NbLu);
             writeln(fDst);
          end;
          closefile (fSrc);
          closefile (fDst)
       end;
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    var nSrc, nDst:string;
        Nbr : integer;
    begin
       if opendialog1.execute then
       begin
          nSrc := opendialog1.filename;
          nDst := copy(nSrc, 1, pos(extractfileext(nSrc), nSrc)-1) + '.txt';
          Nbr := BinToHexa( nSrc, nDst);
          Memo1.lines.loadfromfile(nDst);
       end;
    end;
    Utilise ce code pour tester la fonction, la modifier ..., mais attention à ne pas mettre un fichier trop gros, car le memo risque de peiner si tu veux y mettre 300Mo.
    Tcho :-)
    solilog

  4. #4
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 512
    Par défaut
    désolé, j'avais mal compris, je pensais que tu voulais extraire les valeurs numériques de l'entête du fichier wav (longueur, nombres de canaux, fréquence d’échantillonnage, ...)

    pour une simple conversion vers txt en hexa tu dois avoir ce qu'il faut.

    A+
    Charly

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 125
    Par défaut
    désolé, j'avais mal compris, je pensais que tu voulais extraire les valeurs numériques de l'entête du fichier wav (longueur, nombres de canaux, fréquence d’échantillonnage, ...)

    pour une simple conversion vers txt en hexa tu dois avoir ce qu'il faut.

    A+
    Charly
    Il n'y a pas de mal, en fait pour mon application, je vais au contraire supprimer le header.

Discussions similaires

  1. Prétraitement du son (fichier audio d'extension .wav)
    Par asma_tata dans le forum MATLAB
    Réponses: 0
    Dernier message: 22/02/2014, 20h21
  2. convertir fichier texte en liste de données
    Par rc_64500 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 11/12/2012, 14h05
  3. Traitement de fichier audio .wav
    Par kennyflorian dans le forum C++
    Réponses: 10
    Dernier message: 05/03/2009, 11h51
  4. [Audio] convertir fichier wav en mp3 ?!?
    Par solarien dans le forum Multimédia
    Réponses: 3
    Dernier message: 14/12/2008, 00h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo