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

Traitement du signal Discussion :

[ALGO] recuperer et comparer des signaux audio


Sujet :

Traitement du signal

  1. #1
    Membre du Club
    Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Points : 67
    Points
    67
    Par défaut [ALGO] recuperer et comparer des signaux audio
    Bonjour,


    je doit pour un projet comparer des wma et des wav.
    l'objectif et de trouver les wavs a partir des wmas
    peut importe le langage de programmation
    si vous avez des algos ou des docs sur la comparaison de signal
    ou sur la detection de silence (j'avais idée de comparé les silences etant données que le wma et deterioré par rapport au wav)

    help plz

  2. #2
    Membre éclairé
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Points : 872
    Points
    872
    Par défaut
    Je pense que le mieux serait de comparer les spectre de fourier des deux sons a comparer.

    Si le spectre est identique (faire attention au fréquences d'echantillonage) a 90% par exemple alors les morceaux sont identique.
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  3. #3
    Membre du Club
    Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par parp1
    Je pense que le mieux serait de comparer les spectre de fourier des deux sons a comparer.

    Si le spectre est identique (faire attention au fréquences d'echantillonage) a 90% par exemple alors les morceaux sont identique.

    comment je fait plz, j'y connais rien au fichier audio et a la transformer de fourier

  4. #4
    Membre éclairé Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Points : 717
    Points
    717
    Par défaut
    Salut,

    comment je fait plz, j'y connais rien au fichier audio et a la transformer de fourier
    Dis-nous aussi que tu connais rien en programmation et je pense que tu auras tous les éléments pour t'en sortir...

    Donc à ta place, en premier lieu j'essayerais de faire des recherches sur Fourrier (qui, en résumé, donne le spectre fréquentiel d'un signal fonction du temps). Puis sur les formats audios...

    Si tu n'as pas d'imposition de coût, Matlab a déjà une fonction FFT intégrer, et si tu fais une recherche dans la section Delphi, tu trouveras de nombreuses sources de Sub0 pour la manipulation et la transformation des signaux auidos. Sinon je suppose que C, Java, Python...Tous ont déjà leurs bibliothèques donnant des transformée de Fourrier. Mais sans une petite idée de ce qu'elles calculent ce sera pas évident de voir où tu vas...

    A+.
    For crying out loud !

  5. #5
    Membre éclairé
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Points : 872
    Points
    872
    Par défaut
    Si tu as des restrictions budjetaire, scilab a une fft d'implémentée. Si tu es sous linux Octave l'a peut etre.

    Et pour ce qui est de python, en effet il y a une FFT d'implémenter avec Numpy.

    Deplus avec le module Wave tu peux lire facilement ces fichiers... enfin d'apres ce que j'en est lu... A toi de voire.

    PS: Fourier c'est un Monsieur qui a dit que tout signaux périodiques pouvait etre représenter sous une forme de somme de sinusoides.

    Pour comprendre ce qu'est un spectre va ici! Tu va voir c'est génial et super simple et en plus c'est en francais.... Mais même les personnes expérimenté allez sur ce site c'est vraiment simpa de voire le signal changer en temps réelle lorsque l'on modifie son spectre.

    Voila!
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Pas une bonne idée, la FFT, je te conseille plutôt :
    - d'apprendre un peu de traitement du signal
    - de lire un livre sur la psychoacoustique

    Le livre te permettant de choisir les algos adéquats en TS pour réaliser ton souhait. Temps estimé pour y arriver : quelques mois au moins...

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    Un livre très interessant sur la transformé de Fourier et sur les ondelettes : ondelette, la saga d'un outil mathématique
    Il doit encore se trouver dans les librairies.
    Ce livre aborde ce qu'est le passage d'un espace fonctionnel à une autre.
    Ne pas prendre peur sur les formules du livre, elles ne sont pas indispensables
    et assez compréhensible pour un bac+2. Par contre, ce livre ne te permet pas de coder toi même ta FFT. Il est la uniquement pour comprendre les principes.

    Sinon, pour la FFT, tu peux aller voir sur nrbook.com (numérical recipies)
    Mais le code (en C) est soumis à copyright il me semble. Donc pour une utilisation personnelle, pas de probleme, mais pour une utilisation d'entreprise, c'est différent.

  8. #8
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Salut!

    Pour info, mes sources sont pour le langage Pascal, plus particulièrement Delphi.

    http://sub0.developpez.com
    http://sub0.developpez.com/delphi/basstest.zip

    question: Tu cherches à faire une comparaison des samples pour faire de la reconnaissance vocale ?
    De retour parmis vous après 10 ans!!

  9. #9
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Curieux que personne ne mentionne la cross-correlation... C'est pourtant une formule qui permet de mesurer la similarité entre 2 signaux.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  10. #10
    Membre éclairé Avatar de mchk0123
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 816
    Points : 844
    Points
    844
    Par défaut
    Je crois que la "cross-correlation" (fonction de convolution en Français), est aussi (si ce n'est plus) gourmande en temps de traitement qu'une FFT.
    D'autant qu'il existe de nombreuse amélioration rendant le calcul de la FFT plus abordable.

    Bon ceci étant, je crois que personne n'a soulevé le vrai problème : les fichiers wma & mp3 sont trés compréssé. Ce qui veux dire que le signal "raw" audio est trés trés gros. Aucun comparaison avec une image par exemple.

    La qualité CD audio donne : 22.1KHz en 16 bits soit 90.000 valeurs pour seulement 1 seconde ! Donc comparer deux signaux audio (même s'ils sont de 5s) c'est computationnellement trés lourd. La première chose à faire est de "résumer" ces signaux (quantification & co.).
    Avant de poster un message .
    Quand vous avez la réponse à votre question, n'oubliez pas de cliquer sur .

  11. #11
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Sachant que la cross correlation est simplement le produit entre la FFT du premier signal et le conjugué de la FFT de l'autre signal, ça ne vaut pas plus qu'une FFT, soit donc pas du tout adapté.

  12. #12
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Miles
    Sachant que la cross correlation est simplement le produit entre la FFT du premier signal et le conjugué de la FFT de l'autre signal, ça ne vaut pas plus qu'une FFT, soit donc pas du tout adapté.
    Au pire, on calcule la cross correlation entre les 2 densités spectrales...

    Faut juste acheter un dual-core.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  13. #13
    Membre éclairé Avatar de mchk0123
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 816
    Points : 844
    Points
    844
    Par défaut
    Par exemple tu peut mettre la densité spectrale 1 dans le CPU 1, la densité spectrale 2 dans le CPU 2 ... et puis ... ben, tu met la formule de cross-correl entre les deux core ?!

    ... ? D'accord ! Je sors ...
    Avant de poster un message .
    Quand vous avez la réponse à votre question, n'oubliez pas de cliquer sur .

Discussions similaires

  1. [LG][FAQ]comparer des fichiers
    Par lucke dans le forum Langage
    Réponses: 11
    Dernier message: 01/06/2003, 18h02
  2. cherche module ou langage pour récupérer des données audio..
    Par Ry_Yo dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 12/05/2003, 17h44
  3. Réponses: 2
    Dernier message: 04/10/2002, 09h13
  4. Réponses: 2
    Dernier message: 22/07/2002, 18h02
  5. Comparer des fichiers de données : Quel Langage ?
    Par Anonymous dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 24/04/2002, 22h37

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