SONGFITT is a online Robust Music Recommendation Engine where in you can finds the best songs that suits your taste.
Along with the rapid expansion of digital music formats, managing and searching for songs has become significant. The purpose of this project is to build a recommendation system to allow users to discover music based on their listening preferences. Therefore in this model I focused on the public opinion to discover and recommend music.
-
Song Recommendation (minimalistic feature) ✅
-
Recommendation on the basis of Genre and Year of Release (old or new) ✅
-
Depicting the Importance of Acousticness, Loudness, Tempo, Liveness, danceability and valence using Feature Correlation ✅
-
Used Spotify API to play songs on the WebApp ✅
-
Redirecting to the recommended Songs on the your personal Spotify app with one click. ✅
-
Calculated the Accuracy and Area under curve of each algorithm to see which is best for Prediction and Recommendation ✅
-
Depicted a 3-D earth Model predicting popularity of most famous song(Blinding Lights) in my dataset in different location. ✅
-
Continious update on the deployed site ✅
Frontend
: StreamlitBackend
: Python, scikit-learn, pandas, Numpy and Plotly.ML model
: Jupyter NotebookIDE
: VsCodeVersion Control
: GitDeployment
: Streamlit-Share
- Clone this repository in your local system.
- Open terminal in a new folder and enter the command given below.
git clone https://github.com/uditkatyal/songfitt_
-
Make sure that Python is installed and updated in your machine.
-
Install dependencies.
- Open terminal in the cloned folder and enter the command given below.
pip install -r requirements.txt
- Run the project.
- Write the following command in terminal to run the website locally.
streamlit run app.py
- If everything is done in order, the app will be running at "http://localhost:8501/"
- Do add the SpotGenTrack file in the main folder
- Zip file of SpotGenTrack is Attached in the folder
- This is how file structure should look like-
- C:\Users\UditKatyal\Desktop\songfitt_\SpotGenTrack
In this Project I have used K Nearest Neighbours and Random Forest Machine Learning Algorithms. The model is initially trained with dataset provided and then recommends the songs as per user input.
- SpotifyGenTrack - https://www.kaggle.com/datasets/saurabhshahane/spotgen-music-dataset
- Music Trend Analysis (by location) - https://www.kaggle.com/code/hkapoor/music-trends-analysis-by-location/data
- read playlists/track info from json files
- extract audio features for each track
- optimise the features
- https://www.researchgate.net/publication/277714802_A_Survey_of_Music_Recommendation_Systems_and_Future_Perspectives
- https://www.researchgate.net/publication/324652918_Recommendation_of_Job_Offers_Using_Random_Forests_and_Support_Vector_Machines
The demo video for the Web Application: SONGFITT | Video
- In this project, I have presented a novel framework for Music recommendation that is driven by data and simple effective recommendation system for generating songs as per users choice.
- Moving forward, I will use a larger Spotify database by using the Spotify API to collect my own data, and explore different algorithms to predict popularity score rather than doing binary classification.
Thank you, Microsoft and Acehacker Team for such an amazing program ❤️