Custom wake word sensitivity

I changed my wake word. It now wakes when the printer starts. The default sensitivity looks to be 1e-90. If I make this 1e-20 would that make it less prone to false positives, or am I backward, and would I want to make it like 1e-160 (if that’s a real number).

I had to move mine to 1e-20.

If you’re adventurous and technically apt, making your own precise wakeword is not terribly difficult, and can help with that.

From the Custom Wake Word documentation

Threshold (scientific notation): The level of sensitivity at which the Wake Word should trigger Mycroft to respond. To increase the sensitivity, reduce the Threshold. The Threshold is given in scientific notation.

1 Like

ok, so in scientific notation 1e-90 is a lower number than 1e-20. meaning, 1e-20 is less sensitive, meaning less prone to waking up due to improperly hearing the wake word, correct?

Yes that’s correct. However, it is less sensitive to the Wake Word, meaning that it may also have more “false negatives” - where you say the Wake Word, but it doesn’t “hear” you.

got ya. its a delicate balance. There isn’t a way to “Train” the custom wake word is there?

@baconator can you give me a bit more info about what you mean?

It’s kind of a roll of the dice. I fiddled with it for a few days til it was where I felt happy with it.

You can train a custom wake word model, it’s not terribly difficult, but the more data you have the better…as in thousands of false words, and quite a few wake words.

1 Like

I got ya. Is there instructions by chance?

Good detail and steps here.


I have not done it but it is on my Todo List.

1 Like

Hi there,

I am quite excited and impressed with the technology that Mycroft team is bringing up.
In particular, Precise is a pretty neat tool. Is the statistics presented in progress mycroft home page any where going in a positive direction? the graphs are hard to read and it seems that just a couple dozen people use the tool each day.

I need help to setup the configuration of Precise:
It gets a little confusing to configure the listener when it is not clearly indicated whether the Precise or Pocketsphinx.

It seems to me that the wake-word configuration in the home.mycroft.ai settings is only intended for Pocketsphinx. Since there is option to set the phonemes.

In my Picroft install of Mycroft the Default/Pocketsphinx wake-word was not working, it did not detect at all my calling. However the Precise model detects quite well. But I still have some issue with a few false positives when I’m watching TV, it reacts every now and then when someone says: " Hey …" and a name of someone (not similar to Mycroft at all).

How can we set the word sensitivity when using the Precise listener?

Thanks.

Unless you have trained your own custom model for precise, you are currently limited to “hey mycroft” and maybe “Christopher”. See 1 for more on configuring your own. You can ask mycroft what listener it is using if you’re not sure.

The sensitivity of the default models is also helped by tagging user-submitted wake up calls (2). For your own, always add more data.

1 https://github.com/MycroftAI/mycroft-core/pull/1782/commits/c6f9513e9d5925ae8e575c71d4f6096c341bddae
2 https://home.mycroft.ai/#/precise

Thanks @baconator, but those two links do not solve what I am looking for.

I am fine with the wake-work “Hey Mycroft” in Precise, I just want to play with the sensitivity level (increase and decrease) when using the Precise model.

K-9 is very close just a little def, have to yell Hey K9. Which seting should i adjust ? sensitivity or threshold. and which direction ? would sensitivity to .6 or .7 do the trick?

                                                                                Thanks as always for you help. Geordy

/home/pi/.mycroft/mycroft.config
{
“hotwords”: {
“Hey K9”: {
“phonemes”: “HH EY . K EY N AY N .”,
"sensitivity": 0.5,
“module”: “precise”
}
},
“listener”: {
“wake_word”: “Hey K9”,
"threshold": 1e-18
},
“precise”: {
“dist_url”: “https://github.com/MycroftAI/precise-data/raw/dist/{arch}/latest”,
“model_url”: “https://raw.githubusercontent.com/MycroftAI/precise-data/models-dev/{wake_word}.tar.gz
},
“max_allowed_core_version”: 19.8
}

Hi Geordy,

For PocketSphinx I’d focus on the threshold.

Not sure if you read this in the docs, but the threshold is:

The level of sensitivity at which the Wake Word should trigger Mycroft to respond. To increase the sensitivity, reduce the Threshold. The Threshold is given in scientific notation. Use this handy converter to convert between decimal and scientific notation.

Hope that helps

How does “sensitivity” and “threshold” add to/work alongside each other?

Is “threshold” even used in a precise-setup?

And to add to the confusion, i got some warnings despite using a custom precise wake word

2020-07-25 17:34:01.052 | WARNING  |   706 | mycroft.client.speech.listener:create_wake_word_recognizer:348 | Phonemes are missing falling back to listeners configuration
2020-07-25 17:34:01.054 | WARNING  |   706 | mycroft.client.speech.listener:create_wake_word_recognizer:352 | Threshold is missing falling back to listeners configuration

the fallback for threshold is e-90. What’s the fallback for phonemes?

threshold is for pocketsphinx.

Hey there,

As baconator said, threshold is for PocketSphinx. It’s because you can include PocketSphinx configuration attributes in a Precise config and if Precise fails for some reason it will fallback to PocketSphinx. The default config for “hey mycroft” is a good example:

"hotwords": {
    "hey mycroft": {
      "module": "precise",
      "phonemes": "HH EY . M AY K R AO F T",
      "threshold": 1e-90,
      "lang": "en-us"
    }
}

More detail on what those phonemes are here:
https://mycroft-ai.gitbook.io/docs/using-mycroft-ai/customizations/wake-word#getting-phonemes