Création du wake word snowboy
Alors pour ça, il y a 2 possibilités. La première, c’est en téléchargeant le modèle customisé depuis le site snowboy.
La seconde méthode se fait à l’aide d’API.
Téléchargement du modèle depuis le site internet snowboy
Je vais commencer par la première, depuis le site de snowboy :
On clique en haut à droite sur le bouton “Log In” pour se connecter. Il va te demander avec quel compte associé tu souhaites te connecter. Très à la mode ce système d’authentification… Bref, je te conseille github, c’est généralement le compte auquel on donne le moins d’information. Au passage, si tu n’as pas de compte github, tu peux t’en créer un, ça sert toujours.
Bien évidemment, snowboy demande à avoir accès aux informations du compte 🙂 .
On autorise Kitt-AI qui est l’éditeur de snowboy à accéder (au moins) à notre adresse email.
On arrive donc sur la page de recherche des Hotwords. Alors pas de stress, Un hotword c’est un wake word. Cela veut dire la même chose.
On va commencer par filtrer sur les hotwords français. Pour cela, on clique sur “Languages Filter”
On sélectionne “French”
On lui laisse le temps de filtrer les résultats, puis on clique en haut à droite sur “Most popular”.
Sur cet page se trouve tous les hotwords qui ont eu le plus d’enregistrement. En fait, si un hotword est enregistré plus de 2000 fois, le hotword sera transformé en hotword universel.
En attendant, le hotword est personnel, donc, tu peux si tu le souhaites, participer à la transformation d’un hotword personnel vers universel. Bon, en France, il y a Jarvis à qui il reste encore 400 enregistrements. Les autres ne se réaliseront pas. Il faut bien comprendre que lorsque tu participes à Jarvis, le modèle que tu vas télécharger ne reconnaitra que ta voix. Ce que tu télécharges n’est pas le résultat d’un entrainement sur 1600 voix. En tout cas, c’est ce que je comprends.
Pour participer à un hotword existant, il suffit de cliquer à droite sur “Record and Download”.
Tu cliques sur “Record my voice”.
Tu cliques sur le micro et tu dis à haute voix, avec la même voix et la même intonation, le hotword sélectionné. A faire dans un environnement silencieux. Tu fais ça 3 fois.
Il ne te reste plus qu’à tester le modèle. Clique sur “Test the model”.
A gauche, n’oublie pas de donner des informations sur ton sexe et sur ton âge. Clique sur “Run the test” et prononce distinctement et avec la même intonation ton hotword. Si tout s’est bien passé, il te propose de télécharger ton modèle.
Tu cliques sur “Save and download” et tu sauvegardes précieusement ce modèle qui est un fichier .pmdl
.
A l’aide d’un outil comme winSCP, copie ce modèle sur la machine rhasspy dans le répertoire /home/pi/.config/rhasspy/profiles/fr/snowboy/jarvis.pmdl
Ensuite, tu vas dans la partie Wake Word de rhasspy. Tu précises le nom du modèle, et tu peux essayer de jouer avec la valeur “Sensitivity” pour éviter les faux positifs et les vrais ratés. C’est un réglage assez sensible. Patience… 😉
on n’oublie pas de cliquer sur “Save Settings”.
Bonjour,
Y a t il quelque chose qui peut remplacer SnowBoy ??
Merci
Bonjour,
Sur la 2.5.10 de Rhasspy il y a Raven, qui permet de proposer un mot clef simplement avec trois enregistrements (tu cliques directement dans Rhasspy, rien besoin de faire d’autre). Ca fonctionne très bien autant que j’ai pu le tester depuis… 24h. Donc à voir aussi si certains ont plus d’expérience.
Bonjour Didier et Damien,
Effectivement, vous mettez le doigts sur ce que je trouve être le point faible de Rhasspy vs Feu Snips. Le mot clé. Le rhasspy dans le salon se trouve dans le meuble télé, sous la télé. Avec le mot clé de snips, ça marche à tous les coups et peu de faux positifs. Et surtout, il est suffisamment universel pour que madame le déclenche aussi proprement.
Avec Rhasspy, je n’ai toujours pas réussi à avoir le mot clé qui fonctionne correctement là où il est placé. Il faut que je coupe le son de la télé, que je dise ce que j’ai à dire et que je remette la télé…
J’ai aussi essayé Raven qui est effectivement un peu mieux mais qui n’est pas universel, donc il faut enregistrer le mot clé pour chaque personne et attention à l’intonation donnée…
Bref, pour le moment, c’est le dernier point qui me chagrine pour être 100% rhasspy
Ced
Bonjour Ced et Hervé,
Merci infiniment pour vos réponses aussi rapides.
J’ai finalement refait une install sous Python en suivant ton excellent tuto Ced, parce que j’avais des soucis avec mon respeaker dans un environement Docker.
En utilisant le logiciel WinSCP il m’a été plus facile de dérouler l’arborescence des dossiers de mon Raspberry pour trouver lequel contenait les models de Wake-word Snowboy: /home/pi/rhasspy-wake-snowboy-hermes/rhasspywake_snowboy_hermes/models/
où j’ai pu envoyer mon fichier.pmdl créé sur le site Snowboy.
Par ailleurs, j’ai également ajouté 3 fichiers.wav pour customiser les “beep” du Wake Wav, du Recorder Wav et du Error Wav. Ils sont dans le dossier: /home/pi/rhasspy/etc/wav/
J’ai créé ses 3 fichiers.wav avec un générateur de voix off gratuit en ligne: https://www.voicebooking.com/fr/generateur-voix-off-gratuit
Il propose de choisir la langue et aussi au choix, 3 voix masculines et 3 voix féminines.
J’ai hâte de lire les prochains articles concernant Rhasspy et notamment, si c’est dans tes tuyaux Ced, quelque chose dédié au Dialogue Management Hermes MQTT.
Michel
Se mettre en sudo exp:
sudo cp /home/home/pi/snips.pmdl /home/pi/.config/rhasspy/profiles/fr/snowboy/snips.pmdl
snips.pmdl ton wakeword
cp : copie
mv : déplace
Hervé
Merci Hervé pour ta réponse super rapide,
j’ai posté une réponse globale sur cette page, en expliquant quelques modifs supplémentaires.
Au plaisir,
Michel
Bonsoir Cédric,
J’ai suivi vos tuto sur le Rhasspy et jusqu’au wake word tout fonctionne. Mon wake word à l’air d’être reconnu mais plus rien après, pas de son ni retour.Le wake up est ok le play ok le speak ok.
Je n’ai qu’un wake word et pas deux comme ton exemple.
J’ai comme code erreur :
[DEBUG:2020-10-21 18:45:18,602] rhasspywake_snowboy_hermes: Wake word detected: jarvis (site_id=FreePiJDom_Rhasspy)
[DEBUG:2020-10-21 18:45:18,607] rhasspywake_snowboy_hermes: -> HotwordDetected(model_id=’jarvis’, model_version=”, model_type=’personal’, current_sensitivity=0.4, site_id=’FreePiJDom_Rhasspy’, session_id=None, send_audio_captured=None, lang=None)
[DEBUG:2020-10-21 18:45:18,608] rhasspywake_snowboy_hermes: Publishing 185 bytes(s) to hermes/hotword/jarvis/detected
[DEBUG:2020-10-21 18:45:18,619] rhasspyserver_hermes: <- HotwordDetected(model_id='jarvis', model_version='', model_type='personal', current_sensitivity=0.4, site_id='FreePiJDom_Rhasspy', session_id=None, send_audio_captured=None, lang=None)
Mon profiles :
"wake": {
"satellite_site_ids": "bureau",
"snowboy": {
"model": "snowboy/jarvis.pmdl",
"model_settings": {
"snowboy/jarvis.pmdl": {
"apply_frontend": false,
"audio_gain": 1,
"sensitivity": "0.4"
}
}
},
"system": "snowboy"
}
Merci pour ton aide.
Un site clair et bien pratique.
Bonjour Hervé,
Effectivement, ton wake word “Jarvis” est bien détecté. Au vu des 2 sitesId “FreePiJDom_Rhasspy” et “Bureau”, je suppose donc que tu es en mode maitre/satellite. Néanmoins c’est bizarre car le profile que tu me montres parles du siteId “Bureau” et dans les logs, le siteId est “FreePiJDom_Rhasspy”.
Du coup, je pense à un soucis de config au niveau des siteIds et/ou de la configuration du mode communication (MQTT/Rhasspy). Essaye de mettre en siteId “bureau” sur ton maitre en plus du siteId FreePijDom.
Je suis en plein travaux en ce moment, mais dès que je peux, je ferai un tuto avec un mode full Rhasspy maitre/satellite.
Désolé de ne pouvoir aider plus pour le moment.
Ced
Bonjour,
Je répond à mon problème :
Le premier soucis venais d’un bug de la version 2.5.7 corrigé depuis
Le deuxième une mauvaise configuration de mes settings. Etant sur sur mon Master mon Dialogue Management étais sur HERMES MQTT au lieu de Rhasspy.
Maintenant Tout fonctionne.
Bonjour Hervé,
Content que tu es réussi 🙂 Amuses toi bien avec Rhasspy 😉
Ced
Précison pour le json : la première accolade ouvrante n’est pas précédée de ‘:’ (erreur copier-coller)
Bonjour Daniel,
Est ce que dans les logs de Rhasspy, tu vois que le wakeword est détecté ?
Vu que tu utilises le plugin jeedom, peut-être que Kiboost sur le forum jeedom pourrait te donner un petit coup de main, c’est quelqu’un de très sympa. Là, je suis en plein travaux du coup, je ne peux pas faire de test pour vérifier l’article.
La première chose c’est de voir ce qu’il y a dans les logs de Rhasspy. Tous les tests audio (lecture et enregistrement) sont ils OK ?
Désolé de ne pouvoir t’aider plus actuellement.
Ced
Je complète ma réponse :
J’ai bien suivi le tuto qui m’a permis de télécharger les modèles pmdl que j’ai transféré dans le rpi en cli par sftp.
Mon ‘profile.json’ de la base rhasspy (Master) en ip 192.168.0.30 :
:{
"dialogue": {
"system": "hermes"
},
"handle": {
"remote": {
"url": "http://192.168.0.30:1880/gestionIntent"
},
"system": "remote"
},
"intent": {
"system": "fsticuffs"
},
"microphone": {
"arecord": {
"device": "sysdefault:CARD=seeed2micvoicec"
},
"system": "arecord"
},
"mqtt": {
"site_id": "Master"
},
"sounds": {
"aplay": {
"device": "default:CARD=seeed2micvoicec"
},
"system": "aplay"
},
"speech_to_text": {
"system": "picotts"
},
"wake": {
"satellite_site_ids": "Master",
"snowboy": {
"model": "bonjour.pmdl",
"sensitivity": "0.5"
},
"system": "snowboy"
},
"webhooks": {
"awake": [
"http://192.168.0.41/core/api/jeeApi.php?plugin=jeerhasspy&apikey=zzyfrmkyebbltkap9p6v1pjnwg9iacs8&plugin=jeerhasspy&typ$
]
}
}
Remarque à propos du “webhooks” dans “awake”, l’ip 192.168.0.41 est un autre rpi qui ne contient pas de rhasspy. Est-ce correct ?
Voyez-vous autre chose qui pourrait empêcher la reconnaissance vocal du mot de réveil ?
Bonjour,
Impossible de réveiller vocalement l’assistant avec un modèle snowboy ou autre.
J’ai téléchargé 3 fichiers : “bonjour.pmdl, jarvis.pmdl, Gladys.pmdl” et aucun ne fonctionne même en jouant avec la sensibilité. Ces fichiers sont bien présents dans /home/pi/.config/rhasspy/profiles/fr/snowboy/ et quand je modifie une valeur de sensibilité sur un fichier depuis l’interface web rhasspy je vois bien la modification dans le fichier ‘profile.json’.
J’ai 4 commandes de test (node-red) ‘Allumer/Fermer’ la lumière (salon) et ‘OuvrirFermer’ volet buanderie. Cela fonctionne uniquement en activant le bouton ‘point d’exclamation’ du service réveil rhasspy.
Je n’ai pas de satellite pour l’instant.
Matéreil : rpi 3b+, debian buster, pas de snips, Jeedom pour la domo.
Pouvez-vous m’aider ?
Bonjour,
Alors comme ça, difficile de deviner ce qui ne marche pas 🙂 . Avez vous suivi à la lettre le tuto ? Car celui-ci marche normalement. Que disent les logs de Rhasspy ?
Cédric
Merci pour votre réponse.
Voici le résultat dans le log rhasspy :
[DEBUG:2020-10-18 19:04:48,945] rhasspyserver_hermes: <- HotwordDetected(model_id='bonjour', model_version='', model_type='personal', current_sensitivity=0.5, site_id='Master', session_id=None, send_audio_captured=None, lang=None)
Actuellement j'essaie le réveil avec 'bonjour'. Je constate que cette ligne se répète indéfiniment dans la fenêtre du log. Est-ce normal ?
Bonjour,
ma config Pi4 raspbian buster
rhasspy tourne sous docker , j’ai ce fichier .pmdl creer sur snowboy, par contre permission denied lorsque je le transfère dans le fichier /home/pi/.config/rhasspy/profile fr/snowboy.
la commande “sudo cp” fait pareil.
Si quelqu’un a une solution ?
Merci d’avance
Bonjour Willow46,
Avez-vous trouvé la solution pour copier le fichier .pmdl créé avec snowboy dans Rhasspy ? J’ai le même problème que vous, Rhasspy tourne sous Docker chez moi également.
Merci de votre aide
Bonjour Michel,
Hervé t’a correctement répondu 😉 . Ton profil Rhasspy n’est pas dans ton conteneur Docker mais dans ton home :
/home/pi/.config/rhasspy/profiles/fr/
.Il te faut donc aller dans ce répertoire de ton raspberry et y créer un dossier snowboy. Tu pourras ensuite lui mettre tes hotwords 🙂
NB par contre, Rhasspy tournant en root dans le Docker, il te faut faire un sudo à chaque commande (création répertoire + copie hotword). au cas où, tu peux faire ensuite un
chown root
sur le fichier.Ced