Custom wakeword working perfectly in precise but not in mycroft

Hi everybody,

I need a bit of support on adjusting Mycroft for the use of my own wake word. The problem is it works perfectly on “precise-listen”, almost no false positives or false negatives but when I use it in Mycroft the reliabilty is terrible. I have ~60% false negatives and also a lot of false positives. I spend hours on testing the parameters
“trigger-value” and “sensitivity” in mycroft.conf but it seems it doesn’t have big impact on reliability. If I run “precise-listen” simultaniously on the same wakeword as it is currently used in Mycroft I see no triggers on the precise output but in Mycroft it triggers (of course false positive). My main question: Why it works with a reliability onf 99,9% in “precise-listen” but only ~ 20-40% in Mycroft? And what can I do to improve the reliability in Mycroft?

current hotword part in mycroft conf:

  "hotwords": {
    "computer": {
      "module": "precise",
      "local_model_file": "/home/pi/.mycroft/precise/computer.pb",
      "sensitivity": 0.3,
      "trigger_level": 8

Thanks for any advice

1 Like

Hello and welcome to the forum!

I’m not sure which Precise binary is used in different places, but that may be a factor. How are you running Mycroft where you used that config; is it an OVOS build, old picroft release, or something else?

Hello Daniel,

thanks for the response. It is a Picroft release installed one year ago. I still use it because I need a special skill, the Fhem-Skill from user @Dominik for interaction with the home automation system “FHEM”. But this behaviour already occurs since I created the wakeword las year. I thought I can solve it by my own but it is a riddle for me why it work in Precise engine but not in Mycroft

@mikejgray put together a Projen tool for updating skills that may be of interest.

A mystery indeed… Is precise-listen run in the same venv as Mycroft? If not, I wonder if its using 2 different versions of precise-runner

I export the environment variables from ".venv/bin activate" which is located in .mycroft/mycroft-precise. In the default environment I don’t have the precise-listen
I roughly followed this tutorial Training your own wake word · MycroftAI/mycroft-precise Wiki · GitHub

You can check the versions in each environment with pip list | grep precise-runner. If those report different versions, then that could be related, i.e.

. ~/.mycroft/mycroft-precise/.venv/bin/activate
pip list | grep precise-runner
deactivate
. ~/mycroft-core/.venv/bin/activate
pip list | grep precise-runner

I believe those paths are accurate based on what you shared and what I see in the Picroft docs, but its been a while since I ran a Picroft image.

Indeed, precise runner from ~/.mycroft/mycroft-precise/.venv/bin/activate is 0.3.1
and from ~/mycroft-core/.venv/bin/activate is 0.2.1
But could this really be the issue?:thinking:

I see that mycroft-core pins that version, sothere’s no great way to update that to 0.3.1 in Picroft… You could try testing with Precise 0.2.0 (No tag for 0.2.1), but that doesn’t really help find a solution, only to further diagnose the problem.

I think at this point the best path forward would be to upgrade to a supported distribution of Neon or OVOS where you can use the latest precise WW engine, or you might have better results with Open Wake Word.

1 Like

Thanks so far for your assistance. I will figure out tomorrow what I can do. :slightly_smiling_face:

2 Likes