Custom wake words. Open source. Yours forever.

Train a personal wake-word detector from your voice samples. Apache 2.0 SDK, ONNX models, no API keys. Works offline forever.

Get started free View on GitHub

Apache 2.0 licensed. No runtime API keys. No phone-home.

Quick answer: what is ViolaWake?

ViolaWake is an open-source wake word SDK and web Console for custom voice activation. Train from recordings, download an ONNX model, and run detection locally in Python. The hosted Console manages recording and training; runtime detection stays on device.

Why developers compare ViolaWake to Picovoice

Picovoice Porcupine is a proprietary wake word SDK with broad platform documentation and an AccessKey workflow. ViolaWake is the open-source path: Apache 2.0 SDK, ONNX export, inspectable training code, and no runtime API key.

FeatureViolaWakePicovoice Porcupine
SDK licenseApache 2.0 SDKProprietary SDK and service terms
Runtime keyNo API key or phone-homeAccessKey required by Picovoice docs
Model formatONNX wake head with OpenWakeWord backbonePicovoice .ppn/.pv model assets
Training pathBrowser Console or open CLIPicovoice Console text-to-wake-word flow
Local inferenceYesYes
SourceViolaWake GitHubPicovoice Porcupine docs

Comparison checked as of 2026-05-08. Picovoice AccessKey requirement verified from Picovoice Porcupine Python Quick Start.

Accuracy and deployment signals

ViolaWake's production reference model is a TemporalCNN(96, 9) wake head with 25,409 parameters and a 102 KB ONNX export. The reference evaluation reports 0.8% EER and d-prime 8.58. User-trained models from 10 samples are personal-demo quality; accuracy depends on sample quantity, microphones, rooms, negatives, and threshold tuning.

Build path

Use it from Python

from violawake_sdk import WakeDetector

detector = WakeDetector(model="my_word.onnx", threshold=0.80)
for frame in mic_stream():
    if detector.detect(frame):
        print("Wake word detected")

What makes the project useful

Keep exploring