Que signifie un «vecteur» dans un modèle de Markov caché?

8

Je sais qu'un modèle de Markov caché (HMM) est utilisé dans la reconnaissance vocale et je le comprends dans une certaine mesure. Cependant, ce que je ne sais pas, c'est comment l'entrée (la parole) est "transformée" en un vecteur qui sera ensuite utilisé dans HMM.

Comment obtenir un vecteur à partir d'une entrée sonore? Ce vecteur est-il lisible par un humain?

StupidOne
la source
9
Quelqu'un pourrait-il expliquer le PO pourquoi il a été rétrogradé? De cette façon, il peut modifier sa question en quelque chose qui est peut-être plus approprié
Ivo Flipse
2
Si je comprends bien, les mathématiciens utilisent le terme "vecteur" pour ce que les gens normaux appellent "une chaîne de nombres". Ils voient votre fichier MP3 comme une flèche pointant vers un point spécifique dans un "espace Hilbert", qui a un nombre infini de dimensions ...
endolith
Je suppose que vous posez des questions sur le MFCC. Il est clairement indiqué dans ce lien Wiki sur MFCC. en.wikipedia.org/wiki/Mel-frequency_cepstral_coefficient
Rajesh Dachiraju
Bon revirement, yoda! Le message d'origine avait plusieurs lacunes, mais je pense que la forme actuelle ne mérite pas les votes négatifs ou les votes serrés.
Kevin Vermeer
@rajesh: pourquoi ne mettez-vous pas cela dans une réponse ... jusqu'à présent il n'y en a pas de bonne
Peer Stritzinger

Réponses:

8

La façon dont la reconnaissance vocale est effectuée avec HTK (ou tout autre outil) est en quelque sorte similaire à la façon dont la reconnaissance vocale est effectuée dans le cerveau. Lorsque vous entendez un mot, vous le décomposez instantanément en ses téléphones constituants , puis comparez les téléphones avec un "modèle" mental interne des téléphones . Ces «modèles» sont construits au fil des années d'écoute de la parole et vous permettent de faire la distinction entre des phrases au son similaire comme «Comment détruire une belle plage» et «Comment reconnaître la parole». La reconnaissance vocale avec HTK ou tout autre schéma basé sur un modèle fonctionne de manière similaire. Voici, en quelques étapes, comment procéder:

  1. Vous prenez le signal vocal d'entrée et le convertissez en une représentation vectorielle caractéristique.
  2. Prenez un grand nombre de phrases et effectuez l'étape 1 sur chacune d'elles.
  3. Utilisez les vecteurs de fonctionnalité de l'étape 2 pour créer un modèle statistique pour chacun des téléphones / mots dans les phrases (il existe un nombre limité de téléphones / mots par rapport à un nombre infini de façons de les dire - afin de réduire les inconnues en modélisant ).
  4. Lorsqu'un nouveau mot arrive, divisez-le en téléphones et comparez avec chacun des modèles connus. La séquence de téléphones avec la probabilité la plus élevée gagne!

Toutes les étapes ci-dessus sont essentielles à la réussite de toute tâche de reconnaissance vocale. En décomposant un son en son vecteur caractéristique, vous le placez dans un espace modèle, lui donnant une représentation qui le rend plus adapté à la création d'un modèle que d'autres représentations (par exemple, la représentation temps-amplitude). La plupart de ces représentations se situent dans la fréquence ou le domaine temps-fréquence. L'une des représentations les plus populaires est le MFCC (Mel Frequency Cepstral Coefficient). D'une certaine manière, cette technique imite la réponse auditive humaine avec un ensemble de filtres. Un signal d'entrée est décomposé avec cet ensemble de filtres qui ont un espacement logarithmique de leurs fréquences centrales. Les coefficients MFCC d'une phrase (par exemple) sont ensuite utilisés pour modéliser chacun des téléphones dont la phrase est composée. Par exemple, considérez,

Phrase: HI. Description phonétique: hh aa ey
Lorsque vous introduisez les coefficients MFCC dans HTK, il associe les coefficients MFCC d'une partie de la phrase avec hh, une autre avec aa et ainsi de suite. Lorsque cela se répète plusieurs fois, les modèles de téléphones commencent à se former.

HTK utilise l'outil HCopypour convertir une phrase d'entrée en sa représentation vectorielle d'entités. Il existe également de nombreuses «saveurs» dans les MFCC (représentations E_D_A ou E_D_A_Z). Ce serait une bonne idée de lire la documentation pour HCopydans le htkbook.

Les coefficients MFCC sont écrits dans un fichier avec extension .mfcpar HTK. Il n'est pas possible de lire ce fichier en utilisant l'un des éditeurs de texte car (je pense) les coefficients sont écrits en binaire. Vous pouvez essayer de lire les fichiers avec C.

HTH.

Sriram
la source
voulez-vous expliquer le vote négatif?
Sriram
2
J'ai voté contre pour plusieurs raisons. Il manque de précision. C'est très inexact et plein de demi-vérités. Mention inutile des outils et gadgets et des méthodes pour les utiliser, ce qui n'est pas pertinent pour la question. Tout d'abord, la question elle-même n'est pas bien composée et votre réponse ne semble pas le mentionner. De plus, il y a un bel article Wikipedia sur MFCC dont je mentionne mon commentaire sur la question.
Rajesh Dachiraju
@Rajesh: merci pour la rétroaction! J'ai fourni à l'OP un lien vers la page MFCC sur wikipedia si vous regardez attentivement. Si vous pensez que cette réponse est inexacte, veuillez mettre en évidence les inexactitudes, afin que nous puissions apprendre. Un simple vote à la baisse ne constitue pas une critique constructive, je vous encourage donc à utiliser librement le editbouton de la réponse, ou mieux encore, à nous fournir votre réponse. Et oui, si la question elle-même est inexacte, la réponse manquera également de précision. Cela a été discuté dans la section des commentaires elle-même.
Sriram
1
@Peer: Non. Les téléphones sont modélisés dans une tâche de reconnaissance vocale, pas les phonèmes (à mon humble avis).
Sriram
2
Ah je vois ... malheureux choix d'un terme technique (vraiment difficile à google ;-) J'ai ajouté un lien vers l'article wikipedia pour les téléphones
Peer Stritzinger
0

Chaque vague peut être décomposée en addition de nombreuses autres vagues. En utilisant une transformée de Fourier, vous pouvez analyser une onde dans ses composantes de fréquence. L'amplitude de ces composantes fréquentielles peut alors être utilisée comme vecteur. Voici la documentation sur la classe Sphinx qui fait cela et voici une bonne explication visuelle de la transformation de Fourier.

Nate Glenn
la source