Team Member: Zihui Deng (zd13), Xinghao Huang (xh28), Leyi Du (ld31), Tiancheng Jiang (tj16)
Preface
While there are several choices on what to do in this final project, we finally decided to work on Wake Word Detection. As intelligence devices are now pretty common in our lives, such detection can be very useful in detecting wake words without contacting backend servers. We want to get in touch with something practical and commonly used in our daily life, so here it is.
As for the application architecture, from the TinyML micro draft, we knew that for every machine learning projects, we must have at least five steps:
1. Obtains an input
2. Pre-processes the input to extract features suitable to feed into a model
3. Runs inference on the processed input
4. Post-processes the model's output to make sense of it
5. Uses the resulting information to make things happen
And in this very project, we mainly follow the above rules but with some variations.
First, we must process the original audio data before we feed it into a model as input. Also, we have to modify the classification model to meet the requirement of outputting a string("YES" or "NO") instead of a possible value.
Process
We trained a machine learning model using Arduino Nano 33 BLE which is supposed to classify and recognize the input and divides the input as three different outputs: "YES", "NO", and "UNKNOWN". The dataset we chose for training is the Speech Commands Dataset, which consists of 65,000 one-second long utterances of 30 short words, crowdsourced online.
What we have to do here is to preprocess our original data from words to an audio type. We can do that by representing input words with spectrograms.
Results
Actually, we added some innovative tricks to train the model. From the following demo we can see that when the input is "YES", the yellow light is going to shine for 3 seconds, when the input is "NO", the yellow light is going to be extinguished for 3 seconds, when the input is something unknown, nothing happens to the light.
Working Demo
Comments
Please log in or sign up to comment.