Skip to content

🎧 VibeFinder: Your AI-powered music companion! ✨ Discover songs that match your mood with smart AI recommendations. 🎢

Notifications You must be signed in to change notification settings

asRot0/VibeFinder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

31 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎡 VibeFinder: Music Recommendation System

Spotify Logo
Discover music that matches your vibe!

🌟 What is VibeFinder?

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.

VibeFinder


🧠 How Does It Work?

  1. Input Selection: Choose a song from a dropdown menu.
  2. 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.
  3. Recommendations:
    • Display top recommendations in an interactive UI.
    • Optionally, preview songs (using Spotify API).

πŸ”¬ AI/ML Techniques Used

  • 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

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:

  1. A song's feature vector is compared against all other songs in the dataset.
  2. 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.


πŸ“Š Dataset Used

Spotify Million Song Dataset

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.


πŸ’» Installation Instructions:

To install these dependencies, run the following command:

pip install -r requirements.txt

πŸ› οΈ Explanation of the Requirements:

  • pandas, numpy, matplotlib, and seaborn: 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.

πŸš€ Deploying VibeFinder

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.

About

🎧 VibeFinder: Your AI-powered music companion! ✨ Discover songs that match your mood with smart AI recommendations. 🎢

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published