This project is a music genre classifier that uses machine learning models to determine the genre of a 30 second clip song. It was trained with a dataset of 1000 songs and their respective genres. The dataset is from Kaggle and contains 10 genres: blues, classical, country, disco, hiphop, jazz, metal, pop, reggae, rock. The dataset contains 100 songs - 30 seconds long per genre.
- Upload an audio .wav file by drag and dropping it or by clicking the upload area
- Play/pause the audio file in the browser
- Remove the audio file
- Upload the audio file to classify it
- See the classification results (genre and probability)
- Frontend: ReactJS + Vite
- Backend:
- FastAPI for the Web API
- Celery to process the audio files (workers)
- MongoDB as the database to store the results
- RabbitMQ as the message broker
- Google Cloud Storage to store the audio files
- Machine Learning: scikit-learn
The project is structured as follows:
Each directory has its own README.md file with more information about the project (how to build it, how to run it, etc).
This project is licensed under the MIT License - see the LICENSE file for details.