# Informations développeurs.
# 2020 Bruno ANSELME <be.root@free.fr>
######################################

NoComprendo utilise Pocketsphinx Version 5prealpha de la Carnegie Mellon University.
https://cmusphinx.github.io/wiki/download/

Au moment du développement de cette application, cette version de la librairie n'est pas disponible
 dans toutes les distributions linux majeures.
Les librairies libsphinxbase.a et libpocketsphinx.a sont liées statiquement dans l'application.

Le fichier psphinx-make-targets.pri contient les directives qmake pour la génération du Makefile qui compilera les librairies et copiera les modèles acoustiques.

L'archive de NoComprendo contient les archives (tar.gz) de Sphinx, de PocketSphinx,
  des modèles acoustiques anglais et français et des dictionnaires anglais et français.

Pour générer l'application il faut procéder ainsi :
$ qmake
$ make            # Génère les librairies statiques, l'application, décompacte les modèles acoustiques.
$ qmake           # TRES IMPORTANT, met à jour la cible 'install' du Makefile maintenant que les modèles acoustiques sont décompactés.

Le Makefile compile d'abord les deux librairies (qui produisent quelques warnings), décompacte les modèles acoustiques et compile l'application.
Ne pas utiliser de jobs parallèles (ex: make -j4) car les librairies doivent être compilées dans un premier temps et de façon séquentielle.

Pour installer l'application, passer en root :
$ make install

Répertoires de l'application :
  Dictionnaires               : /usr/share/nocomprendo.
  Modèles acoutiques          : /usr/share/nocomprendo/pocketsphinx.
  Les paramètres utilisateurs : /home/{user}/.config/BeRoot/NoComprendo.conf
  Vocabulaire, les groupes de commandes
       et le "language model" : /home/{user}/.config/nocomprendo/

Pour réinitialiser complètement NoComprendo, supprimer le fichier et le répertoire ci-dessus.
--------------------
Pour le moment NoComprendo a besoin de X.org et les xdotools pour interagir avec l'environnement.
L'interface avec la libxdo est située dans le fichier guicontrol.cpp.
Si une adaptation à Wayland est possible un jour, il devrait suffire de modifier ce fichier.
L'interface avec la espeak est située dans le fichier speak.cpp.
