Git Product home page Git Product logo

musicgpt's Introduction

MusicGPT

This project explores personalized music creation using advanced ML, aiming for music aligned with preferences. It evaluates models like Jukebox, MuseNet, and Music Transformer for musical nuances, cohesion, and emotional depth, with thorough measures and expert feedback for iterative enhancement. It envisions transforming music engagement into an interactive, co-creative process, leveraging ML and user-centric design to redefine music's role in daily life.

How to run

Firstly train the model

  • Each notebook is named in parts (1-5)
  • Final outputs is the trained model with weights and biases configured

For the server side

  • open flask-server folder
  • copy paste the Final outputs folder into the flask-server folder
  • run docker commands docker build -t okbenzene/python-api:latest .
  • run the container docekr container run -d -p 4000:3000 okbenzene/python-api:latest

For the client side

  • open the react-app folder
  • open a new terminal ctrl+`
  • run npm i
  • type npm run musicgpt

What to FIND!

This project is divided into three core sections.

  • Jupyter Notebook - Model creation, Model Training, Model Checkpoints.
  • Server - Creating Model API and deploying the model using Docker.
  • Client - Creating a webpage to interact with the model (Experimental).

website

What they include!

Jupyter Notebook

Current file includes

  • Midi Chunking
  • Midi Tokenization
  • GPT-2 Model
  • HuggingFace for saving Tokenizer, Dataset
  • Wandb for logging the model training

Further improvements

  • Larger training data
  • Imporve tokenization process to diversify on variety of instruments
  • GPT-2 Tweaks for better predictions (Hardware intensive)

Server

Current file includes

  • Model API made using flask
  • Test script included
  • Easier debugging
  • Song generations (Parsed and saved as file .wav format)

Further improvements

  • Code optimizations
  • Minor issue with generations (Memory cosumption)
  • error handling
  • API for parsing piano notations directly

Client

Current file includes

  • Component based
  • Latest Framework (React)
  • Input based generation
  • History Component for previously generated compositions

Further improvements

  • Memory leak issues when POST route is called (FIXED - Still needs an improvement)
  • About me page to be built
  • In app Piano interaction for generating composition
  • Email validations
  • Visualizer improvements

Authors

Thanks to @juancopi81 for supporting

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.