Discover music that matches your vibe!
VibeFinder is an intelligent music recommendation system designed to suggest songs based on your current mood or a favorite track. Using cutting-edge machine learning techniques and the Spotify Million Song Dataset, VibeFinder analyzes similarities between tracks to bring you personalized music recommendations, complete with album covers.
- Input Selection: Choose a song from a dropdown menu.
- Song Analysis:
- Songs are represented as high-dimensional feature vectors derived from their audio properties (e.g., tempo, energy, danceability).
- Cosine similarity is calculated to find tracks most similar to your selection.
- Recommendations:
- Display top recommendations in an interactive UI.
- Optionally, preview songs (using Spotify API).
- Feature Engineering: Extraction of audio features from the dataset for similarity computation.
- Cosine Similarity: Measures closeness of song feature vectors.
- Streamlit: Deploys the app for an interactive and user-friendly interface.
Cosine similarity is employed to measure the similarity between the feature vectors of different songs. It calculates the cosine of the angle between two vectors, with values ranging from -1 (completely dissimilar) to 1 (completely similar).
The formula is: [ \text{Cosine Similarity} = \frac{A \cdot B}{|A| |B|} ]
Where:
- ( A ) and ( B ) are the feature vectors of two songs.
- ( A \cdot B ) is the dot product of the vectors.
- ( |A| ) and ( |B| ) are the magnitudes of the vectors.
In the context of VibeFinder:
- A song's feature vector is compared against all other songs in the dataset.
- Songs with the highest similarity scores are considered most similar and are recommended.
This approach ensures that the recommendations are based on the inherent musical characteristics of each track, providing a scientifically grounded and intuitive way to discover new music.
This dataset contains song names, artists names, link to the song and lyrics. This dataset can be used for recommending songs, classifying or clustering songs.
To install these dependencies, run the following command:
pip install -r requirements.txt
pandas
,numpy
,matplotlib
, andseaborn
: Used for data manipulation, visualization, and exploratory data analysis.scikit-learn
: Implements machine learning techniques like cosine similarity and text vectorization.spotipy
: Interacts with the Spotify API to fetch album covers and audio previews.streamlit
: Deploys the web application for an interactive user experience.nltk
: Facilitates natural language processing, specifically for handling stopwords.wordcloud
: Generates word clouds from text data for better visualization.
Run the App:
streamlit run app.py
- Ensure all dependencies are installed using
requirements.txt
. - The app will run locally, and a browser window will open with the interactive interface.