1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2016
    Messages : 14
    Points : 5
    Points
    5

    Par défaut Corrélation entre deux nuages de points

    Bonjour à tous,
    J'ai besoin de vos conseils !!
    Voici la situation :
    Je dispose d'une liste de couples (couples temps/frequence de maxima d'intensité sonore) qui représente une chanson de 30 secondes.
    Je dispose également d'une deuxième liste de couples qui correspond à un échantillon de 5 secondes pris au hasard dans le morceau précédent.
    Or dans cet échantillon de 5 secondes, un bruit de discussion à été placé en arrière fond (ajouté volontairement avec Audacity).
    La seconde liste a donc été perturbée à cause du bruit (plus ou moins en fonction de son amplitude).
    Je voudrais établir une correspondance entre les deux listes (je dispose d'une base de données de morceaux et d'échantillons).

    Pour cela je voudrais établir une sorte de "corrélation entre nuages de points" (l'échantillon et le morceau dont il est tiré auraient une bonne corrélation et l'échantillon aurait une mauvaise corrélation avec les autres morceau de la base).
    Malheureusement je ne trouve pas de méthode allant dans ce sens... J'ai uniquement trouvé des méthodes utilisant des barycentres et des axes d'inertie dans le nuage.

    Auriez vous une idée ?
    Merci par avance,
    Alextoche

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

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

    Informations forums :
    Inscription : décembre 2006
    Messages : 9 999
    Points : 15 955
    Points
    15 955

    Par défaut

    Bonsoir,

    J'avais lu un papier sur un algo qui faisait ce genre de chose (reconnaissance façon Shazam).

    Référence = Morceau original = (t1,f1) (t2,f2) (t3,f3) ...
    Signal = extrait à identifier = (t'1,f'1) (t'2,f'2) (t'3,f'3) ...

    L'idée c'était:
    1. prendre le 1er point du signal: Psig.
    2. trouver un point correspondant (=meme frequence) dans la référence: PRef.
    3. calculer l'offset T entre Pref et PSig
    4. calculer le ratio R = Pref.amplitude / PSig.amplitude
    5. Inspecter tous les autres points du signal et regarder s'il existe une correspondance dans la référence.
    (point correspondant = même frequence, meme ratio R, meme offset T)
    6. pour chaque point ayant une correspondance, augmenter le score de 1 pour la solution (R,T)
    7. Retour à l'étape 2 s'il y avais plusieurs points possibles dans la référence.
    8. Retour à l'étape 1 en prenant le 2nd point dans le signal, et ainsi de suite.

    Note: L'étape 5 consiste à "aligner" la référence et le signal sur un point "commun", et compter combien d'autres points s'alignent.

    Au final, la solution (R,T) avec le plus gros score est la meilleure solution pour cette référence.
    On peut alors calculer un score de correspondance (nombre de correspondance vs nombre de non-correspondance)
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2016
    Messages : 14
    Points : 5
    Points
    5

    Par défaut

    Merci pour votre réponse !!
    J'ai déjà implémenté un algo qui trouve l'offset qui maximise la correspondance entre l'échantillon et le morceau mais je n'avais pas pensé à introduire de ratio !!
    Malheureusement j'ai l'impression que dès que j'ajoute du bruit à mon morceau, l'offset est de moins en moins marqué en terme d'occurences, il est assez difficile à définir car les fréquences bougent pas mal ... C'est pourquoi je cherche une méthode qui analyse le nuage de point dans sa globalité car sa "forme" est assez caractéristique (même à vu d'oeil).
    Merci pour vos idées !
    Alextoche

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

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

    Informations forums :
    Inscription : décembre 2006
    Messages : 9 999
    Points : 15 955
    Points
    15 955

    Par défaut

    Citation Envoyé par Alextoche Voir le message
    l'offset est de moins en moins marqué en terme d'occurences, il est assez difficile à définir car les fréquences bougent pas mal ...

    Tu travailles directement sur le spectrogram brut (issue de la FFT) ? Si oui, essaye de travailler sur un spectrogram filtré.

    Par exemple en calculant la fréquence centrale (spectral centroid) dans des bandes de fréquence (par exemple, dans l'échelle de Mel).
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. Transformation entre deux nuages de points
    Par EaudeRoche dans le forum Mathématiques
    Réponses: 2
    Dernier message: 21/05/2015, 16h55
  2. Surface entre deux nuages de points
    Par jerrrrrrr dans le forum MATLAB
    Réponses: 5
    Dernier message: 22/12/2014, 11h38
  3. [scatter] Superposition de deux nuages de points
    Par momo032114 dans le forum MATLAB
    Réponses: 3
    Dernier message: 01/08/2008, 12h56
  4. [Débutant] Problème de corrélation entre deux vecteurs vitesses
    Par sydneya dans le forum Signal
    Réponses: 2
    Dernier message: 29/08/2007, 09h08

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