Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nyumaya/nyumaya_audio_recognition
Classify audio with neural nets on embedded systems like the Raspberry Pi
https://github.com/nyumaya/nyumaya_audio_recognition
audio-recognition embedded-systems hotword hotword-detection keyword-spotting machine-learning raspberry-pi speech-commands wake-word-detection
Last synced: about 2 months ago
JSON representation
Classify audio with neural nets on embedded systems like the Raspberry Pi
- Host: GitHub
- URL: https://github.com/nyumaya/nyumaya_audio_recognition
- Owner: nyumaya
- License: apache-2.0
- Created: 2018-08-16T04:58:51.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-04-10T16:21:15.000Z (9 months ago)
- Last Synced: 2024-04-10T18:10:57.964Z (9 months ago)
- Topics: audio-recognition, embedded-systems, hotword, hotword-detection, keyword-spotting, machine-learning, raspberry-pi, speech-commands, wake-word-detection
- Language: Python
- Homepage: https://nyumaya.com
- Size: 138 MB
- Stars: 79
- Watchers: 16
- Forks: 14
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: changelog
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Wakeword detection on small embedded sytems
Nyumaya offline audio classification. Libraries are available for **Linux**, **WASM**, **RaspberryPi**, **ESP32S3**, **Android**.
Experimental Libraries are also available for **MAC**, **iOS**, **Windows**[![Codacy Badge](https://app.codacy.com/project/badge/Grade/fa3ffbfff7fa4554acad93e044b24fdd)](https://www.codacy.com/gh/nyumaya/nyumaya_audio_recognition/dashboard?utm_source=github.com&utm_medium=referral&utm_content=nyumaya/nyumaya_audio_recognition&utm_campaign=Badge_Grade)
For esp32s3 support look at its [example](https://github.com/nyumaya/nyumaya_esp32_s3_box) and [library](https://github.com/nyumaya/libnyumaya_esp32)
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.
## Web Demo
A web demo is available [here](https://nyumaya.com/demo/).
This has been tested with recent versions of Chrome and Firefox.## Performance V3.1
- Pi Zero: CPU 52%
- Pi 3: CPU one core: 12%
- Pi 4: CPU one core: 4%
- i.MX8 CPU one core: 4%
- i.MX6 CPU one core: 11.9% (CortexA9)
- Android, low usage on a fairly old XIAOMI MI A3## Free models:
- Marvin Hotword
- Sheila Hotword
- Firefox Hotword
- Alexa Hotword
- View Glass Hotword## Versioning
Models and the Library are Versioned with \.\.\
Models must match the \.\ version of the library to be compatible.## Sensitivity
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.
## Audio Config
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.
```
python check_audio.py
```## Chaining Commands
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.
```
mDetector.add_command("marvin,on",light_on)
mDetector.add_command("marvin,stop",stop)
```
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.
```
mDetector.add_command("marvin,on",light_on)
mDetector.add_command("stop",stop)
```## Custom Keywords:
Custom Keywords can be requested for evalutaion and commercial use [here](https://nyumaya.com/requesting-custom-keywords/)
## Custom Targets:
Libraries for other targets can be requested for commercial customers.