Installation de Rhasspy 2.5.7 (venv)

Installation de Rhasspy dans un environnement virtuel python

Alors un environnement virtuel python, c’est un peu comme une bulle dans laquelle nous allons installer Rhasspy et toutes ses dépendances de python dans les versions qui nous intéresse.

En effet, un autre logiciel peut avoir besoin d’un module python dans une version A alors que Rhasspy d’une version B.

Pour être tranquille, on crée notre bulle dans laquelle il y aura donc les bonnes versions de tous les modules python qui nous intéresse.

Tu vas alors me dire que cette histoire de bulle ressemble vachement à Docker. Alors oui mais non. Car, avec Docker, c’est la totalité des dépendances qui sont incluses comme les packages installés par apt. Avec un environnement virtuel python, seuls les modules python sont inclus. Par exemple, si tu as besoin d’une version particulière de “Perl” uniquement pour Rhasspy, avec Docker, cette version sera dans l’image et n’impactera pas la version de Perl installée sur le raspberry. On ne peut pas faire ça avec un environnement virtuel python.

Autre différence, on ne peut pas depuis un shell (fenêtre de commande) accéder aux fichiers qui sont dans la bulle Docker alors qu’on peut accéder aux fichiers qui sont dans notre environnement virtuel python.

Aller, c’est parti.

On commence déjà par récupérer Rhasspy

git clone --recursive https://github.com/rhasspy/rhasspy

On rentre dans le répertoire fraîchement téléchargé

cd rhasspy

Et là, on va configurer l’installation de Rhasspy pour qu’elle n’installe que ce qui nous intéresse. Dans mon cas, je souhaite snowboy en wake word, kaldi pour le speech to text, et la langue française. Ce qui nous donne :

./configure RHASSPY_LANGUAGE=fr RHASSPY_SPEECH_SYSTEM=kaldi RHASSPY_WAKE_SYSTEM=snowboy --enable-in-place

On peut donc constater dans le résultat que nos demandes ont bien été prises en compte :

virtualenv: yes
in-place: yes
language: fr

wake:
  mycroft precise: no
  porcupine: no
  snowboy: yes
  raven: yes
  pocketsphinx: no

speech to text:
  pocketsphinx: no
  kaldi: yes (armv7, prebuilt)
  deepspeech: no
  julius: no

intent recognition:
  fuzzywuzzy: yes
  snips-nlu: no

text to speech:
  nanoTTS: yes (prebuilt)
  Wavenet: yes
  Larynx: no

training:
  opengrm: yes (armv7, prebuilt)
  phonetisaurus: yes (armv7, prebuilt)
  kenlm: no

Et ensuite on lance l’installation basée sur notre configuration personnalisée.

make
make install

Bon, là, il y en a pour quelques minutes.

Mais si tout se passe bien, cela devrait se finir par ceci :

chmod +x "/home/pi/rhasspy/rhasspy.sh"
pi@rasp-test:~/rhasspy $

il ne nous reste plus qu’à tester que Rhasspy démarre :

./rhasspy.sh --profile fr

Si tout est Ok, cela devrait se terminer par :

[DEBUG:2020-10-31 23:39:55,159] rhasspyserver_hermes: Starting web server at http://0.0.0.0:12101
Running on 0.0.0.0:12101 over http (CTRL + C to quit)

Et si tu ouvres un navigateur et que tu rentres comme adresse : http://<adresse_ip_de_mon_rhasspy>:12101 , tu devrais arriver sur la page d’accueil de Rhasspy.

7 Comments

  1. Bonjour,
    Bon, j’ai enfin un Rpi4 ! Installation de Raspberry OS, SSH… J’ai voulu faire l’impasse du ReSpeaker pour installer Rhasspy et recycler une petite enceinte connectée et un micro USB. Les commentaires étant fermés sur la partie “ReSpeaker pour raspberry”, je poste ici (c’est mal?). Je précise avoir réussi à faire sortir du son grâce à cette enceinte connectée en bluetooth (ce qui est déjà un exploit pour moi, débutant sur la question). Donc avant de ma lancer dans le micro USB, peux-tu m’éclairer pour quelle raison privilégies-tu un hat plutôt que du matériel plus “universel” ?
    Je te remercie

    • Bonjour Damien,

      Il n’y a aucune raison à choisir un pihat, c’est juste que c’est moins cher pour le 2 pihat ou alors pour les versions plus évoluées, des algorithmes (basiques) de traitement de son. Mais un micro en USB fait tout aussi bien l’affaire. Parfois, il faut plutôt d’assurer que le câble d’alimentation ou le cable usb du micro soient bien blindés car sinon ça fait des parasites.
      Donc, non, tu peux jouer avec n’importe quel périph si tu arrives à l’installer sur le raspberry 🙂

      Ced

  2. Merci Ced,
    Version 3.5.2
    La commande suivante passe sans problème : sudo update-alternatives –install /usr/bin/python python /usr/bin/python3 1

    Par contre : sudo update-alternatives –install /usr/bin/pip pip /usr/bin/pip3 1,
    renvoie :
    update-alternatives: avertissement: forçage de la réinstallation de l’alternative /usr/bin/pip3 car le groupe de liens pip est cassé
    update-alternatives: avertissement: /usr/bin/pip ne sera pas remplacé par un lien
    Bon, ça ne s’annonce pas simple…

    Sinon, en plan B, il y a une autre solution pour installer Rhasspy sur un PC :sous Debian.
    Merci

  3. Bonjour,
    Je tente d’installer Rhasspy sur mon PC (Linuxmint) pour voir ce que cela donne avant de tenter sur une Raspberry.
    A priori la solution d’environnement virtuelle est indiquée pour cette démarche (j’ai un niveau débutant).
    Sur l’ordi, les version 2.7, 3 et 3.5 de Python sont installées. J’ai suivi votre tuto… et c’est le drame :

    configure:2368: error: in `/home/lincoln/rhasspy’:
    configure:2370: error: No compatible Python interpreter found. If you’re sure that you have one, try setting the PYTHON environment variable to the location of the interpreter.

    J’ai fait ceci : PYTHON=/usr/lib/python3, sans grand succès.
    Bref, je sèche. J’ai l’impression que le système ne trouve pas la bonne version de Python… mais je ne vois pas comment le préciser.

    • Bonjour Damien,

      Ces 2 lignes force python3 par défaut :
      sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1
      sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1

      Ensuite vérifie la version :
      pi@rasp-bureau:~ $ python --version
      Python 3.7.3
      pi@rasp-bureau:~ $

      Après est ce une version minimal de python3 mais pour être honnête, je n’ai pas l’info

      Ced

Poster un Commentaire

Votre adresse de messagerie ne sera pas publiée.


*


Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.