Skip to content

Installation

From your Rust project:

Terminal window
cargo add micro-wakeword

That enables the default listener feature, which includes microphone capture, channel conversion, and resampling.

For a low-level detector with no microphone dependencies:

Terminal window
cargo add micro-wakeword --no-default-features

Equivalent Cargo.toml entries are:

[dependencies]
micro-wakeword = "0.1"
# Or, when your application supplies 16 kHz mono PCM:
# micro-wakeword = { version = "0.1", default-features = false }

The TensorFlow Lite runtime is bundled and checksum-verified. Install the MSVC C++ build tools because the crate compiles its audio feature frontend from C++ source.

With Rust installed through rustup, the standard Windows MSVC toolchain is recommended:

Terminal window
rustup default stable-x86_64-pc-windows-msvc

Install your distribution’s audio development package for CPAL. On Ubuntu/Debian:

Terminal window
sudo apt-get install libasound2-dev

Also install a C++ compiler if your distribution does not include one. The TensorFlow Lite runtime is bundled for glibc-based x86-64 and ARM64 systems. Musl and other architectures can use an explicit or system runtime; see TensorFlow Lite runtime.

Install Xcode Command Line Tools with xcode-select --install. Microphone capture uses CoreAudio, the matching TensorFlow Lite runtime is bundled, and macOS asks for microphone permission when your app first records.

A normal project layout looks like this:

my-app/
├── Cargo.toml
├── models/
│ ├── wake-word.json
│ └── wake-word.tflite
└── src/
└── main.rs

The model path inside wake-word.json is resolved relative to the JSON file, not your executable.

Terminal window
cargo check
cargo run --release

Use release mode for real listening. Debug builds can process audio too slowly and cause avoidable dropped blocks.