Rustpotter CLI

CLI for Rustpotter, an open source wakeword spotter forged in rust

Description

This is a client for using the rustpotter library on the command line.

Use Example

```sh

print help

rustpotter-cli -h

print command help

rustpotter-cli spot -h

list available input devices and configs

rustpotter-cli devices

record samples, you should press "ctrl + c" to stop after saying your wakeword

rustpotter-cli record heyhome.wav rustpotter-cli record heyhome1.wav rustpotter-cli record hey_home2.wav

check that your samples are correctly trimmed and without noise using any player

...

build a model, this op is idempotent (same input samples with same options = same model)

rustpotter-cli build-model \ --model-path heyhome.rpw \ --model-name "hey home" \ heyhome.wav heyhome1.wav heyhome2.wav

test the model accuracy over the samples in verbose mode to print partial detections

rustpotter-cli test-model -v heyhome.rpw heyhome.wav rustpotter-cli test-model -v heyhome.rpw heyhome1.wav rustpotter-cli test-model -v heyhome.rpw heyhome2.wav

test the spot functionality in real time, customizing

the default detection threshold

rustpotter-cli spot -t 0.563 hey_home.rpw

rebuild a model adding a custom threshold for the word,

this one has prevalence over the spot configuration

rustpotter-cli build-model \ --averaged-threshold 0.54 \ --threshold 0.54 \ --model-path heyhome.rpw \ --model-name "hey home" \ heyhome.wav heyhome1.wav heyhome2.wav hey_home3.wav

you can spot using multiple models

rustpotter-cli spot heyhome.rpw goodmorning.rpw ...

you will get an output like this in your terminal on each spot event

Wakeword detection: 10:58:53 RustpotterDetection { name: "hey home", avgscore: 0.37827095, score: 0.5000453, scores: {"heyhome2.wav": 0.43628272, "heyhome.wav": 0.5000453, "heyhome1.wav": 0.4230849}, counter: 7 } ```