Colab notebooks to train your custom openWakeWord or microWakeWord

Hi everyone,

I’ve put together two Google Colab notebooks for training custom wake words without any local setup. Each one targets a different framework, so you can pick whichever fits your use case.

microWakeWord (ESP32 / ESPHome)

Wraps the microWakeWord framework into a single notebook — edit one config dict, run all cells, get a .tflite model ready for ESPHome.

  • Generates training audio automatically using Piper TTS — no need to record your own voice samples
  • Downloads and wires up all augmentation datasets (MIT RIRs, AudioSet, FMA) and negative examples
  • Lets you listen to pronunciation variants before training so you can pick what sounds best
  • Trains a MixedNet model in ~20 minutes on a free Colab T4 GPU
  • Patches a few issues in the current microWakeWord codebase (stride assertion bug, datasets version incompatibility, OOM on free-tier Colab)
  • Includes two pre-trained Spanish wake words as examples

openWakeWord

A bulletproof, run-all-and-walk-away notebook for training openWakeWord models in 2026. The official notebook has bit-rotted since 2023 and fails out of the box for multiple reasons — this one patches all of them.

  • Three lines to edit, one button to press
  • Trains in ~75-90 minutes on Colab Pro
  • Supports 36 languages via Piper TTS
  • Every cell is self-healing with a hard pre-flight gate that fails loudly before any slow downloads start

Both notebooks work with any language supported by Piper TTS. Happy to hear any feedback or suggestions.

Big thanks to kahredndt for microWakeWord and alfiedennen for openwakeword-colab-2026 — these projects wouldn’t exist without their work.

(Sorry, new users can only put two links on a post, add the “.com” to the domain please)

  • github/kahrendt/microWakeWord
  • github/alfiedennen/openwakeword-colab-2026

(Could any Admin edit these last urls please?)

Sounds super promising, I’ve only tri ed the second one but it errors out. Full output below (I have not tried manual install of dependencies as suggested though):


/sbin/ldconfig.real: /usr/local/lib/libtbbbind_2_5.so.3 is not a symbolic link

ERROR: Could not find a version that satisfies the requirement piper-phonemize-cross (from versions: none)
ERROR: No matching distribution found for piper-phonemize-cross
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 66.2/66.2 kB 3.8 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.5/3.5 MB 62.4 MB/s eta 0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 194.4/194.4 kB 18.3 MB/s eta 0:00:00
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 983.4/983.4 kB 66.2 MB/s eta 0:00:00
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 86.1/86.1 kB 8.8 MB/s eta 0:00:00
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 48.5/48.5 kB 4.8 MB/s eta 0:00:00
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 23.6/23.6 MB 82.7 MB/s eta 0:00:00
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.9/8.9 MB 118.0 MB/s eta 0:00:00
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.3/2.3 MB 97.5 MB/s eta 0:00:00
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 939.7/939.7 kB 64.0 MB/s eta 0:00:00
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 343.2/343.2 kB 29.7 MB/s eta 0:00:00
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 109.4/109.4 kB 11.2 MB/s eta 0:00:00
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 248.5/248.5 kB 23.1 MB/s eta 0:00:00
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 121.6/121.6 kB 14.1 MB/s eta 0:00:00
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 782.1/782.1 kB 56.4 MB/s eta 0:00:00
  Building wheel for webrtcvad (setup.py) ... done
  Building wheel for acoustics (pyproject.toml) ... done
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
google-ai-generativelanguage 0.6.15 requires protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<6.0.0dev,>=3.20.2, but you have protobuf 7.36.2 which is incompatible.
ydf 0.15.0 requires protobuf<7.0.0,>=5.29.1, but you have protobuf 7.36.2 which is incompatible.
grpcio-status 1.71.2 requires protobuf<6.0dev,>=5.26.1, but you have protobuf 7.36.2 which is incompatible.
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 34.1/34.1 MB 30.1 MB/s eta 0:00:00
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 19.0 MB/s eta 0:00:00
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 76.8/76.8 kB 5.3 MB/s eta 0:00:00
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.8/13.8 MB 78.2 MB/s eta 0:00:00
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 260.1/260.1 kB 15.9 MB/s eta 0:00:00
Python: 3.13.15 (main, Aug  6 2026, 11:06:22) [GCC 13.3.0]
  torch: 2.11.0+cu128  cuda: True
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
/tmp/ipykernel_521/1112966177.py in <cell line: 0>()
     26 import speechbrain, acoustics
     27 import onnx, onnxruntime, soundfile, requests
---> 28 from piper_phonemize import phonemize_espeak
     29 from piper import PiperVoice, SynthesisConfig
     30 import piper_sample_generator

ModuleNotFoundError: No module named 'piper_phonemize'

---------------------------------------------------------------------------
NOTE: If your import is failing due to a missing package, you can
manually install dependencies using either !pip or !apt.

To view examples of installing some common dependencies, click the
"Open Examples" button below.
---------------------------------------------------------------------------