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 :

éxtraction des MFCC


Sujet :

Signal

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 37
    Points : 16
    Points
    16
    Par défaut éxtraction des MFCC
    salut
    je suis débutante en matlab et j'ai voulue traité un signal d'un fichier .wav
    bon j'ai enregistrer des chiffres de 0 à 9 et j'ai affiché puis j'ai supprimé le silence, aprés j'ai voulue éxtraire les coefficients cepstraux (MFCC) , mais quand j'execute lce programme:

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    function [c]=mfcc2(s,fs,k,n)
    % mfcc2: reecriture de l'algorithme MFCC
    % Entrees:
    %  s : signal de la parole a analyser
    %  fs : frequence d'echantillionnage
    %  k: nombre de coefficients a creer
    % Sortie
    %  c : matrice des coefficients
     
    % variables:
    % p : nombre de filtre a creer dans le banc de
    %     filtres
    %p=floor(3*log(fs));
    p=k;
    %n: taille des "frames" en échantillons optimale 
    %   (une puissance de 2, generalement n=256 ou n=512
    n=pow2(floor(log2(0.03*fs)));
    % fl,fh: fixent le debut (fl) et la fin (fh)
    % de la bande passante de fs a utiliser
    fl=0;
    fh=0.5; 
    % w: indique la fonction de ponderation a utiliser
    % ici 'M' => Hamming.
    w='m';
    % inc : duree de recouvrement des fenetres
    %  (les fenetres se recouvrent toutes les...)
    inc=floor(n/2);
     
    % creation des frames ponderees par Hamming
    z=enframe(s,hamming(n),inc);
     
    % Premiere etape : f est la transorme rapide 
    % de Fourier de z
    f=fft(z.');
     
    % creation du banc de filtre
    % p : nombre de filtre a creer dans le banc de filtre
    % n : taille des frames en échantillons
    % fs : frequence d'echantillionnage du signal
    %      d'entree
    % fl, fh : fraction de fs a utiliser
    % w : type de fenetre de ponderation a utiliser.
    [m,a,b]=melbankm(p,n,fs,fl,fh,w);
    % m: matrice du banc de filtre
    % a et b sont les bornes de la partie utilisee dans f
     
    % on applique le banc de filtre au signal f (en fait
    % seulement a la partie delimitee entre a et b) par
    % un produit matriciel m * f
    % puis on prend le logarithme des coefficients.
    y=log(m*(abs(f(a:b,:)).^2));
    %y=log(m*(abs(f(a:b,:))));
     
     
    % creation du cepstre en temps que tel:
    % tranformee en cosinus discret reel:
    c=rdct(y).';
     
    nc=k+1;
    c(:,nc+1:end)=[];
    % on supprime la premiere colonne
    c(:,1)=[];



    mais quand je l'éxécute il me donne une matrice vide (par contre quand j'exécute ce programme sur le fichier wav sans supprimé le silence il me donne (85 lignes et 12 colonnes))
    j'éspére qu'il ya quelqu'un qui peux m'aidé

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Bonjour.
    function [c]=mfcc2(s,fs,k,n)
    n=pow2(floor(log2(0.03*fs)));
    Pourquoi tu mets n en paramètre d'entrée puis tu le calcules ?

  3. #3
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 92
    Points : 46
    Points
    46
    Par défaut
    merci pour ton aide
    c bon ça marché

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 37
    Points : 16
    Points
    16
    Par défaut
    salut
    j'arrive pas a réglé mon probléme je ne sais pas pourquoi hiér ça marché trés bien mais maintenant j'ai le méme probléme, le programme mfcc me donne une matrice vide :


    c =

    Empty matrix: 0-by-12

    je ne sais pas pourquoi
    svp s'il ya quelqu'un qui peux m'aidé

Discussions similaires

  1. Android, extraction des MFCC's depuis un fichier audio
    Par domas_24 dans le forum Android
    Réponses: 3
    Dernier message: 23/05/2011, 23h11
  2. Extraction des minuties d'une empreinte digitale
    Par SmileSoft dans le forum Traitement d'images
    Réponses: 6
    Dernier message: 25/12/2010, 14h46
  3. Extraction des paramètres mfcc
    Par imen_bell dans le forum MATLAB
    Réponses: 2
    Dernier message: 06/05/2010, 13h15
  4. méthode d'étriquetage des fichier .mfcc
    Par wafaa2009 dans le forum Signal
    Réponses: 0
    Dernier message: 19/05/2009, 08h00
  5. [Débutant] extraire des coéficient mfcc
    Par fcboumi13 dans le forum MATLAB
    Réponses: 0
    Dernier message: 09/04/2009, 13h08

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