Cas d’exemple
Cas N°1 : Juste regarder en live ce qui se passe
Donc là, rien de très compliqué, on lance ceci :
python3 ./rhasspy-watch.py --host rhasspy-master.local
Tu l’auras compris, remplace rhasspy-master.local
par ton serveur MQTT.
Et voilà ce que ça donne :
Les utilisateurs de snips-watch
ne seront pas dépaysés
Cas N°2 : Regarder et enregistrer les messages MQTT
Là, on va sauvegarder tous les messages texte au format json
et tous les messages de type stream audio au format wav
.
On pourra donc ré-écouter les streams audio qui sont passés.
Le répertoire par défaut est un répertoire qui s’appelle archives
dans le même dossier que le script. Il est possible de le définir grâce au paramètre --jsonfolder
.
La ligne de commande :
python3 ./rhasspy-watch.py --host rhasspy-master.local --mqtt_db
Il ne te reste plus qu’à lancer une ou deux commande à ton Rhasspy et d’aller voir le résultat dans ton répertoire archives
.
Si on veut ré-écouter un fichier :
aplay 20200430012901013936_bureau_record.wav
Là aussi, ton flair technique t’aura fait comprendre que s’il y a record
dans le nom du fichier, c’est que c’est ce que la reconnaissance vocale a reçu. S’il y a play
, c’est le message vocal qu’a renvoyé Rhasspy.
Combien de fois une commande vocale n’avait pas marché et que je n’avais pas la possibilité de savoir quel composant avait posé souci !
Cas N°3 : Ressortir les messages entre 2 dates
Parfois, il peut être intéressant de ressortir uniquement la période à analyser plutôt que de se taper tout l’historique. Pour ça, il nous faut une date/heure de départ et une date/heure d’arrêt de recherche :
La ligne de commande :
python3 ./rhasspy-watch.py --mode search --datetime_start "2020-04-25 15h30" --datetime_stop "2020-04-25 17h30"
Là, on constate qu’on a pas besoin de se connecter au serveur MQTT puisqu’on fait des requêtes. On va donc faire la recherche des messages entre 15h30 et 17h30 le 25 Avril 2020.
L’affichage est exactement identique à s’il était en live.
Bien évidemment, ça ne marche que si tu as activé l’option d’enregistrement des messages.
Cas N°4 : Cas N°3 + affichage en mode “raw”
Si tu aimes souffrir ou que tu fais partie des quelques dizaines de personnes à travers le monde qui savent lire et parler le json
couramment, alors cette option est pour toi.
La ligne de commande :
python3 ./rhasspy-watch.py --mode search --datetime_start "2020-04-25 15h30" --datetime_stop "2020-04-25 17h30" --outputFormat "raw"
Et voilà le résultat :
Bonjour Ced,
Tu m’as orienté sur ton script, en effet, c’est une très bonne base pour débuter sur MQTT, il y a pas mal de choses à récupérer !
1- Y a t il un intérêt à dockeriser ton script (tu sembles le proposer), vu qu’il n’y a pas beaucoup de dépendances… ?
2- Questions bêtes car je ne suis pas trop calé en python : pourquoi as-tu des fonctions vides (on_message, appelée par on_msg dans rhasspymqttclient.py) ?
3- J’ai vu dans ton dossier Git, un projet SNIPS NLU… est-ce meilleur que fsticuffs ?
4- En terme de reconnaissance d’intent, existe-il des fichiers setences.ini tout fait (il y en a qui traînent sur jeedom) qui fonctionnent bien (certains préconisent une seule intent avec plein de sentences) et qui peuvent servir de base de personnalisation ? Ton dernier lien du tuto “les sentences et les intents” ne fonctionne plus d’ailleurs.
Merci !
Damien
Bonjour Damien,
Normalement, il est censé déjà être Dockerisable. J’ai fait le merge d’un utilisateur qui l’a fait. Mais j’avoue ne pas l’avoir testé 🙂 Pour ce qui est de l’intérêt, je dira que ça dépend de chacun ! Moi perso, non 🙂
Pour les fonctions vides, même si elles apparaissent vides, elles ont un rôle dédié aux évènements (regarde ligne 262 à 264 de Rhasspy-watch.py). Ça permet de déclencher un évènement dont le code sera traité par le script principal.
Snips NLU était le NLU de Snips. Snips n’existant plus, il a perdu un peu d’intérêt car pas mal de boulot si on souhaite l’utiliser. Certains ont été essayé de l’implémenter. Je crois qu’il y avait eu à un moment l’idée de l’intégrer à Rhasspy mais je ne sais pas ce que le sujet est devenu
Pour les intents, non, il n’en existe pas des tout fait à ma connaissance. Peut-être sur le forum Jeedom
@ pluche
Ced