Collect and preprocess audio
Record or use a licensed wake-word dataset, compute features such as MFCCs or spectrograms, and augment with background noise samples before splitting.
Detect keywords on-device. Optimise latency and memory.
Low-power keyword spotting (wake-word detection) recognises a small set of spoken keywords on-device with strict limits on latency, memory and battery use. Challenges include noisy environments, speaker variability, short utterances, class imbalance and the need for robust feature extraction (eg. MFCCs) before model training and deployment.
Learning concept · Not a validated service
Low-power keyword spotting (wake-word detection) recognises a small set of spoken keywords on-device with strict limits on latency, memory and battery use. Challenges include noisy environments, speaker variability, short utterances, class imbalance and the need for robust feature extraction (eg. MFCCs) before model training and deployment.
A proposed application: a wake-word module for a smart speaker or wearable that triggers local processing without sending audio to the cloud. Any deployment must be validated on real devices and keep a human reviewer in the loop for safety-critical decision flows.
Record or use a licensed wake-word dataset, compute features such as MFCCs or spectrograms, and augment with background noise samples before splitting.
Train a compact architecture (eg. depthwise-separable CNN or tinyML model) on training features and keep a validation split for early stopping.
Report per-key precision/recall or F1 and measure single-inference latency and memory on target hardware rather than on a development machine.
Apply quantisation, pruning or TFLite conversion, then test battery and false-activation rates on the real device.
The supplied starter creates a synthetic tabular classification dataset with sklearn.make_classification, fits a DecisionTreeClassifier, then measures prediction time by calling model.predict repeatedly on a single sample and prints tree statistics. It does not use audio data, feature extraction (MFCCs or spectrograms), or any edge deployment steps.
X, y = make_classification(n_samples=1000, n_features=12, n_informative=8, random_state=42)
model = DecisionTreeClassifier(max_depth=6, random_state=42)
model.fit(X, y)
sample = X[:1]
start = time.perf_counter()
for _ in range(1000):
model.predict(sample)
latency_ms = (time.perf_counter() - start) * 1000 / 1000The code does not implement keyword spotting: it uses synthetic tabular features, trains a decision tree, and measures latency in a tight Python loop on the development host. There is no audio loading, no feature extraction, no model designed or tested for low-power devices, and no on-device benchmarking or TFLite conversion.
Proposed extension: replace the synthetic data with a wake-word dataset (eg. Google Speech Commands or a custom recorded set), extract MFCCs, train a compact CNN, convert to TFLite with post-training quantisation and measure latency and memory on the target board.
This is a potential application pathway, not a delivered product. The supplied starter does not implement this service or validate it with real users.
Networkers Home runs this topic inside its Network Engineering Course, with placement support and hands-on labs.