Reconnaissance vocale, un peu d'aide ?

Elindorath Messages postés 8 Date d'inscription dimanche 4 octobre 2009 Statut Membre Dernière intervention 19 avril 2012 - 1 mars 2010 à 07:08
 Utilisateur anonyme - 23 mai 2010 à 22:43
Bonjour à tous,

Je suis en train de monter un projet visant à créer un moteur de reconnaissance vocale. Le problème est que la documentation est encore trés pauvre sur le sujet (ou alors je ne sais pas bien chercher ^^). J'ai bien trouver quelques choses : la FFT, la MFCC, ... Mais se sont des parties mathématiques trop complexes pour moi.
C'est pourquoi je m'adresse à vous.
Avez vous un peu de doc sur le sujet ?
Connaissez vous un moyen de reconnaitre des mots dans un fichier sonore sans passer par des formules mathématiques complexes ?
Et si c'est indispensable, pouvez vous m'expliquer un peu fourrier et le reste ?

J'espère que vous pourrez m'aider.

P.S. : Si certains sont intéressé par le projet, faites moi signe. On avancera mieux à plusieurs.

4 réponses

Elindorath Messages postés 8 Date d'inscription dimanche 4 octobre 2009 Statut Membre Dernière intervention 19 avril 2012
1 mars 2010 à 07:12
J'oubliais : pouvez vous m'expliquer à partir de quoi on arrive à reconnaitre des mots ? La forme d'onde, le spectre de fréquence (ça me parait plus approprié pour une faire une empreinte vocale de l'utilisateur), ou autre chose ?
0
Davy974 Messages postés 9 Date d'inscription mercredi 14 octobre 2009 Statut Membre Dernière intervention 7 mars 2010
6 mars 2010 à 14:22
Ça serait quasiment mission impossible pour deux raisons minimum:

- Pour reconnaitre un mot dans un fouillis d'octets, il faudrait analyser le fichier bit a bit et calculer la formule à partir de chaque bit du fichier tout en combinant les résultats obtenus par l'analyse des précédents et comme dans une seconde échantillonnée à 64 kB/s (ce qui est un minimum), il faudrait que tu analyses 524288 bits par secondes. Or, je pense qu'un ordinateur ne peut pas décoder, analyser et calculer je-sais-pas-trop quoi 542888 fois par seconde. Donc quand l'ordinateur aura calculé le pseudo-mot de la première seconde, deux ou trois autres pseudo-mots seront déjà passés. Au final, soit il te faut un supercalculateur, soit il te faut un algo de décodage/analyse hyper-rapide et perfectionné.

- La voix humaine possède à chaque instant T une fréquence fondamentale, un volume et un timbre correspondant à la combinaison des multiples (les harmoniques) de la fréquence fondamentale (voix aérienne et voix solidienne). Comme le timbre varie en fonctionne de l'age, des circonstances, de l'humeur et de X paramètres Y avec Z ramifications inextricables, il te faudrait, comme je te l'ai dit plus haut, un algorithme ultra-perfectionné de décodage, de transposition (vers un timbre normalisé), d'analyse, de calcul, de traitement des résultats, d'association pseudo-mot/code, et enfin d'association code/action à faire.

Le travail serait énorme (dans le cas d'un algorithme perfectionné et infaillible (ce qui à une probabilité infime mais non nulle d'arriver) qui saurait interpréter tout pseudo-mot prononcé dans n'importe quelles circonstances). Toutefois, en se basant sur des algorithmes de calcul en fonction de la variation de fréquence (lorsque tu parles, tu n'émets pas une fréquence fixe, et heureusement) à la Nintendo-DS style, tu pourrait éventuellemnt monter un petit moteur.

Dans tous les cas, je te conseille de te documenter sur le sujet (Google) !
0
Elindorath Messages postés 8 Date d'inscription dimanche 4 octobre 2009 Statut Membre Dernière intervention 19 avril 2012
7 mars 2010 à 22:24
Merci Davy pour ta réponse.

Mais il y a plusieurs choses que je ne comprend pas.
Pourquoi cela te parait si infaisable que ça ? Des moteurs de reconnaissance vocale existe déjà tel que dragon naturally speaking ou même celui de microsoft intégré à vista et seven. Et ces moteurs fonctionne très bien sur un ordinateur individuel, sans que se soit des supercalculateurs. C'est cela que j'aimerais arriver à faire. Et comme je l'ai dit, j'ai cherché sur Google, j'ai trouvé pas mal de choses sur les parties purement mathématiques du problème, mais presque rien sur la manière de le coder.

J'ai déjà un peu penser au différentes étapes du processus :
- Obtenir la forme d'onde du son produit
- La simplifier jusqu'à un juste milieu (pas trop compliqué pour une facilité d'analyse, pas trop simple pour ne pas confondre différents mots)
- L'analyser pour reconnaitre les différents phonème en présence
- Reconstituer le mot formé des phonèmes analysés à partir d'un dictionnaire

Dans un premier temps, uniquement avec ma voix comme modèle et comme utilisateur, dans un environnement sans parasite sonore (ma chambre), pour tester le fonctionnement. Je verrais après comment faire pour que ça marche avec d'autres voix ou dans un autre environnement.

Qu'en pensez-vous ? Avez-vous des liens de doc ? Pouvez-vous m'aider à voir comment coder tout ça (je pars en C++ parce que c'est le langage que je connais le plus) ?
0
Utilisateur anonyme
23 mai 2010 à 22:43
bonsoir,
je travaille sur le même projet, je suis aussi bloqué, mais mon problème c'est de comprendre ce que fait réellement les fonction LPC et MFCC, je sais qu'ils permettent d'avoir une image de référence qui constituera notre dictionnaire, mais comment se fait le calcul de ces image ??!!
si vous pouvez m'aider je serai très reconnaissant, il me reste pas beaucoup de temps et mon binôme ma planqué !!!

-Elindorath : je voudrais savoir si t'as pu avancé, si t'as pas fini on peut travaillé ensemble sur skype ou msn, ou sinn, si t'as fini envoie moi la doc que t'as utilisé.

merci


mon gros problème : je suis NUL en anglais !!!!! aaaaaaaaaaaaaaaaaaaaaa !!
0
Rejoignez-nous