Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
cmu_sphinx [Le 07/12/2014, 12:11]
merlu [Installation (Ubuntu 10.04 LTS)]
cmu_sphinx [Le 25/07/2016, 15:48] (Version actuelle)
88.183.205.55 [Pré-requis]
Ligne 1: Ligne 1:
-{{tag>Lucid reconnaissance_vocale BROUILLON}}+{{tag>Trusty ​reconnaissance_vocale BROUILLON}}
  
 ---- ----
  
 ====== CMU Sphinx ====== ====== CMU Sphinx ======
 + 
 +CMU Sphinx est un logiciel de [[:​reconnaissance vocale]] sous licence BSD. Cette page explique comment démarrer une application utilisant la reconnaissance vocale avec sphinx. Nous utilisons sphinx4 (en java), mais il existe aussi pocketsphinx,​ qui a l'air plus simple.
 +Pour l'​instant,​ cette page décrit l'​utilisation de sphinx en langage Java. Il existe aussi une version en C.
 +<note tip>​Sphinx est aussi (entre autres) le nom d'un générateur de documentation écrit en python, ainsi les recherches à son sujet sur le web renvoient parfois des résultats qui ne sont pas appropriés.</​note>​
 +===== Pré-requis =====
 + 
 +  * Disposer des [[:​sudo|droits d'​administration]].
 +  * Disposer d'une connexion à Internet configurée et activée.
 +  * Avoir installé l'​environnement [[:java]] et les paquets **[[apt>​eclipse,​sharutils]]**.
 +=====Installation=====
  
-CMU Sphinx est un logiciel ​de [[reconnaissance vocale]] sous licence BSD.+Téléchargez [[http://​sourceforge.net/​projects/​cmusphinx/​files/​sphinx4/​1.0%20beta6/​sphinx4-1.0beta6-src.zip/​download|ici]] les sources ​de sphinx. La dernière version stable en juillet 2014 est la 4.1.0beta6. ​[[:​archivage|Décompressez]] l'​archive,​ vous obtiendrez un dossier **sphinx4-1.0beta6**
  
-=====Installation ​(Ubuntu 10.04 LTS=====+Une partie de sphinx ​(la "​jsapi"​n'est pas sous licence libre, contrairement au reste. Pour installer cette partie, qui nous sera utile par la suite, il faut lancer un script qui va nous demander d'​accepter cette licence puis décompresser la **jsapi**. Pour cela depuis le dossier **sphinx4-1.0beta6** obtenu en décompressant les sources de sphinx dans un [[terminal]]:​ 
 +  * Déplacez vous dans le dossier adéquat avec la commande : <​code>​cd sphinx4-1.0beta6-src/​sphinx4-1.0beta6/​lib/</​code>​ 
 +  * Rendez le script ''​jsapi.sh''​ [[:​tutoriel:​script_shell#​executer_un_script|exécutable]] 
 +  * Lancez le script ''​jsapi.sh''​ avec la commande : <​code>​sh jsapi.sh</​code>​
  
-[[ppa|Ajoutez  ​le PPA]] **ppa:dhuggins/​cmusphinx**((https://launchpad.net/​~dhuggins/​+archive/​cmusphinx|ppa:dhuggins/​cmusphinx)) à vos sources de logiciels, puis [[:tutoriel:​comment_modifier_sources_maj#​recharger_la_liste_des_paquets|rechargez la liste des paquets]]FIXME Le PPA est cassé. +appuyer sur <​espace>​ pour faire défiler ​le texte de la licence, puis répondre ''​y''​ à la question ''​Accept (y/n)?:''​ - Si l'on obtient l'​erreur suivante, c'est qu'il faut installer le paquet sharutils ​(cf Pré-requis)<​code>​jsapi.sh257jsapi.shuudecodenot found</code>
- +
- [[:tutoriel:​comment_installer_un_paquet|Installez les paquets]] FIXME ??? +
- +
-Voir [[http://​cmusphinx.sourceforge.net/​wiki/​download/​|cette page]] pour plus d'​informations.+
  
 =====Configuration===== =====Configuration=====
Ligne 21: Ligne 30:
 =====Utilisation===== =====Utilisation=====
  
-Il existe ​un tuto pour apprendre a utiliser ​la librairie cmu_sphinx ​en java [[http://​code.google.com/​p/​voicecmdr/​wiki/VoiceRecognitionFR]]\\ +Première étape: tester ​un code d'​exemple présent dans le paquet. La reconnaissance vocale sera en anglais. Nous allons compiler un des programmes d'​exemple ("​hello world"​) depuis eclipse. 
-Il existe ​un mini tuto pour utiliser PocketSphinx ​en python ​[[http://cmusphinx.sourceforge.net/wiki/gstreamer]]\\ + 
-FIXME+  * Démarrez eclipse, soit depuis le bureau, soit en tapant ​la commande '​eclipse'​ dans un terminal. Si c'est le premier démarrage d'​eclipse,​ celui-ci demande de choisir un répertoire "​workspace"​ où il stockera les projets. Accepter la réponse par défaut (/​home/​VOTRELOGIN/​workspace),​ et cocher la case "Use this as default"​. 
 +  * Dans l'​écran d'​accueil d'​eclipse,​ cliquez sur //​workbench//​ (flèche ​en haut à droite). 
 +  * Créez un nouveau projet: sélectionner //Fichier -> Nouveau -> Projet//, puis dans la boîte de dialogue choisir //​Projet ​java//, puis cliquer sur //​Suivant//,​ 
 +  * Comme nom de projet, choisir //​helloworld//​ et cliquer sur suivant, 
 +  * Passez la dernière boîte de dialogue en cliquant sur //​Terminer//,​ et si eclipse le demande, accepter d'​activer la "​perspective java"​. 
 +  * Importez le répertoire contenant l'​exemple "​helloworld":​ dans le menu //Fichier -> Importer//, //Général -> File System//. Cliquer sur //​Parcourir//,​ et sélectionner le répertoire **sphinx-4.1.0/​src/​apps/​edu/​cmu/​sphinx/​demo/​helloworld**. Une fois le répertoire sélectionné cocher tous les fichiers qui s'​affichent,​ puis cliquer sur "​Terminer"​. 
 +  * Charger les .jar: clic droit sur le projet "​helloworld"​ dans l'​arborescence qui apparaît à gauche. Dans le menu contextuel, choisissez //​Configurer le buildpath//,​ puis dans la boîte de dialogue qui s'​ouvre "Java build path", onglet "​libraries"​ puis "​external jar". Sélectionner le répertoire sphinx-4.1.0/​lib Une liste des jar apparaît, il faut tous les sélectionner et valider. Ensuite, re-cliquez sur "​external jar" et aller chercher **sphinx4-1.0beta6/​src/​jsapi2/​org.jvoicexml.jsapi2.jse.sphinx4/​3rdparty/​sphinx4/​lib/​sphinx4.jar**,​ ainsi que "​./​sphinx4-1.0beta6/​src/​jsapi2/​org.jvoicexml.jsapi2.jse.sphinx4/​3rdparty/​sphinx4/​lib/​WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar"​ 
 + 
 +  * Changer la déclaration du package "​helloworld"​ (.java ?): eclipse indique une erreur à la ligne 3 du fichier (une ampoule avec une croix sur fond rouge). Pour voir ce dont il s'​agit,​ laisser la souris au-dessus de la ligne 3 du fichier, une ligne de diagnostic, à propos de la position du package. Parmi les solutions ("​quickfixes"​) proposées en dessous, choisir "​déplacer helloworld.java dans edu.cmu.sphinx.demo.helloworld"​. 
 +  * Charger les ressources. À ce stade-là, il ne doit plus y avoir d'​erreurs dans la marge de "​helloworld.java"​. On peut donc lancer l'​application avec le bouton "​run"​ (dans la barre d'​outils). Choisir "as java application"​. On obtient l'​erreur suivante: 
 +<​code>​Exception in thread "​main"​ java.lang.NullPointerException</​code>​ 
 +at edu.cmu.sphinx.util.props.SaxLoader.load(SaxLoader.java:​74) at edu.cmu.sphinx.util.props.ConfigurationManager.<​init>​(ConfigurationManager.java:​58) at edu.cmu.sphinx.demo.helloworld.HelloWorld.main(HelloWorld.java:​33) C'est parce qu'il faut importer les "​ressources"​ dans le projet. Dans le "​project explorer",​ dérouler l'​arborescence jusqu'​à voir la classe HelloWorld ("​HelloWorld"​ avec un '​c'​ blanc sur fond vert à gauche). Cliquer avec le bouton droit sur la classe, et choisir "​Import…"​. Choisir "​General -> FileSystem",​ ce qui ouvre une boîte de dialogue dans laquelle on clique sur "​browser"​. On navigue dans l'​arborescence,​ on sélectionne le répertoire "​sphinx-4.1.0/​src/​apps/​edu/​cmu/​sphinx/​demo/​helloworld"​. Une fois le répertoire sélectionné cocher tous les fichiers qui s'​affichent,​ puis cliquer sur "​Terminer"​. 
 + 
 +  * Adapter le fichier de configuration à la position des ressources. Dans le "​project explorer",​ ouvrir le fichier "​helloworld.config.xml"​ qui est dans la classe helloWorld. Le contenu de ce fichier apparaît dans le panneau de droite. Trouver la ligne suivante: 
 +<​file><​property name="​fillerPath"​ value="​resource:/​WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz/​noisedict"/></​file>​ 
 +et remplacer "​noisedict"​ par "​fillerdict"​. On obtient: 
 + 
 +<​file><​property name="​fillerPath"​ value="​resource:/​WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz/​dict/​fillerdict"/></​file>​ 
 + 
 +  * Toujours dans le fichier de configuration,​ après la ligne 131, ajouter les deux lignes suivantes:​ 
 +<​file><​property name="​modelDefinition"​ value="​etc/​WSJ_clean_13dCep_16k_40mel_130Hz_6800Hz.4000.mdef"/>​ 
 +       <​property name="​dataLocation"​ value="​cd_continuous_8gau/"/></​file>​ 
 +        
 +à partir d'ici, pas vérifié 
 + 
 +Dans le fichier de configuration,​ trouver la section concernant le dictionnaire. L'un des items de cette section indique le chemin du dictionnaire (commence par /​resource...) Il faut remplacer ce chemin par la position où nous avons importé le dictionnaire de notre projet, par exemple ressource:/​edu/​sphinx/​.../​helloworld/​dict Faire de même avec la grammaire et le dictionnaire de filler. 
 + 
 +On peut maintenant tester le helloworld en cliquant sur Debug (flèche verte). Si la qualité de la reconnaissance est mauvaise, c'est normal. 
 + 
 +====Pour le français==== 
 + 
 +Modifier le "​helloworld"​ anglais pour l'​adapter au français. Pour cela, il faut récupérer les ressources (grammaire, dictionnaire et modèle acoustique),​ et modifier le fichier de configuration pour que ces nouvelles ressources soient prises en compte. 
 + 
 +Dictionnaire:​ récupérer le fichier french62K.dic ​[[https://​code.google.com/​p/​voicecmdr/​source/browse/​branches/​workflow/​src/​sphinx4/​french/​etc/​frenchWords62K.dic|ici]], l'​importer dans le projet eclipse, puis modifier le chemin du dictionnaire dans la section "​dictionnary"​ du fichier configuration.xml,​ 
 +Grammaire: il faut créer une grammaire, sur le modèle de celle qui existe ​en anglais, l'​importer dans le projet eclipse, puis modifier le chemin ​pour qu'​elle soit prise en compte, 
 +Modèle acoustique: il faut l'​importer dans le projet eclipse, puis le pointer depuis le fichier de configuration. On le récupère à cette [[https://voicecmdr.googlecode.com/svn/branches/​workflow/​src/​sphinx4/​french/​model_architecture/​french_f0.5725.mdef|adresse]] 
 +le fichier dmp [[https://​voicecmdr.googlecode.com/​svn/​branches/​workflow/​src/​sphinx4/​french/​etc/​french3g62K.DMP|ici]].
  
 =====Voir aussi===== =====Voir aussi=====
 +
   * **(en)** [[http://​cmusphinx.sourceforge.net/​|Site officiel]]   * **(en)** [[http://​cmusphinx.sourceforge.net/​|Site officiel]]
 +  * [[https://​code.google.com/​p/​voicecmdr/​wiki/​VoiceRecognitionFR|Sources]]
  
 ---- ----
  
 //​Contributeurs : FIXME.// //​Contributeurs : FIXME.//
  • cmu_sphinx.1417950718.txt.gz
  • Dernière modification: Le 07/12/2014, 12:11
  • par merlu