Nouveau snips satellite

Préparation de raspbian

Alors, comme une nouvelle version de raspbian est sortie, la buster, nous allons installer la version lite. Pour ça, pas de surprise, tu vas sur le site de téléchargement et tu suis la procédure que tu trouveras déjà dans cet article. On va pas épiloguer là-dessus 🙂

N’oublie pas non plus d’installer les drivers de ton micro et de ton haut-parleur. Pour le respeaker, c’est en allant sur cet article.

Installation d’un satellite snips

Si tu es un anglophone, n’hésite pas à aller sur cette page : https://docs.snips.ai/articles/platform/satellites

Si tu n’es pas anglophone, je vais te détailler les actions à faire ci-dessous.

Alors même si cela doit déjà être fait, on s’assure que tout est à jour

sudo apt-get update
sudo apt-get dist-upgrade

On installe le petit pré-requis qui va bien

sudo apt-get install -y dirmngr

Ensuite, on ajoute les sources snips

sudo bash -c 'echo "deb https://raspbian.snips.ai/stretch stable main" > /etc/apt/sources.list.d/snips.list'
 sudo apt-key adv --keyserver pgp.surfnet.nl --recv-keys D4F50CDCA10A2849

On recharge le tout

sudo apt-get update

Voilà. Jusqu’ici, c’était à peu près identique à ce que l’on connaissait déjà. C’est maintenant que ça change.

Snips a désormais un nouveau service pour le satellite qui remplace snips-server-audio et snips-hotword. Et histoire d’être logique, il s’appelle snips-satellite. Alors, installons tout ça.

sudo apt install snips-hotword-model-heysnipsv4
sudo apt install snips-satellite

Bon vérifions avec sam si tout va bien

pi@snips-bureau:~ $ sam status
-bash: sam : commande introuvable

Ah… Bon, il n y a pas de sam installé… Ah oui c’est vrai, L’équipe de snips n’aime pas qu’on installe sam en local… Bon, ce n’est pas grave, on va au moins regarder les services.

