installation venv
Dans le cadre d’une installation dans un environnement virtuel python, nous allons créer un service qui sera lancé au démarrage. Simple et efficace.
problème avec supervisord.conf
<MISE A JOUR>
On oublie ce que j’avais écris avant, une petite astuce fonctionnelle a été postée sur le ticket de bug github.
Création du service
On crée donc notre nouveau service Rhasspy :
sudo nano /etc/systemd/system/rhasspy.service
puis on colle ceci à l’intérieur
[Unit]
Description=Rhasspy
After=syslog.target network.target
[Service]
Type=simple
WorkingDirectory=/home/pi/rhasspy
ExecStart=/bin/bash -c './rhasspy.sh --profile fr --user-profiles /home/pi/.config/rhasspy/profiles 2>&1 | cat'
User=pi
RestartSec=1
Restart=on-failure
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rhasspy
[Install]
WantedBy=multi-user.target
CTRL+O
et CTRL+V
pour enregistrer et quitter.
On demande à systemctl
de lire notre nouveau service Rhasspy
sudo systemctl daemon-reload
On active Rhasspy à chaque démarrage de notre raspberry
sudo systemctl enable rhasspy
Et on le démarre pour vérifier que tout fonctionne
sudo systemctl start rhasspy
Pour s’assurer que tout fonctionne, on attend une dizaine de secondes et on va regarder dans syslog
si tout est OK
sudo cat /var/log/syslog
Et on doit trouver ces 2 lignes
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)
Il n’y a plus qu’à redémarrer notre raspberry et s’assurer que là encore, notre Rhasspy démarre correctement.
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
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
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
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