Rhasspy : le wake word (le mot de réveil) snowboy

Téléchargement du modèle snowboy customisé depuis les API

Alors, comme on va voir, le problème avec la création du wake word via le site web, c’est que l’enregistrement ne peut pas être amélioré avant transformation en wake word.

Voici plus ou moins ce qu’a enregistré de mon côté le site web

On voit qu’il y a un peu de blanc avant et après qui contient le bruit ambiant. Et le wake word pourrait être amplifié un peu.

Voici ce que donnerait notre wake word après nettoyage et brushing :

On a appliqué un petit filtre de réduction de bruit puis supprimer les blancs. Ensuite, une petite amplification pour embellir le tout et voilà. En 30 secondes, on peut déjà commencer à optimiser son wake word.

Mais le problème c’est que cette version customisée, ce n’est pas vraiment ce que reçoit le site web. Du coup, kitt-AI met à disposition des développeurs et autres bidouilleurs des API. C’est à dire qu’on va pouvoir faire par script ce qui est fait dans le site web. Mais surtout, on va pouvoir fournir nos enregistrements mais qui seront optimisés.

Oui mais il faudrait écrire le script qui gère donc les 3 enregistrements, mais qui laisse la possibilité de les optimiser etc. Ça va être long ça…

Hé bien non car KiboOst a déjà développé ce script et qu’en plus d’être super bien fait, il est mis à disposition de tout le monde. Donc, on dit un grand Merci 🙂 Toutes les infos en anglais sur cette page.

11 Comments

  1. 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 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

  2. 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 ?

  3. 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 ?

  4. 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

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.