I started working on a project for a smart assistant with MCP integration on Raspberry Pi, and on the wake word part I found out that available open source solutions are somewhat limited. You have to either go with classical MFCC + DTW solutions which don't provide good precision or you have to use model-based solutions that require a pre-trained model and you can't let users use their own wake words.
So I took advantages of these two approaches and implemented my own solution. It uses Google's speech-embedding to extract speech features from audio which is much more resilient to noise and voice tone variations, and works across different speaker voices. And then those features are compared with DTW which helps avoid temporal misalignment.
Benchmarking on the Qualcomm Keyword Speech Dataset shows 98.6% accuracy for same-speaker detection and 81.9% for cross-speaker (though it's not designed for that use case). Converting the model to ONNX reduced CPU usage on my Raspberry Pi down to 10%.
Surprisingly I haven't seen (at least yet) anyone else using this approach. So I wanted to share it and get your thoughts - has anyone tried something similar, or see any obvious issues I might have missed?