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 2.17.1 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

You must also provide a compatible TensorFlow Lite C shared library. See TensorFlow Lite runtime.

Microphone capture builds through CoreAudio. You must provide a compatible TensorFlow Lite C shared library and macOS will ask 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.