Zicheng Chen (zc44)
Story(Introduction)This project implemented “Wake Word Detection” functionality on an Arduino Nano BLE 33 Sense board. The board should be able to recognize different audio input and show different outputs based on the input. The machine learning model is trained on TensorFlow before deployed to the physical Arduino board. The project gets the idea from Chapter 8 of the textbook: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers. The Microcontroller of my choice has the ability to support voice recognition.
Development ProcessVoice recognition, the first part of the project, requires prior knowledge of machine learning. By following the instructions from text, I was able to implement it through TensorFlow on Google Colab and export the file in Jupyter Notebook format.
The training process can be summarized into the following steps:
1. Change wake word to two different words
2. Change learning steps and change learning rate
3. Install TensorFlow packages and tools
4. Visualize and analyze training accuracy and training loss
5. Convert the model to make sure it is compatible with the board
6. Convert the code through TensorFlow Lite Converter
7. Deploy the code onto the Arduino board
7. Test the application through Arduino IDE
The tensorflow final test accuracy is at 90.8% with a sample size of 1200.
DeploymentThe model is deployed onto the board of Arduino Nano 33 BLE Board. I have only modified the following three files:
1. Micro_features_model.cpp
2. arduino_command_responder.cpp
3. micro_features_micro_model_settings.cpp
The microcontroller is now able to detect voice "on" and "off" and turn on red and green lights accordingly.
Comments
Please log in or sign up to comment.