Favicon of openWakeWord

openWakeWord

An open-source wake word library for local voice apps, with English models, custom phrase training, and ONNX support on Linux and Windows.

openWakeWord is a Python library for developers building voice interfaces that listen locally for a chosen word or phrase. It includes English models for triggers such as "hey jarvis" and "alexa", plus phrases for weather and timers. The code uses Apache 2.0. Included pretrained models use CC-BY-NC-SA-4.0, which restricts commercial use.

Detection runs on your own hardware. Linux supports ONNX and TensorFlow Lite models; Windows supports ONNX. A Raspberry Pi 3 can run multiple detectors in real time on a single CPU core, though the models are too large for some weaker devices and microcontrollers. Browser apps can send microphone audio to a Python backend server for detection rather than running the library directly in JavaScript.

For noisy rooms, it includes Silero voice activity detection to help reject sounds that aren't speech. Optional Speex noise suppression works on x86 and Arm64 Linux. Custom voice verifiers can limit activation to recognized speakers, with the tradeoff that unfamiliar voices are less likely to trigger a response.

Custom phrase training uses synthetic speech, reducing the need to record examples yourself. Detectors share a speech feature extractor, so adding another phrase has a relatively small effect on resource use. Training notebooks include a Google Colab route, which runs in the cloud while the resulting detector runs locally. Support is limited to English, and the included models can handle some variation in accents, speaking speed, and phrasing.

Similar to openWakeWord