Installation VM (serveur snips) et satellite (raspberry)


#1

Bonjour,

Cela fait plusieurs semaines que je me casse les dents (et c’est peu de le dire sur l’installation de Snips en interface pour Jeedom). Je n’en suis pas à la partie Jeedom mais simplement à le déployer.

Voici l’architecture que je souhaite mettre en place et je ne pense pas être le seul … là dessus.

  • VM dédiée pour la partie “intelligence” sur un PC domotique dédié (core i7, 32 go de ram) pour tous les services de la maison - Debian9 avec utilisateur en sudo.

  • satellite rpi3 (prévue 3 mais pour l’instant 1 qui marcherait ce serait déjà bien) avec stretch lite avec utilisateur sudo aussi.


Pour la partie serveur debian 9, j’ai suivi ceci (trouvé sur le forum et remonté aussi sur le forum jeedom) :slight_smile:

su
apt update && apt install sudo
usermod -aG sudo <username>
echo 'username ALL=(ALL) NOPASSWD: ALL' | sudo tee --append /etc/sudoers > /dev/null

#Logout and login as <username>

sudo apt update && sudo apt dist-upgrade
sudo apt-get install -y dirmngr apt-transport-https
sudo apt-add-repository non-free
sudo bash -c  'echo "deb https://debian.snips.ai/stretch stable main" > /etc/apt/sources.list.d/snips.list'
sudo apt-key adv --keyserver pgp.mit.edu --recv-keys F727C778CCB0A455
sudo apt update
sudo apt install -y alsa-utils snips-platform-voice snips-skill-server snips-watch curl unzip
sudo sudo usermod -aG snips-skills-admin <username>

#Logout and login

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo alsactl init
sudo npm install -g snips-sam
sam connect localhost
sam login
sam install assistant
sudo systemctl restart 'snips-*'

Quelques points pour la partie VM serveur.
Après avoir fait un sam connect localhost (donc sur la VM), sam status donne :

OS version ................... Debian GNU/Linux 9 (stretch)
Installed assistant .......... Jeedom
Language ..................... fr
Hotword ...................... jarvis
ASR engine ................... snips
Status ....................... Live

Service status:

snips-analytics .............. 0.60.1 (running)
snips-asr .................... 0.60.1 (running)
snips-audio-server ........... 0.60.1 (not running)
snips-dialogue ............... 0.60.1 (running)
snips-hotword ................ 0.60.1 (running)
snips-nlu .................... 0.60.1 (running)
snips-skill-server ........... 0.60.8 (running)
snips-tts .................... (not running)

Voici le toml que j’ai configuré :

Ce point n’est pas clair pour moi, j’ai mis aussi serveur, snips ou même le hostname de la VM, ça ne change rien (voir plus bas).

[snips-audio-server]
# frame = 256
bind = "VM-SRV-SNIPS@mqtt"

J’ai tenté de faire sam set-hostname VM-SRV-SNIPS pour que ça colle… mais quelque soit le cas, ça ne marche pas.

Ensuite après avoir installé la PI3 en stretchlite, j’ai ajouté l’utilisateur en sudo et suivi la procédure d’installation du site snips, je souhaite me mettre en configuration B.

J’ai testé et c’est OK ma carte respeaker 2 mics par sam test microphone (je m’entends) et sam test speaker (front left, front right etc). Après avoir un peu galéré quand même avec un haut parleur usb en 2,0 alors que le micro est en 1,0.

Là encore après avoir fait un sam connect localhost sur la pi pour avoir un status :

OS version ................... Raspbian GNU/Linux 9 (stretch)
Installed assistant .......... Jeedom
Language ..................... fr
Hotword ...................... jarvis
ASR engine ................... snips
Status ....................... Live

Service status:

snips-analytics .............. 0.60.1 (running)
snips-asr .................... 0.60.1 (running)
snips-audio-server ........... 0.60.1 (running)
snips-dialogue ............... 0.60.1 (not running)
snips-hotword ................ 0.60.1 (running)
snips-nlu .................... 0.60.1 (running)
snips-skill-server ........... 0.60.1 (not running)
snips-tts .................... 0.60.1 (running)

Je précise que pour la partie hotword en suivant la documentation j’ai du faire :
ensuite côté VM serveur :

