Lancer Rhasspy au démarrage du raspberry

Installation image Docker

Pour cela, rien de plus simple. Si tu lances ton conteneur en ligne de commande tu devrais lancer ceci :

docker run -p 12101:12101 \
      -v "$HOME/.config/rhasspy/profiles:/profiles" \
      -v "/etc/localtime:/etc/localtime:ro" \
      -d --restart unless-stopped \
      --device /dev/snd:/dev/snd \
      rhasspy/rhasspy \
      --user-profiles /profiles \
      --profile fr

Ce qui est important, c’est ceci :

-d --restart unless-stopped

Quoi qu’il arrive, à moins qu’on le demande expressément, le conteneur Rhasspy redémarrera tout le temps.

Pour voir si conteneur Rhasspy est en cours d’exécution :

docker container ls

Ce qui devrait te renvoyer ceci :

pi@rasp-test:~ $ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES
5c79353b0837        rhasspy/rhasspy     "bash /usr/lib/rhass…"   5 minutes ago       Up 36 seconds       0.0.0.0:12101->12101/tcp   affectionate_wilson
pi@rasp-test:~ $

8 Comments

  1. Bonjour cedcox,
    Je vais essayer de faire court… j’ai pu faire fonctionner Rhasspy[docker] sans problème. j’ai donc pour des raisons de dev modifier mon Raspberry pi 4 en déplacant le systeme sur un petit SSD. Il fonctionne à merveille .
    J’ai donc décider de passer sur un environnement virtuel . j’ai finalement une erreur lors du lancement avec un « supervisor non trouvé »
    voici le syslog :
    ***************************************************
    Dec 21 14:29:47 raspberrypi systemd[1]: Started Rhasspy.
    Dec 21 14:29:48 raspberrypi rhasspy[1329]: Starting up…
    Dec 21 14:29:48 raspberrypi rhasspy[1329]: Using virtual environment at /home/pi/rhasspy/.venv
    Dec 21 14:29:48 raspberrypi rhasspy[1329]: DEBUG:rhasspysupervisor:Namespace(debug=True, docker_compose= », local_mqtt_port=12183, profile=’fr’, supervisord_conf=’supervisord.conf’, system_profiles=None, user_profiles=PosixPath(‘/home/pi/.config/rhasspy/profiles’))
    Dec 21 14:29:48 raspberrypi rhasspy[1329]: DEBUG:rhasspysupervisor:Loading profile fr (user=/home/pi/.config/rhasspy/profiles, system=None)
    Dec 21 14:29:48 raspberrypi rhasspy[1329]: DEBUG:rhasspyprofile.profile:Loading /home/pi/rhasspy/rhasspy-profile/rhasspyprofile/profiles/fr/profile.json
    Dec 21 14:29:48 raspberrypi rhasspy[1329]: DEBUG:rhasspyprofile.profile:Loading /home/pi/.config/rhasspy/profiles/fr/profile.json
    Dec 21 14:29:48 raspberrypi rhasspy[1329]: DEBUG:rhasspysupervisor:Generating supervisord conf
    Dec 21 14:29:48 raspberrypi rhasspy[1329]: DEBUG:rhasspysupervisor:Microphone disabled (system=dummy)
    Dec 21 14:29:48 raspberrypi rhasspy[1329]: DEBUG:rhasspysupervisor:Speakers disabled (system=dummy)
    Dec 21 14:29:48 raspberrypi rhasspy[1329]: DEBUG:rhasspysupervisor:Wake word disabled (system=dummy)
    Dec 21 14:29:48 raspberrypi rhasspy[1329]: DEBUG:rhasspysupervisor:Speech to text disabled (system=dummy)
    Dec 21 14:29:48 raspberrypi rhasspy[1329]: DEBUG:rhasspysupervisor:Intent recognition disabled (system=dummy)
    Dec 21 14:29:48 raspberrypi rhasspy[1329]: DEBUG:rhasspysupervisor:Intent handling disabled (system=dummy)
    Dec 21 14:29:48 raspberrypi rhasspy[1329]: DEBUG:rhasspysupervisor:Text to speech disabled (system=dummy)
    Dec 21 14:29:48 raspberrypi rhasspy[1329]: DEBUG:rhasspysupervisor:Dialogue disabled (system=dummy)
    Dec 21 14:29:48 raspberrypi rhasspy[1329]: DEBUG:rhasspysupervisor:Wrote /home/pi/.config/rhasspy/profiles/fr/supervisord.conf
    Dec 21 14:29:48 raspberrypi rhasspy[1329]: Starting services…
    Dec 21 14:29:48 raspberrypi rhasspy[1329]: Using virtual environment at /home/pi/rhasspy/.venv
    Dec 21 14:29:49 raspberrypi rhasspy[1329]: Using virtual environment at /home/pi/rhasspy/.venv
    Dec 21 14:29:49 raspberrypi rhasspy[1329]: /home/pi/rhasspy/bin/voltron-run: ligne 48 : exec: supervisord : non trouvé
    Dec 21 14:29:49 raspberrypi systemd[1]: rhasspy.service: Succeeded.
    ***********************************
    Une idée ?
    bien cordialement,
    et un grand merci pour tes aides
    Pascal

    • Bonjour,

      Alors comme ça je dirai qu’effectivement supervisord n’est pas installé. Etrange…
      Essaye de l’installer via cette ligne :
      sudo apt install supervisor

      Cédric

  2. Bonjour Ced,
    Je passe par ce topic pour le script de la mise à jour de Rhasspy.
    Question : si l’on lance une demande de mise à jour alors qu’on dispose de la dernière version le script renvoi une erreur comme quoi on possède déjà la dernière version d’où l’impossibilité d’exécuter l’opération ou efface t-il quand même le conteneur et le recrée automatiquement comme s’il s’agissait d’une mise à jour.

    Merci.

    • Bonjour Hervé,

      Effectivement, j’avais oublié d’activer les commentaires sur l’article des mises à jour. C’est corrigé 🙂
      Voici ce que ça donne lorsque je relance un pull alors que je suis toujours à jour :
      pi@rasp-test:~ $ docker pull rhasspy/rhasspy
      Using default tag: latest
      latest: Pulling from rhasspy/rhasspy
      Digest: sha256:885580155f24e4e91e9eca43e32e1c4223486278e45284911fd57fe4478b9a83
      Status: Image is up to date for rhasspy/rhasspy:latest
      docker.io/rhasspy/rhasspy:latest
      pi@rasp-test:~ $

      Donc, il ne re-télécharge rien et ne recrée pas ton conteneur lorsque l’image est à jour.
      Par contre, si il met à jour l’image, alors il te faudra redémarrer ton conteneur pour qu’il le mette à jour.

      Ced

  3. Bonsoir Ced,
    J’ai surement loupé quelque chose.
    Cette procédure concerne uniquement un environnement virtuel ou aussi Docker.
    Pour mon installation Docker je suis parti de la création de service et au reboot Rhasspy ne se lance pas. Je suis toujours obligé de lancer mon conteneur en ligne de commande.

    Hervé

    • Bonjour Hervé

      Si tu as une image Docker, seule la page 2 du tutoriel est nécessaire. La page 3 n’est que pour ceux qui ont installé Rhasspy dans un environnement python virtuel (via les commandes git).

      Je t’ai répondu directement et plus longuement par mail 🙂

      Ced

  4. Bonjour Cédric,
    Heureux de voir que tes travaux semblent toucher à leur fin vu ton retour avec 3 nouveau articles en 2 jours.
    Du coup j’ai essayé de les mettre en pratique.
    Lancement automatique de Rhasspy au démarrage et du script de maj (je travail avec une installation Docker) et j’ai comme erreur pour les 2 comme quoi la liaison ne pouvait être effectuée car le port était déjà occupé.
     » docker: Error response from daemon: driver failed programming external connectivity on endpoint keen_leavitt (e1e23c048575ddb222811e19b4eb9cf68098ec3afebd13d6cee6f8d23e10653d): Bind for 0.0.0.0:12101 failed: port is already allocated.
    ERRO[0003] error waiting for container: context canceled
     »
    Donc me revoila avec mes soucis lol.
    Hervé

    • Bonjour Hervé,

      Cette erreur signifie que tu as déjà le port 12101 d’utilisé donc qu’il y a déjà certainement une instance de Rhasspy déjà lancée.
      Dans un premier temps, liste les conteneurs Rhasspy en cours d’exécution :
      docker container ls

      Il devrait te renvoyer une ligne comme ceci :
      CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
      5c79353b0837 rhasspy/rhasspy "bash /usr/lib/rhass…" 5 minutes ago Up 36 seconds 0.0.0.0:12101->12101/tcp affectionate_wilson

      Maintenant qu’on a le nom du conteneur (affectionate_wilson), on va arrêter cette instance :
      docker stop affectionate_wilson

      On vérifie qu’il n y a plus d’instance avec la première commande plus haut, et tu peux exécuter celle dans cet article (avec -d –restart unless-stopped \).

      En espérant que ça résoudra le soucis !

      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.