Audio Keyword Classifier
The objective was to use an embedded system running a custom model trained using machine learning in order to detect at least two spoken keywords with at least one of those words not being a part of the google 30 dataset. The chosen custom keyword is armadillo and the keyword from the google dataset is backward. These keywords were chosen in an attempt to choose words that sounded unique and had very few near-homophones. We were supplied code that was capable of training a model as well as testing however our responsibility was to build a dataset for our custom word and alter the model to achieve the best outcome.
The embedded system that was used to run the model was a Arducam Pico4ML. In order to validate the classifiers accuracy the wake word was tested in a noisy school environment. In order to test the models false acceptance rate (FAR) of a three hour long noisy bar audio sample from YouTube was used and the false positives were recorded.
In addition to taking Machine Learning For IOT in Spring 2022 I was a Teaching Assistant for the class in the Spring of 2023. For that class I shared the code that I wrote for capturing and augmenting audio samples with the class. In addition to sharing code, I recorded a video to show how to use the audio augmentations.
The audio augment code prompts the user on the number of augments that will be created based on user defined parameters. During the pitch shift augment the user is allowed to set the total number of desired samples. This is acomplished by adding increasingly augmented versions of current samples through a for loop until the desired sample count is met. The loop count is calculated via the doubling equation shown here.
In the audio augment code I show how to:
Capture the audio
Add noise to the audio
Time shift the audio
Pitch Shift the audio
Audio Augment Video Walkthrough
Audio Capture
Time Shift Augmentation
Project
GitHub Repo
Audio Augment
GitHub Repo
Noise Augmentation
Pitch Shift Augmentation
Report
Download
Arducam
Pico4ML
Report