Tater Totterson a78d959474 Update README.md
2026-01-06 19:42:36 -06:00
2025-12-28 13:14:48 -07:00
2025-01-02 20:22:06 -06:00
2025-01-02 23:15:53 -06:00
2026-01-06 19:42:36 -06:00
2025-12-28 13:14:48 -07:00

MicroWakeWord Trainer Logo

microWakeWord Trainer Docker

🥔 MicroWakeWord Trainer Tater Approved

Tater Totterson tested & working on an NVIDIA RTX 3070 Laptop GPU (8 GB VRAM).
Easily train microWakeWord detection models with this pre-built Docker image and JupyterLab notebook.


🚀 Quick Start

Follow these steps to get up and running:

1 Pull the Pre-Built Docker Image

docker pull ghcr.io/tatertotterson/microwakeword:latest

2 Run the Docker Container

docker run --rm -it \
    --gpus all \
    -p 8888:8888 \
    -v $(pwd):/data \
    ghcr.io/tatertotterson/microwakeword:latest

What these flags do:

  • --gpus all → Enables GPU acceleration
  • -p 8888:8888 → Exposes JupyterLab on port 8888
  • -v $(pwd):/data → Saves your work in the current folder

3 Open JupyterLab

Visit http://localhost:8888 in your browser — the notebook UI will open.


4 Set Your Wake Word

At the top of the notebook, find this line:

TARGET_WORD = "hey_tater"  # Change this to your desired wake word

Change "hey_tater" to your desired wake word (phonetic spellings often work best).


5 Run the Notebook

Run all cells in the notebook. This process will:

  • Generate wake word samples
  • Train a detection model
  • Output a quantized .tflite model ready for on-device use

6 Retrieve the Trained Model & JSON

When training finishes, download links for both the .tflite model and its .json manifest will be displayed in the last cell.


🔄 Resetting to a Clean State

If you need to start fresh:

  1. Delete the data folder that was mapped to your Docker container.
  2. Restart the container using the steps above.
  3. A fresh copy of the notebook will be placed into the data directory.

🎤 Optional: Personal Voice Samples

In addition to synthetic TTS samples, the trainer can optionally use your own real voice recordings to significantly improve accuracy for your voice and environment.

How it works

  • If a folder named personal_samples/ exists and contains .wav files, the trainer will:
    • Automatically extract features from those recordings
    • Include them during training alongside the synthetic TTS data
    • Up-weight your personal samples during training for better real-world performance

No extra flags or configuration are required — it is detected automatically.

How to use it

  1. Create a folder in the repo root: mkdir personal_samples

  2. Record yourself saying the wake word naturally and save the files as .wav: personal_samples/ hey_tater_01.wav hey_tater_02.wav hey_tater_03.wav ...

  3. Run the training script as normal:

If personal samples are found, youll see a message during training indicating they are being included.

Recording tips

  • 1030 recordings is usually enough to see a noticeable improvement
  • Vary distance, volume, and tone slightly
  • Record in the same environment where the wake word will be used (room noise matters)
  • Use 16-bit WAV files if possible (most recorders do this by default)

🙌 Credits

This project builds upon the excellent work of kahrendt/microWakeWord.
Huge thanks to the original authors for their contributions to the open-source community!

Description
No description provided
Readme 2 MiB
Languages
Python 42.3%
HTML 37.1%
Shell 20.6%