Depuis plusieurs années, la vitesse des processeurs demeure stable. La tendance semble maintenant être à la diminution de la vitesse afin de réduire la consommation d’énergie. Cette tendance est déjà visible dans le monde des appareils mobiles. Pour profiter de toute la puissance de calcul des processeurs modernes et à venir, les applications se doivent d’intégrer le parallélisme et la reconnaissance de la parole ne fait pas exception.
Malheureusement, l’algorithme de décodage (Viterbi), qui utilise la programmation dynamique pour la recherche dans le graphe de reconnaissance, n’arrive pas à utiliser pleinement toute cette puissance. La raison principale est que ce graphe de reconnaissance contient plusieurs millions de noeuds et de transitions, il est donc impensable l’explorer exhaustivement et doit être élagué afin d’explorer seulement les hypothèses les plus prometteuses. Cet élagage fait en sorte que l’architecture de la mémoire utilisée dans les ordinateurs de type Intel n’est pas utilisée de manière efficace. Pour contourner le problème, un autre type d’algorithme de recherche est envisagée: la recherche A*. Ce type de recherche utilise une heuristique qui donne une approximation de la distance à parcourir pour atteindre le noeud final. La proposition d’une bonne heuristique fait en sorte que le nombre de noeuds explorés devient négligeable, ce qui a pour effet de transférer le temps de calcul de la recherche dans le graphe au calcul de l’heuristique, qui peut être conçu afin de profiter au maximum de l’architecture des processeurs actuels. Pour la reconnaissance de la parole, un graphe de reconnaissance beaucoup plus petit est utilisé comme heuristique pouvant ainsi être explorer exhaustivement, ce qui permet d’éliminer les problèmes de mauvaise utilisation de l’architecture mémoire.
Un aspect important pour la reconnaissance de la parole est le calcul acoustique. Pour cette tâche, une accélération par un facteur de 3,6 a été observée sur un processeur à 4 coeurs. Sur GPU, l’accélération est de 24,8x par rapport à l’algorithme de Viterbi. En ce qui concerne la recherche dans le graphe de reconnaissance, les résultats ont montré que le nombre de noeuds explorés par l’algorithme A* est 28 fois inférieur comparé à sa version séquentielle à l’algorithme originale. De plus, le calcul de l’heuristique est respectivement 4,1 et 10,1 fois plus rapide sur un processeur à 4 coeurs et sur GPU par rapport à la version séquentielle. Finalement, si on compare la version originale et la nouvelle version parallélisée du point de vue du taux de reconnaissance au temps réel, la version parallèle a un taux de reconnaissance supérieure de 4% absolu par rapport à la version classique.
| Date | 3 juil. 2013 |
|---|
| langue originale | Anglais américain |
|---|
| Établissement diplômant | - École de technologie supérieure
|
|---|
| Superviseur | Pierre Dumouchel (Directeur(-trice)) |
|---|
- Reconnaissance automatique de la parole. Microprocesseurs. Processeurs graphiques. a
- a*
- coeur
- multi
- multi-coeur
- recherche
- viterbi
- GPU
Cardinal, P. (Auteur(e)),
Dumouchel (Directeur(-trice)),
3 juil. 2013Thèses et mémoires: Thèse de doctorat › Doctorat en génie: Génie