NanoWakeWord Model โ€” "wake up"

A wake word detection model trained with nanowakeword for the phrase "wake up".

Model Files

File Description
wake_up_v1.onnx Full ONNX model (DNN, 4 blocks ร— 64 units, 128-dim embedding)
wake_up_v1.pt PyTorch checkpoint
wake_up_v1_lite.onnx Distilled lite model (8-dim embedding, 1 block) โ€” low-power gatekeeper
training_config.yaml Full training configuration

Training Data

  • Positive: TTS-generated "wake up" (2500 clips, 904 Piper speakers) + real recordings from pollen-robotics/wake-up-real + synthetic clips from TigreGotico/synthetic-wakeword-wake_up
  • Negatives: 5000 adversarial TTS + 3000 phoneme-adversarial + speech commands from pollen-robotics/speech-commands-v0.02 + arcosoph/AE29H_float32 + arcosoph/RACON_11h_v1
  • Background noise: Real robot mic recordings + arcosoph/datasets_zip (SonicWeave-v2)

Training Recipe

  • Architecture: DNN (layer_size=64, n_blocks=4, embedding_dim=128, dropout=0.3)
  • Loss: Bias-weighted asymmetric BCE (positive bias=0.65, negative weight=2.0)
  • Optimizer: AdamW (lr=0.0008, weight_decay=0.01, onecycle schedule)
  • Steps: 40,000 train + 8,000 distillation
  • Augmentation: 10 rounds (noise, gain, pitch, SNR)
  • Checkpoint averaging: Top-5 (EMA alpha=0.05)

Usage

Python (nanowakeword package)

from nanowakeword.model import Model

# Load the full model
model = Model.from_pretrained("pollen-robotics/nanowakeword-wake-up", filename="wake_up_v1.onnx")

# Or load the lite model
model = Model.from_pretrained("pollen-robotics/nanowakeword-wake-up", filename="wake_up_v1_lite.onnx")

ONNX Runtime (direct)

import onnxruntime as ort
import numpy as np

session = ort.InferenceSession("wake_up_v1.onnx")
# Input: (1, 32000) float32 audio at 16kHz
# Output: (1, 1) probability

Real-time detection (nanowakeword listener)

from nanowakeword.listener import Listener

listener = Listener(
    model_paths=["pollen-robotics/nanowakeword-wake-up"],
    wake_word_names=["wake_up_v1"],
    chunk_size_ms=100,
)
listener.start()

Deployment

This model is designed for Raspberry Pi 4 deployment on the Reachy Mini robot. Use the lite model (wake_up_v1_lite.onnx) for lower CPU usage, with the full model as a secondary verifier if needed.

Generated by ML Intern

This model repository was generated by ML Intern, an agent for machine learning research and development on the Hugging Face Hub.

Downloads last month
36
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support