Configuring Wakeword Removed?


#1

I’ve read the current documentation, many posts, and tried configuring via the device settings but I’m unable to change the wake word. It appears the mycroft.ai device configuration page no longer allows the wake word to be configured there so it doesn’t seem possible to change the wake word any longer.

I’ve attempted changing the ~/.mycroft/mycroft.conf and it does read the file, but the system configuration defined for the device at mycroft.ai is overriding the values, and the mycroft_web_cache.json file in /var/tmp has the system configured wake word from the mycroft.ai web page.

Is there a new procedure for changing the wake word, or has that function been removed from MyCroft?


#2

Pulled down a clean copy of current mycroft-core, using my existing config, still works with my custom wake word.

{"tts": {"module": "mimic2", "mimic2": {"lang": "en-us", "api_path": "/synthesize?text=", "url": "http://10.4.2.3:3000"}}, "precise": {"models_url": "/home/baconator/.mycroft/precise/models"}, "hotwords": {"ridiculouswordhere": {"module": "precise"}}, "max_allowed_core_version": 19.8}

#3

Was your original configuration set via mycroft.ai web page, before the recent changes that no longer allow setting a custom wakeword?

Also, I’m using the pocketsphinx module, I don’t know how to generate the precise models. Don’t know if that makes any difference or not.

Here is the relevant sections of the mycroft.conf, but as I said earlier the web cache downloaded from mycroft.ai isn’t the same and mycroft appears to be using the webcache instead of my mycroft.conf settings.


 "listener": {
"sample_rate": 16000,
"channels": 1,
"record_wake_words": false,
"record_utterances": false,
"wake_word_upload": {
  "enable": false,
  "server": "mycroft.wickedbroadband.com",
  "port": 1776,
  "user": "precise",
  "folder": "/home/precise/wakewords"
},
// In milliseconds
"phoneme_duration": 120,
"multiplier": 1.0,
"energy_ratio": 1.5,
"wake_word": "hey audie",
"stand_up_word": "wake up"

},

// Hotword configurations
“hotwords”: {
“hey audie”: {
“module”: “pocketsphinx”,
“phonemes”: “HH EY . AA D IY”,
“threshold”: 1e-90,
“lang”: “en-us”
},

"wake up": {
    "module": "pocketsphinx",
    "phonemes": "W EY K . AH P",
    "threshold": 1e-20,
    "lang": "en-us"
    }

}


#4

No, I do it in the local config file.


#5

Hi Jody,

To keep it simple, I’d try modifying the “hey mycroft” hotword to see if that works better?

So your ~/.mycroft/mycroft.conf file might look like:

{
  "max_allowed_core_version": 19.2,
  "hotwords": {
    "hey mycroft": {
      "module": "pocketsphinx",
      "phonemes": “HH EY . AA D IY”,
      "threshold": 1e-90,
      "lang": "en-us"
    }
  }
}

More details in our mycroft.conf docs


#6

That’s a good idea, but I didn’t have any luck. Below is my complete ~/.mycroft/mycroft.conf file. It’s like the one you suggested with a pulse audio player added since my audio setup requires it.

I even tried removing the /var/tmp/mycroft_web_cache.json and rebooting, but it reloads on reboot and goes back to the “phonemes”: “HH EY . M AY K R AO F T”, setting. Not sure which has precedence but based on what I’m seeing it appears the web cache file is higher precedence.

{
  "max_allowed_core_version": 19.2,
  "play_wav_cmdline": "paplay %1 --stream-name=mycroft-voice",
  "play_mp0_cmdline": "mpg123 %1",
  "hotwords": {
    "hey mycroft": {
      "module": "pocketsphinx",
      "phonemes": "HH EY . AA D IY",
      "threshold": 1e-90,
      "lang": "en-us"
    }
  }
}

#7

I can’t see any obvious problems with that config, it’s certainly valid JSON…

The order of loading is:

  1. Defaults
  2. Web
  3. System-wide /etc/mycroft/mycroft.conf
  4. User-level ~/.mycroft/mycroft.conf

So the user level should always override the others.

I had a quick test myself and found that it wasn’t detecting the phonemes in the hotwords, only when placed under listener. Give this one a go:

{
  "max_allowed_core_version": 19.2,
  "listener": {
    "wake_word": "yow mike",
    "phonemes": "Y OW . K AY",
    "threshold": 1e-18
  },
  "hotwords": {
    "yow mike": {
      "module": "pocketsphinx"
    }
  }
}

I’m going to have to dig deeper to work out why it’s not pulling those fields from the hotword definition.


#8

Yay! That did it. Need to work on my phonemes, but that’s a problem of my own making.

Thank you!