Snowboy : quel matériel et quels settings?

Bonjour,

J’ai déjà lancé un sujet de discussion sur le forum rhasspy ici mais comme je pense que nous sommes nombreux à avoir utilisé Snips et à utiliser le Pi zero comme satellite, je poste aussi un message entre utilisateurs Jeedom…

Pour résumer, avec mon Pi-zero + Jabra 410, Snowboy donne des résultats très mitigés (comparé à snips_hotword avec config par défaut) malgré des essais d’optimisation tous azimuths.
En plus, je comprends que cette solution s’arrêtera à la fin de l’année 2020 (décidément !) :frowning: donc pas pérenne…

Si vous avez (et seulement si vous avez) de très bons résultats avec Snowboy (aussi bon que snips_hotword, je dirais), pourvez-vous indiquer ce que vous utilisez comme :

  • matériel : pi-zero, pi3b+, etc
  • microphone : jabra, 2-mics pi hat, ps eye, etc :
  • configuration du wake word pour snowboy : valeurs de sensitivity et audio_gain
  • distance du microphone pendant l’enregistrement du wake word (je suppose que tout le monde utilise un wake word personnalisé)
  • configuration du gain dans alsamixer pour le périphérique de capture

Avez-vous identifié des wake words qui marchent mieux avec les phonèmes du français (par exmple, je trouve que Jarvis conduit à plus de fausses détections que d’autres) ?

Est-ce que la détection du wake word est plus fiable si le wav du wake word est fort quand vous le lisez avec aplay (avec votre volume habituel, évidemment :slight_smile:), par exemple suite à amplification dans audacity ou vaut-il mieux conserver un volume plus proche de ce qui sera capturé par le micro utilisé ?

Voilà, ça fait beaucoup de questions mais j’ai beaucoup tâtonné et peu avancé ces derniers jours et du coup, je me demande si je peux vraiment faire mieux avec ma config actuelle…

J’en suis encore en phase de customisation, j’ai beaucoup trop de faux positif sur snow boy avec un hotword custom.
j’utilise un microphone usb à 20€ chez LDLC.

J’ai fait mes enregistrements avec un microcasque avec audacity suivant les reco de @kiboost :slight_smile:

Me concernant, j’ai de très bons résultats avec un RPI3A+ et un respeaker 2-mic en satellite. J’utilise Snowboy avec le wakeword Jarvis.
J’ai extrêmement peu de faux-positifs alors que le système est dans mon salon (je dirais 2-3 sur un mois mais je n’ai pas compté).
La détection est très bonne lorsqu’il n’y a pas de bruit. Quand il y a la musique ou la télé, il faut alors se rapprocher et parler plus fort mais on arrive tout de même à le déclencher.

Pour information, ma config de wakeword :

    "wake": {
        "satellite_site_ids": "salon",
        "snowboy": {
            "apply_frontend": true,
            "model": "jarvis.umdl",
            "sensitivity": "0.5,0.50",
            "udp_audio": "127.0.0.1:12202"
        },
        "system": "snowboy"
    },

Par contre, mes tests avec un RPI0 ne sont pas concluants et mon 2e satellite n’est pas utilisable en production.

Je reviens sur les problèmes de wakeword avec snowboy car je viens de me rendre compte que mes problèmes de stabilité avec mon RPI0 ne se présentent qu’avec mes wakeword personnels.

En fait, le RPI0 étant limité en ressources, la plupart des wakeword proposés de base fonctionnent très mal car ils surchargent le processeur. Je n’ai trouvé que le wakeword « Snowboy » d’utilisable sur le pi0.

Et le fait est que, depuis que j’utilise ce wakeword, mon problème de stabilité de la détection a disparu (sur mon pi3A+, j’utilise « Jarvis » qui est également un wakeword proposé de base et je ne rencontre aucun problème). Cela fait plusieurs jours que mon système fonctionne sans avoir eu à redémarrer Rhasspy et j’arrive toujours à déclencher l’écoute en prononçant le wakeword.

Avec mes wakeword personnels, ca fonctionne très bien au début mais au bout de quelques minutes/heures la détection ne se fait plus et il me faut redémarrer Rhasspy.

Est-ce que quelqu’un a déjà observé ce problème ?

J’utilise les scripts de @kiboost pour enregistrer mes wakeword sans rencontrer de problème et avec un excellent résultat au niveau de la détection.