lundi 3 décembre 2007

Mon travail


Après un peu plus de trois mois maintenant, je crois que je commence à comprendre ce que je fais et à la demander de ma mère, je vais tenter de vous l'expliquer.

Je travaille pour une boîte qui développe, entre autres, un système multilingue de reconnaissance de parole. Ils travaillent présentement sur: le français québécois et européen, l'anglais américain et british, l'espagnol américain et européen, le portugais, l'italien, le suédois, l'allemand, le koréen, le japonais, le mandarin, le cantonais et le hollandais (il m'en manque sûrement un ou deux). Il y a donc un "natif" qui travail sur chaque langue.
Le principe de reconnaissance est le suivant: chaque mot ou son, suivant ce qu'on veut reconnaître, est représenté par un modèle statistique. Le modèle statistique contient de paramètres sur ce qui fait qu'un "un" est un "un" et pas un "deux". Partie technique: les modèles sont des HMM (hidden-Markow models), ce qui veut dire que c'est une machine a états. Le modèle représente donc des états et non des changements temporels. Ce qui fait que la vitesse à laquelle on prononce le mot a moins (théoriquement aucune, je crois, mais en pratique, si on parle trop vite, il y a des mots de non reconnus (effacés) et si on parle trop lentement, il y a des mots d'ajoutés.) d'importance.
Résumé, un mot = un modèle.
"Alors, comment fait-on pour faire en sorte que le modèle soit bon", dites-vous? On l'entraîne. En disant au modèle "un": tient ça c'est un "un", ça aussi, celui aussi, etc. Par des algorithmes que je ne connais pas, le modèle s'ajuste aux meilleures valeurs possibles considérant la variété de "un" qu'on lui a montré.
Ensuite, on évalue les modèles. On lui passe des fichiers audio avec une liste de chiffres, par exemple, et on voit à quel point il est bon pour reconnaître chacun d'eux.
Facile. NOT! Il y a BEAUCOUP de variation dans la façon dont les gens prononcent la même chose, de même que beaucoup de bruit dans une voiture! (Oui, on travaille surtout pour développer des systèmes pour les voitures, en passant.) Résultat, il y a des erreurs, parce que "six" peut être confondu avec "cinq" ou "sept", et parfois avec d'autres choses qui n'ont pas rapport.

Mon travail dans tout ça? Présentement, c'est surtout de tester différents algorithmes, pour vérifier leur efficacité. Mais normalement, c'est plutôt d'essayer différentes techniques, d'entraînement et d'évaluation, pour augmenter l'efficacité de mes modèles.

Ça ne demande pas vraiment de connaissance particulières (bon... ma mère ne serait peut-être pas en mesure de faire ça...) sur la reconnaissance de parole en général ou sur les statistiques. Quoique ça aide. Le plus complexe, c'est définitivement de connaître tous les outils à notre disposition et les trouver!

Il manque sans doute quelques détails pour ce que soit clair, mais vous allez sans doute avoir une meilleure idée maintenant. Ne vous gênez pas pour les questions.

Pas de commentaire