Train an ONNX Wake Word Model Online in 2026

August 2026 · Custom wake word · ONNX

A wake word is the short phrase that activates a voice assistant or application. With an online training workflow, you can enter your own phrase, generate a portable ONNX model, and run detection locally without maintaining a speech-data and GPU training pipeline.

Goal: train a phrase such as “Hey Robot,” evaluate the Basic model with your microphone in the console, and then decide whether to purchase the download for further device testing.

Wake word or speech recognition?

A wake-word model answers one narrow question: “Did the target phrase occur?” It does not transcribe free-form speech. This makes keyword spotting suitable for an always-listening first stage. After activation, your application can start an ASR engine, open a dialog, or execute a local action.

The online training workflow

Choose a distinctive phrase

Prefer a phrase with several syllables that is uncommon in normal conversation. Very short and frequent words are harder to separate from everyday speech.

Select the language and model type

Voicute currently supports Chinese, English, Japanese, German, and French. A Basic model uses synthesized voices; Voice Enhancement adds about five selected real recordings when an accent or unusual pronunciation needs extra coverage.

Submit the training task

The service generates varied speech, applies acoustic augmentation, trains the target model, and packages the result. A Basic single-keyword model normally takes about 30 minutes, depending on the queue.

Evaluate the Basic model before purchase

Use your own microphone in the console. Try natural pronunciation and ordinary background speech to observe both intended activations and false triggers. This informs the purchase decision; it is not a production-readiness guarantee.

Decide whether to download

If you want to continue, purchase the model package and validate it again on the final microphone, distance, and noise conditions. The open-source runtime contains examples for Python, Android, Web, ESP32 and Home Assistant.

Run the downloaded model with Python

git clone https://github.com/voicute/onnx-wakeword.git
cd onnx-wakeword
pip install onnxruntime numpy pyaudio
from python.wakeword_engine import WakeWordEngine

engine = WakeWordEngine()
engine.load("models/model_info.json", "models/melspectrogram.onnx")
engine.set_L1(True)
engine.start(lambda word, probability, info:
    print(f"Detected: {word} ({probability:.0%})"))

The callback can start an assistant, enable recording, open a local UI, or publish an event. Runtime inference stays on the device and does not require a Voicute AccessKey.

Where can the ONNX model run?

TargetTypical runtimeUse case
PythonONNX RuntimeLinux, Windows, macOS, Raspberry Pi
AndroidONNX Runtime AndroidApps, tablets, dedicated terminals
BrowserONNX Runtime Web / WASMLocal microphone controls and web tools
ESP32-S3TFLite Micro-compatible exportIoT controllers and embedded devices
Home AssistantWyoming serviceLocal voice assistants

When one wake word is not enough

If the application must recognize “turn on,” “turn off,” “next,” and “stop” directly, use a multi-keyword KWS model instead of stacking separate wake-word models. See the online ONNX keyword-spotting training guide.

Basic-model boundary: generic negative data cannot cover every sound that may resemble a particular keyword. If you find a repeatable false trigger, collect examples of that sound and contact support about custom negative-sample optimization. The self-service workflow is still under development.
Train and evaluate your Basic wake-word model