Skip to content

Releases: kahrendt/microWakeWord

"Okay Nabu" 20241226.3

31 Dec 21:49
1c2d866
Compare
Choose a tag to compare
Pre-release

Another experimental "Okay Nabu" model. This one is still larger than the current models, so it uses more memory and CPU. The Voice PE is still plenty sufficient.

"Okay Nabu" 20241223.2

26 Dec 13:37
ac6502b
Compare
Choose a tag to compare
Pre-release

A larger "Okay Nabu" model that is less biased while reducing false rejections in general. This model uses more CPU and RAM. In general this isn't an issue, but on devices without external memory (ATOM Echo), it may cause issues.

New Beta V2 Models with Extra Key

10 Jul 18:23
d0ef708
Compare
Choose a tag to compare
Pre-release

Adds a "trained_languages" key that describes what the training sample's primary language/pronunciation.

These models require a new version of the micro_wake_word component in ESPHome as they use a 10 ms step size instead of the original 20 ms. It should be available in the ESPHome's 2024.7 release. These models are faster and more accurate. Up to 3 models can run on a regular ESP32 at the same time (e.g., VAD, "okay nabu", and "hey mycroft"). ESP32-S3 supports running all 4 concurrently. I am still working on training a new "hey jarvis" model.

The default settings for each of these are benchmarked so that on the DipCo set, they have at most 0.16 false accepts per hour and have less than 0.1 false accepts per hour on the PicoVoice benchmark. The false rejection rates at these default settings are less than the corresponding v1 model's default settings. Note that since these are new models, you have to re-tune any custom probability cutoffs.

If you want to test these out now, you must be on the dev branch of ESPHome and use an external component. The yaml syntax may change without notice, so be aware this may break in the future! The implementation is backwards compatible, so you can still use the old models. However, you cannot use the older models at the same time as the new models; it is one or the other.

external_components:
  - source:
      type: git
      url: https://github.com/kahrendt/esphome
      ref:  mww-v2-external-library
    refresh: 0s
    components: [ micro_wake_word ]  

micro_wake_word:
  on_wake_word_detected:
    - voice_assistant.start: 
        wake_word: !lambda return wake_word; 
  vad:
    model: https://github.com/kahrendt/microWakeWord/releases/download/v2.1_models/vad.json
  models:
    - model: https://github.com/kahrendt/microWakeWord/releases/download/v2.1_models/okay_nabu.json
    - model: https://github.com/kahrendt/microWakeWord/releases/download/v2.1_models/alexa.json
    - model: https://github.com/kahrendt/microWakeWord/releases/download/v2.1_models/hey_jarvis.json
    - model: https://github.com/kahrendt/microWakeWord/releases/download/v2.1_models/hey_mycroft.json

If you want to run 3 models at once on an ESP32 device, you need to adjust the CPU Frequency to the max setting. The following yaml works for an ATOM Echo:

esp32:
  board: m5stack-atom
  framework:
    type: esp-idf
    version: recommended
    sdkconfig_options:
      CONFIG_ESP32_DEFAULT_CPU_FREQ_240: "y"

The CONFIG_ESP32_DEFAULT_CPU_FREQ_240: "y" is the necessary part.

"Stop" model beta 20241016.2

16 Oct 19:14
d0ef708
Compare
Choose a tag to compare
Pre-release

A smaller model for detecting "stop" using samples from the Google Speech Commands dataset. This is not intended to be used as a generic on-all-the-time wake word! At the default 0.5 probability cutoff, there was a around 1 false accept per hour on the DipCo dataset. The other released wake words have at most 0.2 false accepts per hour on that dataset at the default settings. This is instead meant to run only at specific times; i.e., a timer is ringing and you say "stop" to end it. Then the model should be disabled. Note enabling and disabling models isn't possible yet in the current microWakeWord component in ESPHome, but it support will be added in the future.

This is an early version of the model, and I will be working on training a better one.

"Stop" model beta 20241017.5

18 Oct 13:20
d0ef708
Compare
Choose a tag to compare
Pre-release

A updated model for detecting "stop" using samples from the Google Speech Commands dataset. This is not intended to be used as a generic on-all-the-time wake word!

At the default 0.5 probability cutoff, there was a around 1 false accept per hour on the DipCo dataset. The other released wake words have at most 0.2 false accepts per hour on that dataset at the default settings. This is instead meant to run only at specific times; i.e., a timer is ringing and you say "stop" to end it. Then the model should be disabled. Note enabling and disabling models isn't possible yet in the current microWakeWord component in ESPHome, but it support will be added in the future.

This model handles background noises (including other speech) and reverberation better than the 20241016.2 model.

"Okay Nabu" 20241205.4

06 Dec 11:36
d0ef708
Compare
Choose a tag to compare
Pre-release

A much improved "Okay Nabu" model! After removing some bad samples from the training set, this model now performs much better than any previous one for both false rejections and false accepts on similar phrases.

Okay Nabu 20241204.6

05 Dec 12:20
d0ef708
Compare
Choose a tag to compare
Okay Nabu 20241204.6 Pre-release
Pre-release
okay_nabu_20241204.6

init features_offset variable for cases where data_length > features_…

Okay Nabu 20241203.5

04 Dec 16:09
d0ef708
Compare
Choose a tag to compare
Okay Nabu 20241203.5 Pre-release
Pre-release

A new "Okay Nabu" model primarily focused on reducing bias and secondary on reducing false activations from similar phrases.

Okay Nabu 20241129.1

03 Dec 15:32
d0ef708
Compare
Choose a tag to compare
Okay Nabu 20241129.1 Pre-release
Pre-release

A new "Okay Nabu" model created with collected samples from https://ohf-voice.github.io/wake-word-collective/
It has less false rejections compared to the currently release model.

Okay Nabu 20241127.1

02 Dec 16:04
d0ef708
Compare
Choose a tag to compare
Okay Nabu 20241127.1 Pre-release
Pre-release

A new "Okay Nabu" model created with collected samples from https://ohf-voice.github.io/wake-word-collective/
It has less false rejections compared to the currently release model.