On remet le couvert sur la reconnaissance vocale !
J'ai déjà joué avec et ça marche plutôt bien ! Il faut distinguer 2 usages:
- la commande vocale
- la dictée vocale
Comment mettre ne place un pipeline de reconnaissance vocale facilement ? Utilisr Pocketsphinx & GStreamer. C'est pas très dur mais il faut installer les dépendances et les gens n'aiment pas trop ça.
En ce moment, je distingue 2 solutions principales :
- PocketSphinx (offline) + GStreamer pour la commande vocale
- Wit.ai/Google ou Mozilla web speech api pour la dictée vocale
Je vais concentrer mes mots sur Pocketsphinx que je connais bien qui est libre !
il faut lui fournir plusieurs fichiers:
- modèle de langage
- modèle acoustique
- dictionnaire
Tout cela est disponible sur le site de CMUSPhinx.
J'ai un projet dans les cartons pour l'intégrer dans Gnome. Le problème c'est que tout est éparpillé un peu partout, qu'il faut compiler pas mal de chose et les gens n'aiment pas trop ça. D'autre problèmes peuvent aussi apparaitres notamment ceux liés au micro.
Comment je vois l'intégration dans Gnome ?
l'idée serait de faire de la commande vocale un service DBus générique. Que ce soit le moteur pocketsphinx, ou tout autre api online, tous devront implémenter une interface permettant d'obtenir certaines infos:
- savoir si le service est actif
- connaistre le texte prononcé
- une liste de tags
- sa probabilité
- pouvoir changer à la volée de modèle de langage ou de grammaire
Toutes les infos transiteront donc via dbus. Quiconque voulant supporter la commande vocale devra alors se connecter à ce bus et récupérer les infos. L'interêt de Dbus c'est que l'on peut réveiller un service quand on en a besoin mais également qu'il est déjà très bien intégrer.
Je vous assure que tout cela n'est pas très compliqué à faire. Si jamais l'élan est là je veux bien aidé car il serait bon d'avoir différent point de vue qui aboutiront peut-être à l'écriture de specs et à la mise ne place d'un design.
Pour ceux que cela interesse, je vous invite à voir mes périgrinations sur Github:
- Pocketvox (pour appréhender le couple Gstreamer, Pocketsphinx en C et avec de l'introspection pour du Python)
- VOXGenerator (en Python, pour appréhender DBus, Gstreamer et Pocketsphinx)
Une liste de lien:
CMUSphinx
PocketVox
VOXGenerator