Custom wake word for noobs

I want to add a custom wake word for my picroft. I have no experience whatsoever in programming. I don’t want to do it the training method and want to do it with pocketsphinx. Can I receive step by step instructions on how to do so for a custom wake word for eg- say… hey Nora or something

Easy way. look at this Not perfect but work now Wake Word Skill Trainer if you have problems please post it. You can also use precise community data https://github.com/MycroftAI/Precise-Community-Data Unzip in .mycroft/precise.

1 Like

Hi Incendio,

If you want to add a custom wake word with PocketSphinx there are instructions here:


Basically:

  1. Pick your word and translate it using the CMU dictionary
  2. Paste the phoneme string into the mycroft.conf example and move it to the correct location on your computer.
    If things stop working it’s almost guaranteed that there’s a typo in your JSON. So use a validator to make sure it’s correct.

It’s worth noting however that PocketSphinx will not perform anywhere near as well as a trained wake word model using Precise. So they’re good for personal use and playing around but if it’s for a business purpose or you want other people to use it then it’s worth investing the time.

I have already gone through the following link suggested to me by many. But I have this weird issue where i am not able to edit the mycroft.conf file. Whenever I try to access the file it says access denied. Thank you both for taking your time to reply though.

Are you using sudo before you try and edit the file?

Well um no because I don’t exactly know how to use it. :sweat_smile:
As I mentioned above I have little to no experience in programming

Hey, we also have this brand new configuration manager utility that now helps you edit configuration values. Try running the following command:
mycroft-config edit user

Just to clarify the reply from gez-mycroft Sep 22 '19…

The docs on the PocketSphinx wake word are here:
https://mycroft-ai.gitbook.io/docs/using-mycroft-ai/customizations/wake-word#pocketsphinx

And the CMU dictionary linked there is here: http://www.speech.cs.cmu.edu/cgi-bin/cmudict

An example for ‘Yo Mike’ is on that first page. Here’s a couple examples below. The shorter the phrase, the higher the threshold number needs to be to prevent false triggering, which means reducing the number of the negative exponent. ‘Yo’ is inconsistent, ‘Homie’ is not bad.

You can use either mycroft-config reload or the phrase ‘Hey Mycroft, update configuration’. You might need to set the listener ‘Hey Mycroft, set the listener to PocketSphinx’.

Editing ~/.mycroft/mycroft.conf is the same as using mycroft-config edit user.

At the moment, there is a pull request that needs to be finished to use multiple wake words with out a workaround https://github.com/MycroftAI/mycroft-core/pull/1233. Below, only the last one is set.

{
  "max_allowed_core_version": 20.2,
  "listener": {
    "wake_word": "yo mike",
    "wake_word": "hey homie",
    "wake_word": "yo",
    "wake_word": "homie"
  },
  "hotwords": {
    "yo mike": {
      "module": "pocketsphinx",
      "phonemes": "Y OW . M AY K .",
      "threshold": 1e-18
    },
    "hey homie": {
      "module": "pocketsphinx",
      "phonemes": "HH EY . HH OW M IY .",
      "threshold": 1e-18
    },
    "homie": {
      "module": "pocketsphinx",
      "phonemes": "HH OW M IY",
      "threshold": 1e-18
    },
    "yo": {
      "module": "pocketsphinx",
      "phonemes": "Y OW .",
      "threshold": 1e-10
    }
  }
}
1 Like

By the way, the name ‘homie’ here borrows from Mycroft’s last name, as well as me hearing an interview with the above author Danez Smith on the radio while I was considering it… Im currently enjoying the abbreviation to Mike. So with that, here’s two more wakewords:

{
  "max_allowed_core_version": 20.2,
  "listener": {
    "wake_word": "hey Holmes",
    "wake_word": "ay Mike"
  },
  "hotwords": {
    "hey Holmes": {
      "module": "pocketsphinx",
      "phonemes": "HH EY . HH OW M Z .",
      "threshold": 1e-18
    },
    "ay Mike": {
      "module": "pocketsphinx",
      "phonemes": "EY . M AY K",
      "threshold": 1e-18
      }
    }
}
1 Like

Hi Team

I’ve tried to follow these steps but can’t get my Picroft to respond to a new pocketsphinx wake word. I’ve also gone through the “Using a Custom Wake Word” documentation.

A few questions I have, and I’m not sure if they are the right ones to ask:

  • What is “max_allowed_core_version” a reference to? And how do I know which number to put next to it?

  • Do I need to add the code provided by auwsom to the config file or do I edit the existing “listener” section to look like auwsom’s example. I ask this because I can see there is already a “listener” section in the config file but it includes a whole lot of things that are not mentioned in here like
    “save_utteranes”: false,
    “wake_word_upload”: {
    “disable”: false,
    “url”: “https://training.mycroft.ai/precise/upload

Hi Jules,

max_allowed_core_version refers to the version of mycroft-core that is allowed. For example the current version is v21.02.0 which may contain breaking changes from the previous v20.08.2. So you can set your device to with hold updates that might break particular Skills you have installed. All Marketplace Skills that were compatible with v20.08 are also compatible with v21.02 but custom Skills you may have written might not be.

To add your pocketsphinx configuration - it’s strongly encouraged to do this in the user level config using:

mycroft-config edit user

This will override any configs set in mycroft-core, the system level, or from remote configuration eg through the home.mycroft.ai backend.

If you haven’t edited it already, the user config probably only has the max allowed version, or may be completely blank.

  • save_utterances is if you want to save things locally
  • wake_word_upload is if you want to share your wake word samples with the broader project. However you also need to opt-in to the open data set for this to work. Even if you tell your device to upload the samples, if we don’t have an explicit agreement from you that we can use your samples, they will get deleted.