Custom wake word for Browser

Run your wake word right in a web page. ONNX Runtime Web processes the microphone in the tab, so no audio is sent to a server.

Train your wake wordTest any model in the playground first.
91%of wake word utterances caught, on average, in our benchmark
~45 minfrom typing your phrase to a finished model

Why it works well here

  • ✓Runs in the tab with ONNX Runtime Web, no backend needed
  • ✓Audio stays in the browser
  • ✓Test any model live in the playground before you ship

How to set it up

  1. 01Train your wake word. Type your phrase on Outspoken and download the model.
  2. 02Test it in the playground. Open the playground, load your model and say the word to check it works.
  3. 03Create a React app with Vite. Run npm create vite@latest with the react-ts template, or use the React app you already have, and install onnxruntime-web.
  4. 04Add the model files. Put the .onnx file in public/models/ next to the two shared model files, so Vite serves them at /models/.
  5. 05Stream the microphone. Capture 16 kHz audio with an AudioWorklet in a small React hook and pass it to the model in chunks of 1280 samples.
Try it in the playground →

Questions

Does browser wake word detection send my audio anywhere?

No. The model runs in the page with WebAssembly, so the microphone audio stays in the browser tab.

Which browsers work?

Any modern browser with microphone access and WebAssembly support. Microphone access needs HTTPS.

Also runs on

Home AssistantRaspberry PiPythonReact Native