ovos-ww-plugin-openwakeword

A wakeword plugin for OpenVoiceOS for the openWakeWord library


Keywords
mycroft, ovos, plugin
License
Apache-2.0
Install
pip install ovos-ww-plugin-openwakeword==0.4.1

Documentation

Description

This is an OVOS plugin for openWakeWord, an open-source wakeword or phrase detection system. It has competitive performance compared to Mycroft Precise or Picovoice Porcupine, can be trained on 100% synthetic data, and can run on a single Raspberry Pi 3 core.

Install

pip install ovos-ww-plugin-openwakeword

Configure your wake word in mycroft.conf. Do not provide the models key to just load the default model ("hey jarvis").

"listener": {
    "wake_word": "hey_jarvis"
},
"hotwords": {
  "hey_jarvis": {
      "module": "ovos-ww-plugin-openwakeword"
  }
} 

Additional configuration options:

"listener": {
    "wake_word": "hey_jarvis"
},
"hotwords": {
  "hey_jarvis": {
      "module": "ovos-ww-plugin-openwakeword",
      "models": ["path/to/openwakeword/model/hey_jarvis.tflite"],
      "inference_framework": "tflite",
      "custom_verifier_models": {"hey_jarvis": "path/to/openwakeword/custom/verifier/model.pkl"},
      "threshold": 0.3,
      "custom_verifier_threshold": 0.1
  }
}

For the models key, provide paths to as many openWakeWord models (in .onnx or .tflite format) as desired and any of them can be used to activate OVOS. The inference_framework argument should match the type of openwakeword model(s) provided in the in the models arguments and can be either tflite or onnx for Tensorflow Lite and ONNX, respectively. tflite (the default for openWakeWord >=0.5.0) has better performance on most platforms, but onnx may have broader compatibility.

For the threshold key, set the score threshold for activation (higher values means less sensitive). The default value of 0.5 is recommended for most use-cases.

The custom_verifier_model and custom_verifier_threshold arguments are for the user-specific verification models that are supported by openWakeWord>=0.3.0. Training and using a custom verifier model can significantly improve performance if the included pre-trained models are not sufficient for a given deployment scenario.

See the openWakeWord repository for more details.