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 :

LPC (linear predictive coding) et reconnaissance vocale


Sujet :

Signal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 27
    Par défaut LPC (linear predictive coding) et reconnaissance vocale
    Bonjour, j'ai des questions a propos de la lpc et de l'aide que vous avez fourni.

    Nosvemos essaie de faire de la reconnaissance vocale, la partie du script qu'il fournit correspond a une partie de création d'un dictionnaire de mot et en fait la fonction lpc extrait des parametres d'un son enregistré.

    Le fait est que j'utilise le meme programme avec cette fonction lpc mais je vois pas ce que fait clairement cette fonction. Sur le lien que vous avez donné, ils disent que la fonction lpc extrait des coefficients de prédiction en gros en ce basant sur l'état précedent de ce qu'on veut analyser. En l'occurence c'est un signal sonore donc quels sont les coefficients que donne la fonction lpc physiquement?

    Et en quoi les coefficients different si je prend deux mots donc deux signaux sonores différents (mais tres proche spectralement)


    Autre chose, sur un signal sonore, la prédiction porte sur quoi? Et pourquoi faire une prédiction sachant qu'en fait il semblerait que la fonction lpc permette dans cette procedure de trouver des éléments caractéristiques du signal?

  2. #2
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut
    Citation Envoyé par Lethal Noiz Voir le message
    Sur le lien que vous avez donné, ils disent que la fonction lpc extrait des coefficients de prédiction en gros en ce basant sur l'état précedent de ce qu'on veut analyser. En l'occurence c'est un signal sonore donc quels sont les coefficients que donne la fonction lpc physiquement?

    Et en quoi les coefficients different si je prend deux mots donc deux signaux sonores différents (mais tres proche spectralement)


    Autre chose, sur un signal sonore, la prédiction porte sur quoi? Et pourquoi faire une prédiction sachant qu'en fait il semblerait que la fonction lpc permette dans cette procedure de trouver des éléments caractéristiques du signal?
    En l'occurence c'est un signal sonore donc quels sont les coefficients que donne la fonction lpc physiquement?
    Il te dit dans la documentation:

    Linear Prediction

    Linear prediction modeling assumes that each output sample of a signal, x(k), is a linear combination of the past n outputs (that is, it can be linearly predicted from these outputs), and that the coefficients are constant from sample to sample.
    Lis attentivement la documentation fourni par duf42!

    Chaque 'sample' a une frequence d'echantionage dans le code poste c'est Fs.

    Bonne chance,

    Michel

  3. #3
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 27
    Par défaut
    Oui je sais que Fs est la fq d'échantillonage de chacun de mes samples mais je vois pas le rapport avec la LPC.

    J'ai lu la doc que m'a fourni Duf et ça m'aide pas du tout parce que je recherche en fait une interprétation physique des coefficients que trouve la LPC parce que ils indiquent bien qu'on obtient des coefficients de prédiction mais ce n'est pas expliqué a quoi ils correspondent.

    J'ai bien conscience que c'est une question bizard mais j'aimerai comprendre en gros ce que fait cette fonction LPC.

    Clairement elle trouve les coefficients et elle les compare avec l'échantillon que je veux reconnaitre (pour ce qui est de ma procédure). J'aimerais comprendre comment ou s'il y a un autre moyen de coder ça.


    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
    % This code is for creating the library of Linear Predictive Coding (LPC) features.
    
    Fs = 10000;   % Sampling Frequency (Hz)
    n = 20;       % LPC order
    Nseconds = 1; % Length of speech signal
    
    % List of words (you can add more words to this list but make sure
    % each word has five characters (if less then pad it with spaces)
    
    words = {'mélodie';
             'composant';
             'caisse';
             'voiture'};
    
    % Matrix to store features for each word (rows correspond to words)
    fw = zeros(size(words,1),n+1);
    
    fprintf('You will get one second to say each word.\n\n');
    
    % For each word, get the word from microphone and compute its features
    for i=1:size(words,1)
        fprintf('Hit enter and say immediately ''%s'':',words{i});
        % pause for enter key
        junk=input('');
        
        % get a word from microphone
        y  = wavrecord(Nseconds*Fs, Fs, 'double');
    
        % Calculate the features of the word
        f = lpc(y,n);
        
        % Save them in the features matrix
        fw(i,:) = f;
        %     abs(f)
        %     plot(1:Fs,fft(y));
    end
    
    % Save features matrix to a file (this file will be loaded into Matlab during speech recognition)
    save words_lpc.mat Fs n words fw;
    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
    % Speech Recognition using Linear Predictive Coding (LPC)
    y=0;
    % load training data
    load words_lpc.mat;
    
    % ask user to say a word
    fprintf('You will get one second to say your word.\n\n');
    fprintf('Hit enter and say your word immediately:');
    % pause for enter key
    junk=input('');
    
    % get the word from microphone
    y  = wavrecord(1*Fs, Fs, 'double');
    
    % Calculate the features of the word
    f = lpc(y,n);
    
    % Calculate distances between the spoken word and each word in the library
    d = zeros(1,size(words,1));
    for i=1:size(words,1)
        d(i) = sqrt(sum((f-fw(i,:)).^2));
    end
    
    % Print the word with minimum feature distance. This word was spoken.
    [temp1,indx1] = min(d);
    fprintf('You said: %s\n',words{indx1,:});

    voila en gros je voudrai comprendre a quoi me sert la fonction LPC meme si je ne comprend pas d'en d'autre cas je dois comprendre dans ce cas la, sachant que le premier programme sert a fabriquer un dictionnaire formé de différents mots que je souhaite faire reconnaitre et que le deuxieme correspond a la phase réelle de reconnaissance du mot isolé ou les caractéristiques que donne la fonction lpc sont comparées a celle des mots du dictionnaire.

  4. #4
    Membre très actif

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2004
    Messages : 499
    Par défaut
    salut

    on modélise le signal comme étant un bruit blanc gaussien filtré par un filtre autoregressif d'ordre p de réponse impulsionnelle infinie h(n)

    X(n) = h * B(n)

    X : ton signal
    h : la réponse imp. de ton filtre AR-p (paramètre "ordre" de lpc)
    B : un bruit blanc de variance sigma^2

    pour que ça soit réaliste il faut d'abord que X soit centré:
    X = X - mean(X)
    que l'ordre p soit suffisant,
    que tu ne t'intéresses qu'aux parties stationnaires de ton signal X, les évènements temporels non stationnaires (autres que sinusoïdes) seront mal modélisés

    pour la parole ça marche bien pour les voyelles et les fricatives (son fff...) mais pas pour les p ou les d

    lpc trouve le meilleur filtre h pour modéliser ton signal

    explication mathématique : http://users.polytech.unice.fr/~lero...l/node107.html

  5. #5
    Invité de passage
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 1
    Par défaut help !!!
    bonjour,
    je travaille dans le même projet, et il se trouve que j'ai le même souci, je n'arrive pas a comprendre ce que fait réellement la fonction LPC;
    j'aimerai que qlq1 m'explique cela , et j'aimerai aussi avoir des liens sur ca .
    merci

Discussions similaires

  1. [Compiler] la fonction LPC (linear predectif coding)
    Par NOSVEMOS dans le forum Signal
    Réponses: 1
    Dernier message: 28/04/2009, 09h10
  2. Reconnaissance vocale lpc formants
    Par PierrotDK dans le forum MATLAB
    Réponses: 3
    Dernier message: 23/01/2008, 17h17
  3. Programme LPC pour la reconnaissance vocale
    Par Vassili68 dans le forum MATLAB
    Réponses: 15
    Dernier message: 21/01/2008, 19h07
  4. Réponses: 8
    Dernier message: 05/10/2004, 01h02
  5. Logiciel professionnel de reconnaissance vocale
    Par samyl dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 01/04/2004, 15h11

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