Meet Mustango, an exciting addition to the vibrant landscape of Multimodal Large Language Models designed for controlled music generation. Mustango leverages Latent Diffusion Model (LDM), Flan-T5, and musical features to do the magic!
import IPython
import soundfile as sf
from mustango import Mustango
model = Mustango("declare-lab/mustango")
prompt = "This is a new age piece. There is a flute playing the main melody with a lot of staccato notes. The rhythmic background consists of a medium tempo electronic drum beat with percussive elements all over the spectrum. There is a playful atmosphere to the piece. This piece can be used in the soundtrack of a children's TV show or an advertisement jingle."
music = model.generate(prompt)
sf.write(f"{prompt}.wav", audio, samplerate=16000)
IPython.display.Audio(data=audio, rate=16000)
Installation
git clone https://github.com/AMAAI-Lab/mustango
cd mustango
pip install -r requirements.txt
cd diffusers
pip install -e .
Datasets
The
MusicBench
dataset contains 52k music fragments with a rich music-specific text caption.
Subjective Evaluation by Expert Listeners
Model
Dataset
Pre-trained
Overall Match
↑
Chord Match
↑
Tempo Match
↑
Audio Quality
↑
Musicality
↑
Rhythmic Presence and Stability
↑
Harmony and Consonance
↑
Tango
MusicCaps
✓
4.35
2.75
3.88
3.35
2.83
3.95
3.84
Tango
MusicBench
✓
4.91
3.61
3.86
3.88
3.54
4.01
4.34
Mustango
MusicBench
✓
5.49
5.76
4.98
4.30
4.28
4.65
5.18
Mustango
MusicBench
✗
5.75
6.06
5.11
4.80
4.80
4.75
5.59
Training
We use the
accelerate
package from Hugging Face for multi-gpu training. Run
accelerate config
from terminal and set up your run configuration by the answering the questions asked.
You can now train
Mustango
on the MusicBench dataset using:
The
--model_type
flag allows to choose either Mustango, or Tango to be trained with the same code. However, do note that you also need to change
--unet_model_config
to the relevant config: diffusion_model_config_munet for Mustango; diffusion_model_config for Tango.
The arguments
--uncondition_all
,
--uncondition_single
,
--drop_sentences
control the dropout functions as per Section 5.2 in our paper. The argument of
--random_pick_text_column
allows to randomly pick between two input text prompts - in the case of MusicBench, we pick between ChatGPT rephrased captions and original enhanced MusicCaps prompts, as depicted in Figure 1 in our paper.
Recommended training time from scratch on MusicBench is at least 40 epochs.
mustango huggingface.co is an AI model on huggingface.co that provides mustango's model effect (), which can be used instantly with this declare-lab mustango model. huggingface.co supports a free trial of the mustango model, and also provides paid use of the mustango. Support call mustango model through api, including Node.js, Python, http.
mustango huggingface.co is an online trial and call api platform, which integrates mustango's modeling effects, including api services, and provides a free online trial of mustango, you can try mustango online for free by clicking the link below.
declare-lab mustango online free url in huggingface.co:
mustango is an open source model from GitHub that offers a free installation service, and any user can find mustango on GitHub to install. At the same time, huggingface.co provides the effect of mustango install, users can directly use mustango installed effect in huggingface.co for debugging and trial. It also supports api for free installation.