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

MATLAB Discussion :

Analyse de son en temps réel [Débutant]


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Analyse de son en temps réel
    -Bonjour, je bosse sur un projet ou je dois pouvoir analyser un son en temps réel. Je cherche un peu une fonction qui serait capable de lire un son en continu et d'afficher un graphe, une spectrographie en temps réel.

    Nous arrivons bien sur à lire un fichier audio avec la fonction "waveread" mais pas à lire en continue


    Quelqu'un connaîtrais une astuce dans le cas ou une telle fonction n’existerais pas ?

    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    Salut,

    Lire un son en temps réel, ca n'a pas vraiment de sens non ? Soit tu as un son dans un fichier et tu le lis. Tu utilises à ce moment wavread.

    Soit tu as un son que tu souhaites enregistrer et étudier en temps réel. A ce moment là, faut plus regarder du côté de wavrecord.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    help wavread
    help wavrecord

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    C'est à dire que je ne dois pas toucher au programme en tant qu'utilisateur, l'utilisateur fait un son sur la table et matlab doit l'analyser . L'utilisateur ne doit pas donc lancer waveread puis l’arrêter et pareillement pour waverecord.

    En faite il faudrait une fonction qui soit en veille permanente ( temps prédéfini ou non ) et dès que le micro détecte un son , l'enregistre .

    Oui je sais ça a l'air farfelu, et on n'arrive pas a trouver une solution sur matlab ( l'idéal )
    On a trouvé sinon la bibliothèque "portaudio" en C mais bon

    Une idée ?? Merci

    Ps: Projet de domotique

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    Avec les indications que nous a donné, ca se complique légèrement. Un truc en veille sur matlab, je ne sais pas si ca existe. D'autant que l'utilisateur devra à un moment ou un autre lancer le programme.

    Après, tu peux essayer une boucle infinie pour voir ce que ca donne. Je m'explique:

    Tu ouvres une fenêtre d'analyse avec un plot. Ensuite tu mets une boucle while avec la condition de répéter les trucs à l'intérieur de la boucle tant que la fenêtre reste ouverte.

    Dans les instructions de ta boucle, tu mets un wavrecord pour enregistrer tout ce que tu veux avec ensuite des traitements sur le son entrant. Et tu finis par un drawnow pour avoir l'affichage en "temps réel" sur ta figure.

    Je ne sais pas si ca répond vraiment à ta question mais pour le moment, il n'y a que ca qui me passe par la tête.

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Si je comprend bien tu veux faire une lecture et affichage temps réel du signal audio. Pour cela il suffit d'utiliser la fonction audioplayer avec une boucle de lecture et affichage en permanance des échantillons bref ,ce bout de code devrait t'aider .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [A , SR] = wavread('NL.wav');
    player = audioplayer(A,SR);
    t = player.totalSamples;
    play(player) ;
    c = 1;
    while(c < t-2)
        c = player.currentSample;
        plot([A(1:c); zeros(t - c,1)])
        drawnow;
    end

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour, j'ai essayé d'utilisé vos solutions sur la dernière version de matlab, cela n'a pas fonctionné

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

Discussions similaires

  1. Traitement d'un fichier son en temps réel
    Par strattist dans le forum MATLAB
    Réponses: 0
    Dernier message: 08/11/2011, 19h07
  2. Génération de son en temps réel
    Par Tibtib dans le forum Signal
    Réponses: 6
    Dernier message: 24/05/2011, 17h57
  3. Réponses: 3
    Dernier message: 23/02/2010, 09h53
  4. Transfert de Son en temps réel
    Par rc.dev2009 dans le forum Développement
    Réponses: 3
    Dernier message: 24/12/2008, 12h36
  5. [SON - Linux] Acquisition temps réel
    Par kromartien dans le forum Administration système
    Réponses: 9
    Dernier message: 29/04/2007, 14h32

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