j’ouvre une fenêtre scp
/usr/share/snips/hotword
je copie les 3 fichiers sur mon bureau
la fenêtre scp de la pi satellite1
je copie les 3 fichiers sur le home
sudo mv config.json /usr/share/snips/hotword
sudo mv model.pb /usr/share/snips/hotword
sudo mv thresholds_curve.json /usr/share/snips/hotword
les fichiers appartiennent à root sur la vm serveur donc je fais de même sur le satellite :
cd /usr/share/snips/hotword/
sudo chown root:root *

Le toml du satellite est le suivant, j’ai un dnsmasq donc j’utilise le nom local ou l’ip de toutes les façons le problème n’est pas là (voir plus bas)

[snips-common]
mqtt = "srvsnips.home:1883" 
# mqtt = "192.168.2.93:1883" # marche pareil que le dnsmasq, donc je garde la première ligne
[snips-audio-server]
bind = "satellite1@mqtt" # MODIF
[snips-hotword]
model = "/usr/share/snips/hotword" # MODIF
sensitivity = "0.3" # MODIF
audio = ["satellite1@mqtt"] # MODIF 

Là, je fais un sam watch que ce soit sur la pi ou la VM, je dis jarvis (que j’ai configuré et je n’ai aucun audio dans le satellite…)

boss@VM-SRV-SNIPS:~$ sam watch
[09:48:13] Watching on localhost:1883 (MQTT)
[09:48:15] [Hotword] detected on site satellite1, for model default
[09:48:15] [Asr] was asked to stop listening on site satellite1
[09:48:15] [Hotword] was asked to toggle itself ‘off’ on site satellite1
[09:48:15] [Dialogue] session with id ‘f8111eae-dc4f-4e68-9755-384cb034687e’ was started on site satellite1
[09:48:15] [AudioServer] was asked to play a wav of 41.1 kB with id ‘1656edfc-0de5-4710-94d2-a52f41c659b1’ on site satellite1
^C

Jarvis déclenche bien l’envoi vers le serveur snips (puisque le watch sur le serveur me dit des choses par contre je n’ai AUCUN retour audio dans le hp). Et visiblement le micro marche puisqu’il entend “jarvis”

J’ai repris 50 fois l’installation, le paramétrage sur le forum jeedom, on me parle de problème de droits, de mosquitto… j’arrive au bout là.

Merci pour l’aide.

Maybe I can switch in english if you need…


#2

Salut,
Je n’ai pas de solution, j’avais essayé exactement ce que tu viens d’essayer : snips sur un serveur ou une vm et un satellite RPi0w avec un respeaker (voir mon post Snips on satelite not listening after hotword ), j’ai tout essayé, version A et version B, mais rien de ce qu’était dit après le hotword n’était renvoyé au ASR pour reconnaissance.

J’ai abandonné et tout mis sur un seul RP3b+ et là ça fonctionne, snips me répond et réagit à mes intents.
Je vais bientôt installé un satellite pour voir si ça ça fonctionne et mettrais le résultat ici.


#3

I’m at the same stage with a PI zero W … not possible to install SAM, the version of Node.js, whose new version is not compatible with the PI zero because of architecture ARMv6, not compatible and suddenly no SAM, I tried the methods to install Snips satellite, but I did not succeed … against a PI3, superfacile as master … I ressaierais with a complete reinstalation on the PI zero …


#4

Je ne sais plus si on est en anglais ou en francais désolé…

J’en suis au même stade avec un PI zero W… pas possible d’installer SAM, au des version de Node.js, dont les nouvelles version ne sont pas compatibles avec le PI zero pour cause d’architecture ARMv6, non compatible et du coup pas de SAM, j’ai essayé les methodes pour installer Snips en satellite, mais je n’ai pas réussi… par contre un PI3, superfacile comme maitre… Je ressaierais avec une réinstalation complete sur le PI zero…


#5

J’ai bien installé SAM, je pense que vous n’avez pas compris.
Il est bien déployé sur ma VM et sur mon satellite.

Mon problème est ailleurs.

Après avoir aligné mes toml correctement et mes hostnames si je dis jarvis sur mon satellite je vois bien une détection de l’hot word et envoyer à la vm maitre.

Sauf que je n’ai aucun retour audio dans le speaker usb sur la satellite alors que sam test speaker et microphone sont OK.

https://www.jeedom.com/forum/viewtopic.php?p=677596#p677653


#6

tu as bien installé SAM sur le un PI zero W… en Satellite ???


#7

Y a bien écrit ça en haut à la troisième ligne :smiley: