This project involves building a Convolutional Neural Network (CNN) architecture for Keyword Spotting, specifically trained on the Google Speech Commands dataset with an impressive Test Accuracy of 90%. Additionally, the model has been deployed as an API using Flask, and the API has been integrated into a frontend built in ReactJS.
The Convolutional Neural Network is a deep learning model well-suited for audio-related tasks. For keyword spotting, it has proven to be effective in recognizing specific words or phrases within audio clips.
The architecture of the CNN used for this project is as follows:
![image](https://private-user-images.githubusercontent.com/96808735/255551672-7513d568-a67b-44ab-98dd-eb8a071c80cf.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUxOTcwNDksIm5iZiI6MTcyNTE5Njc0OSwicGF0aCI6Ii85NjgwODczNS8yNTU1NTE2NzItNzUxM2Q1NjgtYTY3Yi00NGFiLTk4ZGQtZWI4YTA3MWM4MGNmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAxVDEzMTkwOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWMxNTNkOTVlYWYxZGQ1YjQ3YWUxNjU4MzU0NjhkN2M0ZTIwZmE5MGE4NmZhNDk0OGFhOWJiN2EwMjJhMWZkZDYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.KdqnhaIfQSAmZuWdIev0bp00roPWhP3KpKJoum7jlO4)
The CNN architecture is designed to extract relevant features from the audio input and learn to differentiate between different keywords.
The trained CNN has achieved an impressive Test Accuracy of 90% on the Google Speech Commands dataset. The high accuracy is a testament to the effectiveness of the chosen architecture and the quality of the training data.
To make the trained model accessible and usable, it has been deployed as an API using Flask. Flask is a popular web framework in Python that allows us to create a simple and efficient API for serving predictions from the model.
With the API, users can send audio clips as requests to the server, and the server will respond with predictions regarding the presence of the specific keyword in the audio.
To provide a user-friendly interface, the API has been integrated with a frontend built in ReactJS. ReactJS is a popular JavaScript library for building interactive user interfaces.
Users can interact with the frontend, record or upload audio clips, and send them to the Flask API for keyword spotting predictions. The results are then displayed back to the user in a user-friendly manner.
This project is licensed under the MIT License - see the LICENSE file for details.
Special thanks to the authors of the Google Speech Commands dataset and the open-source community for their contributions to the tools used in this project.