I’m having problems with Mycroft starting to listen when he wasn’t called. I made a change to the dismissal skill to update the listener threshold 3 orders of magnitude up every time I responded to Mycroft with “I didn’t call you”. Since then, the listener threshold in my user config file has gone up to 1e+28, and I’m still getting false listens. That doesn’t seem right to me. What am I missing?
Are you using pocketsphinx? precise? a custom wake word?
I believe I’m using the default precise “Hey Mycroft”. That’s the best I can figure looking at the config. The output of “mycroft-config get” follows. I had to edit it to remove links.
{
“enclosure”: {
“rate”: 9600,
“port”: “/dev/ttyAMA0”,
“update”: true,
“test”: false,
“timeout”: 5
},
“padatious”: {
“intent_cache”: “~/.mycroft/intent_cache”,
“train_delay”: 4,
“single_thread”: false
},
“debug”: false,
“Audio”: {
“backends”: {
“vlc”: {
“active”: true,
“duck”: true,
“type”: “vlc”
},
“local”: {
“active”: true,
“type”: “simple”
}
},
“default-backend”: “local”
},
“lang”: “en-us”,
“time_format”: “half”,
“data_dir”: “/opt/mycroft”,
“confirm_listening”: true,
“precise”: {
“model_url”:
“dist_url”:/latest"
},
“system_unit”: “imperial”,
“play_wav_cmdline”: “paplay %1 --stream-name=mycroft-voice”,
“skills”: {
“priority_skills”: [
“mycroft-pairing”,
“mycroft-volume”
],
“update_interval”: 1,
“directory”: “~/.mycroft/skills”,
“upload_skill_manifest”: true,
“blacklisted_skills”: [
“skill-media”,
“send_sms”,
“skill-wolfram-alpha”,
“pianobar-skill”
],
“auto_update”: true,
“msm”: {
“versioned”: true,
“directory”: “skills”,
“repo”: {
“cache”: “.skills-repo”,
“branch”: “20.08”,
“url”: "
}
}
},
“gui_websocket”: {
“route”: “/gui”,
“host”: “0.0.0.0”,
“base_port”: 18181,
“ssl”: false
},
“sounds”: {
“start_listening”: “snd/start_listening.wav”,
“end_listening”: “snd/end_listening.wav”,
“acknowledge”: “snd/acknowledge.mp3”
},
“tts”: {
“mozilla”: {
“url”: “http://0.0.0.0:5002”
},
“mimic”: {
“voice”: “ap”
},
“espeak”: {
“lang”: “english-us”,
“voice”: “m1”
},
“pulse_duck”: false,
“polly”: {
“region”: “us-east-1”,
“access_key_id”: “”,
“voice”: “Matthew”,
“secret_access_key”: “”
},
“module”: “mimic”,
“mimic2”: {
“lang”: “en-us”,
“url”:
“preloaded_cache”: “/opt/mycroft/preloaded_cache/Mimic2”
}
},
“opt_in”: false,
“ignore_logs”: [
“enclosure.mouth.viseme”,
“enclosure.mouth.display”
],
“date_format”: “MDY”,
“session”: {
“ttl”: 180
},
“play_ogg_cmdline”: “ogg123 -q %1”,
“server”: {
“update”: true,
“sync_skill_settings”: true,
“version”: “v1”,
“metrics”: false,
“url”: “https://api.mycroft.ai”
},
“listener”: {
“mute_during_output”: true,
“phonemes”: “HH EY . M AY K R AO F T”,
“wake_word”: “hey mycroft”,
“energy_ratio”: 1.5,
“threshold”: “1e+37”,
“recording_timeout”: 10,
“record_wake_words”: false,
“channels”: 1,
“sample_rate”: 16000,
“save_utterances”: false,
“wake_word_upload”: {
“url”: "
},
“duck_while_listening”: 0.3,
“stand_up_word”: “wake up”,
“multiplier”: 1,
“recording_timeout_with_silence”: 3,
“phoneme_duration”: 120
},
“websocket”: {
“route”: “/core”,
“host”: “0.0.0.0”,
“ssl”: false,
“port”: 8181
},
“stt”: {
“module”: “mycroft”
},
“hotwords”: {
“wake up”: {
“phonemes”: “W EY K . AH P”,
“lang”: “en-us”,
“module”: “pocketsphinx”,
“threshold”: 1e-20
},
“hey mycroft”: {
“phonemes”: “HH EY . M AY K R AO F T”,
“lang”: “en-us”,
“module”: “precise”,
“threshold”: 1e-90
}
},
“location”: {
“timezone”: {
“dstOffset”: 3600000,
“dst_offset”: -14400000,
“name”: “America/New_York”,
“code”: “America/New_York”,
“offset”: -18000000
},
“coordinate”: {
“latitude”: 42.59981,
“longitude”: -71.36728
},
“city”: {
“state”: {
“country”: {
“name”: “United States”,
“code”: “US”
},
“name”: “Massachusetts”,
“code”: “US.MA”
},
“name”: “Chelmsford”,
“code”: “Lawrence”
}
},
“play_mp3_cmdline”: “mpg123 %1”,
“max_allowed_core_version”: 20.8
}
Threshold is used for pocketsphinx. Ask which listener it’s using or check in the log at /var/log/mycroft/voice.log.
If it is pocketsphinx, definitely ask to change listener to precise. If it’s erroring out trying to run precise, should check into why. I’d also start saving utterances, if there’s a particular sound or phrasing that’s causing it, might be worth creating your own model.
I just asked: it’s using precise. Is there a similar setting for precise, or is saving utterances the only way to go?
Sensitivity, but it sounds like there’s a reason it’s triggering so much that should be investigated.
Ok thanks I’ll look into it.
Several months ago, we switched the model we were using for Precise to include more female voices and be less sensitive. As a result, the number of false positives has increased since the new model was rolled out.
This was the first step in improvements to Precise that were put on hold a few months ago to focus on the Mark II. According to the company roadmap, this work will continue before year end.