Primena Neuronskih Mreža za generisanje melodije.
Autor: Miljan Ilić RI5/2019
Programski jezik: Python / Jupyter Notebook
Biblioteke: TensorFlow, Music21, NumPy
Dataset je sastavljen od MIDI muzičkih fajlova komponovanih na klaviru. Izvorni MIDI fajlovi nalaze se u folderu
dataset/midi
, dok se isparsirani dataset u XML formatu koji sadrži note nalazi u fajlu /dataset/notes/parsed.data
.
Sistemski Zahtevi
- OS: Windows / MacOS / Linux
- Storage: ~8 GB
- Software: Docker
Instalacija
- Nakon što su svi sistemski zahtevi ispunjeni potrebno je napraviti novi
image
za Docker. Projekat sadržidocker-compose.yml
konfiguraciju te je dovoljno pokrenutidocker compose up -d
- Za zaustavljanje Docker Container-a potrebno je pokrenuti
docker compose down
Pristup Jupyter Notebook-u
- Jupyter Notebook dostupan je na adresi
http://localhost:8888/
, dok je TensorBoard dostupan na adresihttp://localhost:6006/
- Token za prijavu na Jupyter Notebook je
RAF
Sve datoteke na host računaru nalaze se u folderu notebook
, dok se u Jupyter Notebook-u sve datoteke reflektuju u folder tensorflow-raf
, relativno gledano u odnosu na root
folder Notebook-a - /tf
. Sve putanje u
dokumentaciji ispod odnose se relativno na tensorflow-raf
folder, odnosno /tf/tensorflow-raf
.
Kod korišćen za treniranje neurosnske mreže nalazi se u train.ipynb
.
Kod koji se koristi za generisanje mozičkih kompozicija nalazi se u generate.ipynb
.
Melodija se može generisati otvaranjem generate.ipynb
fajla i pokretanjem istog sa željenom konfiguracijom.
Moguće je konfigurisati model koji treba koristiti, dužinu LSTM sekvence, broj nota koje treba generisati, kao i tempo
melodije, odnosno razmak izmedju nota i akorda.
Logovi se nalaze u folderu logs
, dok se istrenirani modeli i checkpoint-i nalaze u folderu models
.
Izlazne datoteke generisanih kompozicija nalaze se u folderu output
.