Snips – créer un hotword personnalisé

Mise en production du hotword personnalisé

On crée un répertoire dans /etc que l’on va appeler snips

$ sudo mkdir -p /etc/snips/

Puis déplace le répertoire contenant les fichiers .wav et le fichier json dans ce nouveau répertoire

$ sudo mv <chemin_vers_modele> /etc/snips/

Ce qui pour moi donne :

$ sudo mv /home/pi/snips-record-personal-hotword/personal_2019_01_13T22_21_53 /etc/snips/

On vérifie quand même que tout est bien là avec ces 2 commandes

$ ls /etc/snips
personal_2019_01_13T22_21_53
$ ls /etc/snips/personal_2019_01_13T22_21_53
0.wav  1.wav  2.wav  config.json

Tout est bien au bon endroit. Il ne nous reste plus qu’à modifier le fichier « snips.toml » pour lui dire d’utiliser ce nouveau mot clé

$ sudo nano /etc/snips.toml

Et dans la partie hotword on passe de ceci :

[snips-hotword]
# model = "/usr/share/snips/hotword"
# hotword_id = "default"
# sensitivity = "0.5"
# audio = ["bureau@mqtt"]
# no_vad_inhibitor = false
# vad_messages = false

A cela :

[snips-hotword]
model = ["/etc/snips/personal_2019_01_13T22_21_53=0.5"]
# hotword_id = "default"
# sensitivity = "0.5"
# audio = ["bureau@mqtt"]
# no_vad_inhibitor = false
# vad_messages = false

On a donc modifié la ligne « model » pour y mettre notre nouveau hotword. On y a mis :

model = ["<chemin_vers_modele>=<sensitivity>"]

Et si tu as plusieurs hotwords à mettre, et bien tu les ajoutes en les séparant par des virgules

model = ["<chemin_vers_modele_un>=<sensitivity>","<chemin_vers_modele_deux>=<sensitivity>"]

Et si en plus, tu veux quand même garder le hotword « Hey ! Snips » en plus des hotwords personnalisés, alors ajoute le chemin suivant :
/usr/share/snips/assistant/custom_hotword avec =<sensitivity>

Ce qui me donne au final :

[snips-hotword]
model = ["/etc/snips/personal_2019_01_13T22_21_53=0.5","/usr/share/snips/assistant/custom_hotword=0.4"]
# hotword_id = "default"
# sensitivity = "0.5"
# audio = ["bureau@mqtt"]
# no_vad_inhibitor = false
# vad_messages = false

Comme d’habitude, un CTRL+O pour sauvegarder et un CTRL+X pour quitter nano.

Il ne reste plus qu’à remettre snips en marche et regarder le résultat

$ sudo systemctl restart snips-hotword; sudo systemctl restart snips-dialogue

6 Comments

  1. Bonjour Cox,

    Je commence mes recherches sur Snips, car un ami qui voulais faire un assistant pour sa domotique a changé de support et va commencer avec Snips bientôt et arrêter Sarah de https://blog.encausse.net/sarah/

    Nous sommes tous les deux fans de la série Eurêka, et notre question est sur les HotWord officiels, comme vous travaillé chez snips, vous savez peut être?

    Il y a Jarvis de Iroman mais pas de SARAH de Eurêka!!
    Est-il prévu de l’integrer un jour?
    Car, pour avoir sarah pour plusieurs personnes dans la maison, ça devient compliqué… et des fan de la série qui voudrait avec une assistante Vocale du même nom aussi, je pense.

    Pour finir, j’adore vos explications et pour une intégration, c’est d’une aide superbe!
    Maintenant, reste plus qu’à investir pour snips dans mon bureau pour commencer.

    Merci bcp

    • Bonjour,

      Avec Snips, il est possible d’avoir un hotword par personne, ce qui permet de savoir qui l’a déclenché. Mais cela nécessite de mettre un peu plus les mains dans le cambouis avec la récupération des infos dans les messages MQTT.

      Amusez vous bien avec Snips !

      Ced

  2. Je tenais à te remercier pour tes articles détaillés sur snips qui sont bien fait et j’ai vu également que tu avais commencé un premier article sur openhab qui sont malheureusement rare en français vivement la suite !!

  3. Bonjour,

    Je tente de mettre plusieurs modèle de Hotword, mais je n’y arrive pas.
    Il ne prend en compte que le dernier chemin présent dans la syntaxe ci dessous.
    Il y a pas un pb dans la syntaxe ?

    Merci
    model = [« = », »= »]

    • Bonjour Qben,

      As tu essayé le chapitre « test de bon fonctionnement » ? Est ce que le service snips-hotword fonctionne correctement avec ton/tes hotwords personnalisés ? Si oui, c’est alors effectivement un problème de syntaxe même si à première vue, je vois ce que tu as voulu écrire et je dirai que c’est bon.

      Dans le pire des cas, ouvre un ticket sur le forum de snips (en anglais) et je t’y aiderai. Il reste aussi le discord où je suis régulièrement et où tu peux me toquer.

      On arrivera à les faire fonctionner tes hotwords 😉

      Cedcox

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.