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

Algorithmes et structures de données Discussion :

reconnaissance locuteur en utilisant MFCC


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    30
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 30
    Par défaut reconnaissance locuteur en utilisant MFCC
    bonjour à tous,
    voila je dois concevoir un systeme de reconnaissance du locuteur , j'ai opté pour l'utilisation de la méthode MFCC (Mel Frequency Cepstral Coefficient ) pour l'extraction des paramètres acoustiques et la dtw (Dynamic Time Warping) pour la comparaison, je me demandais si je pouvais utiliser cette combinaison vu que la dtw compare deux vecteurs (dans mon cas je dois comparer deux matrices résultantes de la mfcc) ou il va falloir utiliser les GMM ou HMM pour la comparaison , merci d'avance.

  2. #2
    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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par imene_t1 Voir le message
    je me demandais si je pouvais utiliser cette combinaison vu que la dtw compare deux vecteurs (dans mon cas je dois comparer deux matrices résultantes de la mfcc)
    DTW n'impose rien sur la dimension des 2 échantillons. L'algorithme construit une matrice des distances entre les 2 echantillos. Le calcul de la distance enter échantillon est laissé au choix de l'utilisateur. Ca peut etre une distance euclidienne ou tout autre distance.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre averti
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    30
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 30
    Par défaut reconnaissance locuteur utilisant MFCC DTW
    merci pour ta réponse ,

    je sais que pour utiliser la dtw , il faut construire au préalable une matrice des distances , ayant 2 vecteurs X1 et X2 par exemples , on prend chaque point du vecteur X1 et on calcule la distance avec tous les points du vecteur X2, ainsi de suite .
    Comme moi je manipule des matrices (pas de vecteur) , je ne sais pas comment construire la matrice des distances , tu peux m'orienter un peu plus , merci

  4. #4
    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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par imene_t1 Voir le message
    Comme moi je manipule des matrices (pas de vecteur) , je ne sais pas comment construire la matrice des distances , tu peux m'orienter un peu plus , merci
    Tout dépend de ce que représente tes matrices de valeurs.

    -Si tes matrices sont une "liste" (une dimension) de valeurs (plusieurs dimensions), tu utilises l'algo DTW "standard" avec une distance inter-vecteur:

    d2(v1,v2)=racine( d1(v1.x,v1.y)² + d1(v1.y,v1.y)² + ...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    for i := 1 to n
      for j := 1 to m
     
        cost := SQRT( distance(A[i,0],B[j,0])² + distance(A[i,1],B[j,1])² ) 
     
        DTW[i,j] := cost + minimum(DTW[i-1,j],DTW[ i, j-1 ],DTW[i-1, j-1])
     
      next j
    next i

    - Si tes matrices sont un espace (2 dimensions) de valeurs (1 dimension), tu as besoin de calculer une DTW "spatiale":

    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
     
    for i0 := 1 to n
    for i1 := 1 to n
     
      for j0 := 1 to m
      for j1 := 1 to m
     
        cost := distance([A[i0,i1],B[j0,j1]]
     
        DTW[i0,i1,j0,j1] := cost + minimum(
          DTW[i0-1,i1,j0,j1], DTW[i0,i1-1,j0,j1],DTW[i0-1,i1-1,j0,j1]
          DTW[i0-1,i1,j0-1,j1], DTW[i0,i1-1,j0-1,j1],DTW[i0-1,i1-1,j0-1,j1]
          DTW[i0-1,i1,j0,j1-1], DTW[i0,i1-1,j0,j1-1],DTW[i0-1,i1-1,j0,j1-1]
          DTW[i0-1,i1,j0-1,j1-1], DTW[i0,i1-1,j0-1,j1-1],DTW[i0-1,i1-1,j0-1,j1-1]
       ) 
     
      next j
    next i
    (NB: formules a vérifier. Le copier/coller/editer n'est pas une technique tres sure)
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre averti
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    30
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 30
    Par défaut reconnaissance locuteur utilisant MFCC DTW
    merci de m'avoir répondu ,

    Ma matrice est constituée de la manière suiante:
    chaque ligne (qui représente un segment du signal) de ma matrice est constituée des 13 coéfficients MFCC (en colonne) .
    Le nombre de ligne de ma matrice représente ainsi le nombre de segments du signal et les colonnes représentent les 13 coéfficints MFCC retenus pour chaque segment , je vais voir tes algorithmes , merci encore

  6. #6
    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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par imene_t1 Voir le message
    merci de m'avoir répondu ,

    Ma matrice est constituée de la manière suiante:
    chaque ligne (qui représente un segment du signal) de ma matrice est constituée des 13 coéfficients MFCC (en colonne) .
    Le nombre de ligne de ma matrice représente ainsi le nombre de segments du signal et les colonnes représentent les 13 coéfficints MFCC retenus pour chaque segment , je vais voir tes algorithmes , merci encore
    Tu es donc dans le cas numero 1.

    Ta matrice n*13 représente "n" echantillons, et chaque echantillon à 13 parametres. Il te faut donc créer une distance pour comparer deux vecteurs en dimension 13.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. Reconnaissance de formes en utilisant les moments
    Par sabrina6 dans le forum OpenCV
    Réponses: 3
    Dernier message: 19/04/2010, 14h13
  2. [Débutant] Reconnaissance vocale à base de mfcc
    Par wigglin dans le forum Signal
    Réponses: 26
    Dernier message: 31/05/2009, 20h18
  3. Réponses: 1
    Dernier message: 13/05/2009, 08h33
  4. Utilisation reconnaissance texte excel
    Par cedric59dk dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/02/2008, 09h55
  5. [Lomboz] Reconnaissance et utilisation de Jboss
    Par oami dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 03/06/2005, 01h10

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