Compilation de Jasper : quelques précisions

Pour commencer, c'est quoi Jasper ?
Jasper est une solution de reconnaissance et de synthèse vocale offline, entendons par là qui n'utilise pas les services de Google, d'AT&T, etc ... les calculs sont réalisés en local, dans notre cas sur le Raspberry Pi.

L'installation
Bah rien de très compliqué, il suffit de suivre la démarche indiquée à cet URL : http://jasperproject.github.io/documentation/installation/

Enfin, il suffit ... il suffit d'apporter quelques précisions pour que cela fonctionne. Rassurez-vous, y a pas grand chose.

Dans la documentation, tout ce déroule bien jusqu'à l'installation de Phonetisaurus, m2m-aligner et MITLM.
La doc nous indique que les chanceux qui sont sur Debian peuvent utiliser les dépots "Experimental", pour les autres c'est compilation a la mano.

Ça tombe plutôt bien, je suis en veine et sous Debian (Raspbian, pour être précis).

Allons-y pour le dépot "Experimental" ... et premier problème avec la clé GPG du dépot, qu'on s'empresse de régler ... et on continue.
Second problème, cette fois de dépendance, en effet Phonetisaurus a besoin de python-any ...

Ne voulant pas y passer la nuit (ce qui est tout relatif sur un Raspberry Pi), je passe à la solution des malchanceux, la compilation à la main.
Nous reprennons donc la doc à partir de "If you’re not using Debian, perform these steps".

On télécharge et on décompresse les archives indiquées ...

Arrive la compilation d'OpenFST (OpenFiST pour les intimes ...).

Compilation classique, configure, make install et ça dure longtemps, très longtemps, très très longtemps, beaucoup trop longtemps car après une nuit de compilation, on est toujours sur la génération de "push.o".

L'auteur de la doc nous avait prévenu : come back after a really long time - mais là c'est surréaliste ... et pour cause ...

Alors autant vous le dire tout de suite, si vous voulez gagner au jeu de la patience avec votre Raspi, vous allez perdre ... parce que ... parce que ... c'est juste bloqué, pas freezé, votre Raspi n'est pas mort ... IL SUFFOQUE.

 

ATTENTION CE QUI VA SUIVRE PEUT HEURTER LA SENSIBILITÉ DE CERTAINS

La raison est toute simple, le manque de swap (et de peps).

Car OUI, il y a un swap sur Raspbian et c'est sur la carte SD que ça se passe (j'en vois déjà certain qui ont les orifices qui saignent, et c'est bien normal).

Cette zone d'échange fait 100Mo sur Raspbian, et la génération de "push.o" a besoin de plus, voire beaucoup plus (~450Mo).

Nous allons donc redimmensionner le swap (en root bien entendu).

On commence par éditer /etc/dphys-swapfile en passant CONF_SWAPSIZE à 500
On applique la modification : dphys-swapfile setup
On relance : dphys-swapfile swapon

Remarque : pour désactiver le swap => dphys-swapfile swapoff

Voilà, maintenant on peut relancer la compilation et faire ce que je suis en train de faire ... écrire un article pour relater l'aventure.
À l'heure où je rédige, la compilation se poursuit ...

En espérant que ça en aidera certains (à ne pas perdre 5h de leur vie).

TO BE CONTINUED