Code Monkey home page Code Monkey logo

songgenreclassification's Introduction

Classifying Song Genres Using Raw Lyric Data with Deep Learning

Collaborators: Connor Brennan, Sayan Paul, Hitesh Yalamanchili, Justin Yum (CS 194-129: Group 3)

University of California, Berkeley

With the advent of music streaming services in recent years and their respective recommendation algorithms, classifying song genres is a commercially useful application of deep learning. Our main focus was to use raw lyric data, rather than a bag of words or other types of summaries, so that we could capture positional information for each word. Specifically, we used lyric information to classify a song as one of $11$ genres. The three main architectures we investigated were the LSTM baseline, hierarchical multilayer attention with GRUs (HAN-GRU), and Transformers with multihead attention. We found that stacking layers in the HAN-GRU was both the fastest to train and the best performer of the three, reinforcing the power of hierarchical attention. For a more in-depth look at our study, please take a look at our report.

Getting Started

Before being able to use the models provided in models/, all you need to do is ensure you have the requirements to be able to train and test these models as well as obtain the data by unzipping the files located in dataset.

Requirements

  • Numpy
  • Pandas
  • Tensorflow
  • Keras
  • scikit-learn
  • Tensor2tensor

Obtaining the Pre-Processed Data

Unzip the two zip files original_cleaned_lyrics.zip and english_cleaned_lyrics.zip, which contain the pre-processed and cleaned song lyrics originally obtained from the MetroLyrics dataset and the English-only cleaned song lyrics respectively.

unzip original_cleaned_lyrics.zip
unizp english_cleaned_lyrics.zip

Models

The various models that have been developed, trained, and tested extensively are linked below.

Acknowledgements

songgenreclassification's People

Contributors

hiteshyalamanchili avatar sayanpaul avatar ctbrennan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.