Logo Mon Club Elec

Reconnaissance vocale avec Processing

La reconnaissance vocale est un domaine en pleine expansion qui offre de nombreuses possibilités pour les développeurs. Avec Processing, un langage de programmation open source, il est possible de créer des applications qui peuvent reconnaître et réagir aux commandes vocales. Cet article explorera les différentes façons dont Processing peut être utilisé pour créer des applications de reconnaissance vocale et discutera des avantages et des inconvénients de cette technologie.

Reconnaissance vocale avec Processing

Pour comprendre…

Les premiers pas en reconnaissance vocale avec Processing s’apparentent un peu à une immersion dans un magma dans lequel il faut comprendre quoi sert à quoi et comment… Voici quelques lumières…

Ressources nécessaires

La reconnaissance vocale va utiliser plusieurs ressources nécessaires :

  • une entrée son (un microphone voire même micro + table mixage) qui marche comme il faut, c’est à dire testée et paramétrée par vos soins: ce point est hyper important en fait car il détermine le bon fonctionnement de la reconnaissance vocale. Vous pouvez avoir tout installé côté logiciel comme il faut… et n’obtenir aucun résultat car l’entrée son n’est pas bonne… et dès que c’est bien réglé, çà marche bien. Donc, ne pas négliger ce point… Je vous donne les points techniques importants que j’ai constaté ci-dessous…
  • l’application de reconnaissance vocale proprement dite : ici, nous utiliserons les ressources du projet Sphinx. Ce projet est opensource, libre, gratuit et propose plusieurs ressources dont notamment une librairie Java appelée Sphinx 4 qui sera logiquement utilisée avec Processing.
  • une librairie d’implémentation de Sphinx dans Processing : j’utilise ici la librairie Voce qui implémente la reconnaissance vocale et la synthèse vocale.

Sphinx : reconnaissance vocale

Ce projet de la Carnegie Mellon University est actif (2 à 3 mise à jour par an), et la librairie Sphinx est utilisée dans de nombreuses applications, notamment Gnome-Voice-Control sous Ubuntu, OpenEars sur Iphone, etc…

Les liens importants :

Le projet Sphinx propose plusieurs outils différents et complémentaires :

  • Pocketsphinx : librairie de reconnaissance écrite en C – nécessite Sphinx base
  • Sphinxbase : librairie nécessitée par Pocket SPhinx
  • Sphinx4 : librairie de reconnaissance vocale ajustable, modifiable écrite en Java
  • CMUclmtk : outils pour modèle de langage
  • Sphinxtrain : outils d’entraînement de modèle acoustique

Avec Processing, on utilisera logiquement Sphinx 4.

Voici un schéma qui montre le fonctionnement interne de Sphinx 4 (on voit bien que c’est pas rien…) :

Reconnaissance vocale avec Processing

Pour faire de la reconnaissance vocale, Sphinx 4 va utiliser :
> un fichier de grammaire, de type *.gram, qui va indiquer les mots attendus, leur hiérarchie. Ce fichier est un simple fichier texte que vous pourrez paramétrer selon vos besoin. Des exemples sont donnés ci-dessous.
> un modèle acoustique qui va contenir tous les paramètres sonores nécessaires à la reconnaissance d’une langue. Par défaut, Sphinx 4 est fournit avec un modèle wsj (pour Wall Street Journal) et un modèle (Tdigit). Mais il existe également des modèles dans d’autres langues, notamment en français. Les modèles disponibles sont ici : http://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/ Nous verrons comment utiliser le modèle voulu ci-dessous.
> un dictionnaire (fournit avec le modèle acoustique) qui va indiquer la correspondance entre les mots tels que nous les connaissons et les phonèmes. Là encore il s’agit d’un simple fichier texte contenant jusqu’à plusieurs milliers de mots et qu’il sera possible de modifier au besoin. Il sera ainsi très facile d’ajouter un mot non prévu par exemple…
> un microphone qui est une ligne son du PC avec ses paramètres qui seront configurables : taux d’échantillonnage, taille du buffer, etc..

L’ensemble de ces paramètres seront configurables directement dans un fichier de configuration nommé *.config.xml ce qui permettra de paramétrer Sphinx 4 sans avoir à modifier les fichiers java binaires : bien vu !

Côté téléchargement, Sphinx 4 est dispo :

  • en version binaire déjà compilée et en version avec les sources (par ex : sphinx4-1.0beta6-src.zip ) disponibles ici : http://sourceforge.net/projects/cmusphinx/files/sphinx4/1.0%20beta6/
  • la version avec les binaires « prêts à l’emploi » est à télécharger pour disposer des outils de test son notamment (voir ci-dessous). Ces binaires seront utilisables directement en ligne de commande.
  • la version avec les sources n’est utile que si on souhaite développer directement dans Eclipse (ou autre). Donc pas nécessaire dans une première approche.

A noter que les fichiers utiles de Sphinx 4 sont déjà inclus dans la librairie Voce

Librairies Processing pour Sphinx :

La librairie Processing Voce utilisée ci-dessous :

Les autres librairies Processing de reconnaissance vocale disponibles trouvées sur le net :

Voilà, à ce stade, vous avez la vue d’ensemble des besoins… Toujours envie de vous coller ? Allez on continue…

Liens utiles

Voce (Reco vocale CMUSphynx + synthese vocale avec TTS) :

Procédure d’installation Voce

Reconnaissance vocale avec Processing
  • A présent, renommer ce répertoire en « voce » et renommer « lib » en « library » :
Reconnaissance vocale avec Processing
  • Copier coller ce répertoire modifié dans le répertoire « libraries » du logiciel Processing. Au lancement de Processing, on doit retrouver la librairie Voce :
Reconnaissance vocale avec Processing
  • Ensuite, on va créer un fichier de « grammaire » basique à utiliser pour la reconnaissance vocale. Pour cela, créer un fichier texte avec le contenu suivant :
#JSGF V1.0;

/**
* JSGF Test Grammar file
*/

grammar Test;

public <TEST> = (hi | one | two | ok) * ;

  • Enregistrer ce fichier dans un répertoire nommé « grammar » dans le répertoire de la librairie voce en le nommant « test.gram » :
Reconnaissance vocale avec Processing

Essai de Simple Speech Recognition :

Noter cet article

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Archive Mon Club Elec

Articles populaires

Newsletter

Inscrivez-vous maintenant et bénéficiez d'un soutien continu pour réaliser vos travaux électriques en toute sécurité.