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

 C Discussion :

ecrire un fichier .wav en C


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Juillet 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 10
    Par défaut ecrire un fichier .wav en C
    Bonjour à tous,

    j'ai téléchargé sur internet un code qui simule un codeur "MELP".
    Ce codeur prend en entrée un fichier (moi j'ai mis en input un fichier .wav qu'il arrive à lire parfaitement) et doit retourner un autre fichier (aussi j'ai besoin en output d'un fichier .wav).
    Tout marche à merveille. ca compile ca s'exécute.
    Sauf que le fichier de sortie est binaire or que moi je veux qu'il soit un fichier son.

    voici le bout qui ecrit dans le fichier de sortie

    fwrite(int_sp,sizeof(SPEECH),size,fp_out);

    int_sp est le signal que je veux ecrire
    fp_out est le fichier de sortie

    je suis sur visual c++ 2008. et le code est en C
    merci d'avance

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 969
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 969
    Par défaut
    Hoa,

    Les fichiers son sont en binaire !

    MAIS, bien évidemment, il y a un header qu'il ne faut pas oublier, et y mettre les bonnes valeurs.

    Google (ou autre) te donnera facilement accès au format de ces fichiers.

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 10
    Par défaut
    Bonsoir droggo,
    tout d'abord merci d'avoir répondu.
    j'ai pas compris pour le header. quel header je dois inclure?
    (moi le fichier d'input je l'ajoute pas dans un header mais à l'execution du code j'ai la main pour spécifier le fichier et la il n'y a pas de problème à lire le fichier son d'entrée)

    peux tu m'eclairer un peu plus.
    merci

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    J'ai l'impression que tu récupères bien dans ton programme le binaire du son (les échantillons) mais comme le dit droggo, il faut lors de la création du fichier de sortie ajouter d'abord un entête de fichier qui décrit la suite et après seulement tu peux ajouter le binaire de ton son dans ton fichier.

    regarde ici par exemple mais je suis sûr que tu trouveras plein de choses sur google au sujet du format wav.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Salut,

    Citation Envoyé par tecna36 Voir le message
    j'ai pas compris pour le header. quel header je dois inclure?
    Un fichier wav contient en plus des échantillons quelques infos générales, comme le nombre de canaux, la vitesse d'échantillonnage, le format des échantillons etc... Ces infos sont stockés au début du fichier, c'est pourquoi ça a été appelé header (entête). C'est ce format qu'il faut potasser pour (re)fabriquer des fichiers waves.

    http://en.wikipedia.org/wiki/WAV

  6. #6
    Membre habitué
    Inscrit en
    Juillet 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 10
    Par défaut
    Merci bien,

    et est-ce qu'il y a une fonction particulière qui fait le formatage du fichier en utilisant ce header????

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Par défaut
    Salut,
    Lors d'un projet en C, j'ai du travailler sur des fichier WAVE. Ils ont un header RIFF qui peut varier.
    Dans mon cas, j'avais un fichier MONO ( 1 cannal ), en 16 bits, fréquencé à 44 100 Hz, j'ai écris 2 petits articles sur la manipulation WAVE et le chargement du fichier WAVE, qui peuvent sans doute t'aider.
    Si tu veux la fonction qui vise à écrire (que je mettrai en ligne d'ici quelques jours), je peux te la poster ici.

    Mike

  8. #8
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Citation Envoyé par tecna36 Voir le message
    est-ce qu'il y a une fonction particulière qui fait le formatage du fichier en utilisant ce header????
    Je pense que tu cherches une bibliothèque C gérant l'écriture des waves. Je pense que ça devrait se trouver sans problème avec les bons mots clefs dans google, comme au hasard c language wave library

    Sinon toute les infos pour écrire une bibliothèque écrivant des waves est là:
    http://fr.wikipedia.org/wiki/Wav

Discussions similaires

  1. [DirectShow] Ecrire un fichier Wav multicanaux
    Par pousspouss dans le forum DirectX
    Réponses: 10
    Dernier message: 04/07/2007, 10h50
  2. [Audio]Java et fichiers Wav
    Par danael dans le forum Multimédia
    Réponses: 3
    Dernier message: 10/10/2005, 20h09
  3. Création d'un fichier .wav
    Par eag35 dans le forum MFC
    Réponses: 5
    Dernier message: 09/02/2005, 15h13
  4. Lecture de fichiers ".WAV"...
    Par 0x4e84 dans le forum Langage
    Réponses: 2
    Dernier message: 03/09/2002, 09h43
  5. [Kylix] jouer un fichier wav avec kilyx
    Par JlouisI dans le forum EDI
    Réponses: 1
    Dernier message: 14/06/2002, 02h05

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