pi@snips-bureau:~ $ sudo systemctl status snips-*
● snips-satellite.service - Snips Satellite
   Loaded: loaded (/lib/systemd/system/snips-satellite.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Wed 2019-09-11 21:37:02 CEST; 3s ago
  Process: 2452 ExecStart=/usr/bin/snips-satellite (code=exited, status=1/FAILURE)
 Main PID: 2452 (code=exited, status=1/FAILURE)
pi@snips-bureau:~ $

bon, il ne démarre pas, allons voir pourquoi en lançant notre commande pour voir les logs

pi@snips-bureau:~ $ sudo journalctl --since "10 minutes ago" -u snips-*
-- Logs begin at Thu 2019-02-14 11:11:59 CET, end at Wed 2019-09-11 21:43:45 CEST. --
sept. 11 21:34:03 snips-bureau systemd[1]: Started Snips Satellite.
sept. 11 21:34:03 snips-bureau snips-satellite[2394]: INFO:snips_satellite: Using site id : default
sept. 11 21:34:03 snips-bureau snips-satellite[2394]: ERROR:snips_satellite: Could not start MQTT client on localhost:1883
sept. 11 21:34:03 snips-bureau snips-satellite[2394]:  -> caused by: Connection refused (os error 111)
sept. 11 21:34:03 snips-bureau systemd[1]: snips-satellite.service: Main process exited, code=exited, status=1/FAILURE
sept. 11 21:34:03 snips-bureau systemd[1]: snips-satellite.service: Failed with result 'exit-code'.
sept. 11 21:34:08 snips-bureau systemd[1]: snips-satellite.service: Service RestartSec=5s expired, scheduling restart.
sept. 11 21:34:08 snips-bureau systemd[1]: snips-satellite.service: Scheduled restart job, restart counter is at 1.
sept. 11 21:34:08 snips-bureau systemd[1]: Stopped Snips Satellite.

Et oui… Nous n’avons pas configuré notre fichier snips.toml . On peut le voir car dans les logs, il nous dit qu’il ne peut pas se connecter au serveur MQTT. Pour une petite explication sur le MQTT, c’est dans cet article.
Logique car le serveur MQTT est sur notre snips maître. Modifions donc notre fichier snips.toml

Dans [snips-common] on modifie

# mqtt = "localhost:1883"

par

mqtt = "snips-maitre:1883"

Bien évidemment, remplace ‘snips-maitre’ par le nom réseau de ton snips maître.

Maintenant, dans [snips-audio-server], nous allons remplacer

# bind = "default@mqtt"

par

bind = "bureau@mqtt"

Alors évidemment, j’ai mis bureau puisque je configure le satellite du bureau 🙂 Cela permet d’identifier chaque satellite. Pratique par exemple quand on dit juste ‘Hey snips, éteins la lumière’ et qu’il sait qu’il doit éteindre la lumière de la pièce dans laquelle est le satellite.

Maintenant qu’on a configuré notre satellite, essayons de démarrer le service

sudo systemctl start snips-satellite

Et voilà le résultat :

pi@snips-bureau:~ $ sudo systemctl status snips-satellite
● snips-satellite.service - Snips Satellite
   Loaded: loaded (/lib/systemd/system/snips-satellite.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-09-11 21:49:01 CEST; 1h 1min ago

Vérifions le bon fonctionnement sur notre snips maître

cedcox@snips-master:~$ snips-watch -vvv
[22:48:50] [Hotword] detected on site bureau, for model hey_snips
[22:48:50] [Asr] was asked to stop listening on site bureau
[22:48:50] [Hotword] was asked to toggle itself 'off' on site bureau
[22:48:50] [Dialogue] session with id '0b55939c-348a-4fd2-9f25-f998726414e5' was started on site bureau
[22:48:50] [AudioServer] was asked to play a wav of 41.1 kB with id '99969702-483c-4fcc-8131-a7c57cdb86df' on site bureau
[22:48:50] [AudioServer] finished playing wav with id '99969702-483c-4fcc-8131-a7c57cdb86df'
[22:48:50] [Asr] was asked to listen on site bureau
[22:48:53] [Asr] captured text "quelle heure est il" in 2.0s
[22:48:53] [Asr] was asked to stop listening on site bureau
[22:48:53] [AudioServer] was asked to play a wav of 93.1 kB with id '345df666-f300-41fa-a04a-15ebabb31e43' on site bureau
[22:48:54] [AudioServer] finished playing wav with id '345df666-f300-41fa-a04a-15ebabb31e43'
[22:48:54] [Nlu] was asked to parse input "quelle heure est il"
[22:48:54] [Nlu] detected intent cedcox:askTime with confidence score 1.000 for input "quelle heure est il"
[22:48:54] [Dialogue] New intent detected cedcox:askTime with confidence 1.000
[22:48:54] [Dialogue] was ask to end session with id 0b55939c-348a-4fd2-9f25-f998726414e5 by saying 'Il est 22 heures  48'
[22:48:54] [Tts] was asked to say "Il est 22 heures  48"
[22:48:54] [AudioServer] was asked to play a wav of 66.9 kB with id '61c5d591-0568-422f-962c-e9a21532c38e' on site bureau
[22:48:57] [AudioServer] finished playing wav with id '61c5d591-0568-422f-962c-e9a21532c38e'
[22:48:57] [Tts] finished speaking with id 'dbc7d591-ec07-48bb-a9d6-d27818a63d47'
[22:48:57] [Dialogue] session with id '0b55939c-348a-4fd2-9f25-f998726414e5' was ended on site bureau. The session ended as expected
[22:48:57] [Asr] was asked to stop listening on site bureau
[22:48:57] [Hotword] was asked to toggle itself 'on' on site bureau

2 Comments

  1. Hello
    Comme pour l’installation de snips sur debian, j’ai un soucis pour installer le satellite. J’ai des erreurs « Impossible de trouver le paquet snips-hotword-model-heysnipsv4 »
    J’ai essayé avec la commande sudo apt-key adv –fetch-keys https://debian.snips.ai/5FFCD0DEB5BA45CD.pub que tu m’avais laissé sur le post debian mais toujours la même erreur.
    Merci pour ton aide !

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.