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

Signal Discussion :

Enregistrer un son audio


Sujet :

Signal

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Points : 14
    Points
    14
    Par défaut Enregistrer un son audio
    Bonjour à tous,
    j'aimerais enregistrer de manière "dynamique" un son, c'est à dire laisser le choix à l'utilisateur de l'instant de la fin de l'enregistrement. J'ai essayé 2 méthodes :

    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
    function speechdata=enregistrement(k)
    micrecorder = audiorecorder(44100,16,1);
    if k==3
    %     time=input('Vous allez maintenant enregistrer votre dictionnaire audio.\nVeuillez indiquer le temps de votre enregistrement (en seconde).');
        prompt={'Vous allez maintenant enregistrer votre dictionnaire audio. Veuillez indiquer le temps de votre enregistrement (en seconde).'};
        name='Choix du temps du record';
        numlines=1;
        defaultanswer={'20'};
     
        options.Resize='on';
        options.WindowStyle='modal';
        options.Interpreter='tex';
     
        time=inputdlg(prompt,name,numlines,defaultanswer,options);
     
    end
    recordblocking(micrecorder,time);
    % Now, speak into microphone
     
    speechdata = getaudiodata(micrecorder);
    Mais celui-la donne "time" comme une string alors que recordblocking attends un scalaire.

    Autre solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    micrecorder = audiorecorder(44100,16,1);
     
    msgbox('Enregistrez votre mot ou votre dictionnaire\n\nCliquez pour terminer');
    record(micrecorder);
    % Now, speak into microphone
    waitfor('WindowButtonDownFcn');
    close;
    stop(micrecorder);
    speechplayer = play(micrecorder); 
    % Now, listen to the recording
     
    stop(speechplayer);
    speechdata = getaudiodata(micrecorder, 'uint8');
    Quelque chose dans cette idée là où on arrete l'enregistrement par un clique ou appui sur une touche définie.

    Je vous remercie de toutes vos réponses.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Essaie ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    time=inputdlg(prompt,name,numlines,defaultanswer,options);
    time = str2num(time{1});
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    merci beaucoup c'etait simple en fin de compte mais je n'ai pas les automatismes matlab ...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Maintenant j'arrive bien à l'enregistrer mais quand je l'ecoute j'ai l'impression d'avoir un tigre dans mon PC ("bruit de grognement").

    De quel parametre d'enregistrement ou de lecture cela peut-il venir ?

  5. #5
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Quelle fonction utilises-tu pour l'écoute ?
    Quels sont les caractéristiques de ton signal ?

    Peux tu nous montrer cette partie de ton code ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Voici le bout de code servant à l'enregistrement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function speechdata=enregistrement(k)
    micrecorder = audiorecorder(44100,16,1);
     
    [...] % script pour la boite de dialogue servant à definir la valeur de "time"
     
    recordblocking(micrecorder,time);
    % Now, speak into microphone
     
    speechdata = getaudiodata(micrecorder);
    Quand je fais un play(micrecorder) j'ai le signal attendu

    par contre le soundsc(speechdata) ressemble plus à un grognement de lion !!

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Probleme résolu :

    Dans soundsc j'omettais la frequence et le nombre de bits en parametre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    soundsc(speechdata,44100,16);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/10/2009, 11h52
  2. Réponses: 1
    Dernier message: 07/09/2005, 10h25
  3. [Carte Son][Audio+Video]
    Par chat hotplug dans le forum Composants
    Réponses: 10
    Dernier message: 04/04/2005, 12h03
  4. Comment enregistrer le son interne ?
    Par ired dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 31/01/2005, 13h43
  5. Enregistrement du son par programme
    Par Invité dans le forum C++Builder
    Réponses: 3
    Dernier message: 10/06/2003, 23h13

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