Wake word detection in raspOVOS offers several options, each with its advantages and limitations. Understanding these can help resolve potential issues and improve performance.
By default, raspOVOS uses the precise-lite model with the wake word "hey mycroft." This model was trained by MycroftAI for their Mark2 device. However, there are a few things to consider:
- Microphone Compatibility: The performance of precise models can be impacted if the specific properties of your microphone (e.g., sensitivity, frequency response) do not match the data used to train the model. While the default
precise-litemodel was trained with a balanced dataset from a variety of Mycroft users, there is no guarantee it will work optimally with your microphone. - Speaker Demographics: Precise models, including
precise-lite, are often trained with datasets predominantly featuring adult male voices. As a result, the model may perform poorly with voices that are outside this demographic, such as children's or women's voices. This is a common issue also seen in Speech-to-Text (STT) models.
If the default model is not working well for you, consider training your own precise model. Here are some helpful resources for creating a more tailored solution:
- Helpful Wake Word Datasets on Hugging Face
- Data Collection
- Wake Word Trainer
- precise-lite-trainer Code
- Synthetic Data Creation for Wake Words
If you're looking for an alternative to the precise model, the Vosk wake word plugin is another option.
One of the main advantages of using the Vosk Wake Word Plugin is that it does not require a training step.
Instead, it uses Kaldi with a limited language model, which means it can work out-of-the-box with certain wake words without needing to collect and train custom data.
However, the performance of Vosk may vary depending on the wake word you choose. Some wake words may work better than others, so it’s essential to test and evaluate the plugin with your chosen word.
"listener": {
"wake_word": "hey_computer"
},
"hotwords": {
"hey_computer": {
"module": "ovos-ww-plugin-vosk",
"listen": true,
"debug": true,
"samples": ["hey computer", "a computer", "hey computed"],
"model_folder": "/home/user/Downloads/vosk-model-small-en-us-0.4"
}
}
enable debug to see what vosk is transcribing in listener logs
Selecting a wake word is crucial to improving the accuracy and responsiveness of your system. Here are some tips for choosing a wake word that will work well in various environments:
-
3 or 4 Syllables: Wake words that are 3 or 4 syllables long tend to perform better because they are more distinct and less likely to be confused with common words in everyday speech. For example:
- Bad Example: "Bob" (short, common name)
- Less Bad Example: "Computer" (common word)
- Good Example: "Ziggy" (uncommon)
- Better Example: "Hey Ziggy" (3 syllables, longer)
-
Uncommon Words: Choose a wake word that is not often used in regular conversation. This reduces the chance of false triggers when other words sound similar to your wake word. Unique and uncommon names, phrases, or combinations of sounds work best.
-
Clear Pronunciation: Make sure the wake word has a clear and easy-to-pronounce structure. Words with ambiguous or difficult-to-articulate syllables may cause detection issues, especially in noisy environments.
-
Avoid Overused Words: Stay away from wake words like "hey" or "hello," as they are often used in daily speech and can trigger false positives. Try combining a less common word with a familiar greeting for better results.