Detect simple voice commands and audio events on small embedded sytems
Nyumaya offline audio classification. Libraries are avialable for Linux, WASM and RaspberryPi.
To run an example
git clone --depth 1 https://github.com/nyumaya/nyumaya_audio_recognition.git cd nyumaya_audio_recognition/examples/python python3 simple_hotword.py
The python demo captures audio from the default alsa microphone.
A web demo is available here. This has been tested with recent versions of Chrome and Firefox.
- Pi Zero: CPU 55%
- Pi 3: CPU one core: 12%
- Pi 4: CPU one core: 4%
- Marvin Hotword
- Sheila Hotword
- Firefox Hotword
- Alexa Hotword
- View Glass Hotword
Models and the Library are Versioned with <major>.<minor>.<revision> Models must match the <major>.<minor> version of the library to be compatible.
The sensitivity parameter is a tradeoff between accuracy and false positives. Setting the sensitivity to a high value means it's easier to trigger the hotword. If you experience a lot of false detections, set the sensitivity to a lower value.
You can run the audio_check script to get some info about your volume level and possible DC-Offset. Speak as loud as the maximum expected volume will be.
The multi_streaming_example.py is a demo of how to chain commands. You can add commands with a list of words and function to call when the command is detected.
Be aware that CPU usage increases a little bit when multiple models have to run concurrently. I this case the software has to run the marvin_model (marvin) and the subset_model (stop) at the same time.
Custom Keywords can be requested for evalutaion and commercial use here
Libraries for other targets can be requested for commercial customers.