A Golang library for wake word detection using TensorFlow Lite and audio microfrontend processing.
MicroWakeWord is a lightweight wake word detection library for Go applications. It leverages TensorFlow Lite and the audio microfrontend to provide efficient and accurate wake word detection capabilities with minimal resource usage, making it suitable for embedded systems and IoT devices.
This library is inspired by microWakeWord and provides a simple API for detecting predefined wake words from audio input.
- Go 1.16 or higher
- GCC or compatible C compiler
- Bazel build system
- Git
The library requires two main dependencies:
- TensorFlow Lite C library
- Audio Microfrontend library
Use the provided Makefile to build and install these dependencies:
# Clone the repository
git clone https://github.com/pmdroid/microwakeword.git
cd microwakeword
# Build and install dependencies (may require sudo for installation)
make
sudo make install
The Makefile will:
- Download TensorFlow v2.19.0
- Download KissFFT
- Build the TensorFlow Lite C and Microfrontend libraries
- Install the shared libraries to
/usr/local/lib
go get github.com/pmdroid/microwakeword
The repository includes examples to help you get started:
examples/mic.go
: A complete example showing how to use the library with microphone input for real-time wake word detection
The microphone example demonstrates:
- Loading a wake word model
- Initializing and configuring the microphone
- Processing streaming audio data
- Detecting wake words in real-time
To run the microphone example:
go run examples/mic.go
Contributions are welcome! Please feel free to submit a Pull Request.
- This project uses TensorFlow
- KissFFT library by Mark Borgerding