Spaces:
				
			
			
	
			
			
		Runtime error
		
	
	
	
			
			
	
	
	
	
		
		VampNet
This repository contains recipes for training generative music models on top of the Lyrebird Audio Codec.
Setting up
install AudioTools
git clone https://github.com/hugofloresgarcia/audiotools.git
pip install -e ./audiotools
install the LAC library.
git clone https://github.com/hugofloresgarcia/lac.git
pip install -e ./lac
install VampNet
git clone https://github.com/hugofloresgarcia/vampnet2.git
pip install -e ./vampnet2
A note on argbind
This repository relies on argbind to manage CLIs and config files. 
Config files are stored in the conf/ folder. 
Getting the Pretrained Models
Download the pretrained models from this link. Then, extract the models to the models/ folder.
How the code is structured
This code was written fast to meet a publication deadline, so it can be messy and redundant at times. Currently working on cleaning it up.
βββ conf         <- (conf files for training, finetuning, etc)
βββ demo.py      <- (gradio UI for playing with vampnet)
βββ env          <- (environment variables)
β   βββ env.sh
βββ models       <- (extract pretrained models)
β   βββ spotdl
β   β   βββ c2f.pth     <- (coarse2fine checkpoint)
β   β   βββ coarse.pth  <- (coarse checkpoint)
β   β   βββ codec.pth    <- (codec checkpoint)
β   βββ wavebeat.pth
βββ README.md
βββ scripts
β   βββ exp
β   β   βββ eval.py       <- (eval script)
β   β   βββ train.py       <- (training/finetuning script)
β   βββ utils
βββ vampnet
β   βββ beats.py         <- (beat tracking logic)
β   βββ __init__.py
β   βββ interface.py     <- (high-level programmatic interface)
β   βββ mask.py
β   βββ modules
β   β   βββ activations.py 
β   β   βββ __init__.py
β   β   βββ layers.py
β   β   βββ transformer.py  <- (architecture + sampling code)
β   βββ scheduler.py      
β   βββ util.py
Usage
First, you'll want to set up your environment
source ./env/env.sh
Staging a Run
Staging a run makes a copy of all the git-tracked files in the codebase and saves them to a folder for reproducibility. You can then run the training script from the staged folder.
stage --name my_run --run_dir /path/to/staging/folder
Training a model
python scripts/exp/train.py --args.load conf/vampnet.yml --save_path /path/to/checkpoints
Fine-tuning
To fine-tune a model, see the configuration files under conf/lora/. 
You just need to provide a list of audio files // folders to fine-tune on, then launch the training job as usual.
python scripts/exp/train.py --args.load conf/lora/birds.yml --save_path /path/to/checkpoints
Launching the Gradio Interface
python demo.py --args.load conf/interface/spotdl.yml --Interface.device cuda