认识Mustango,这是多模态大语言模型领域中用于可控音乐生成的激动人心的新成员。Mustango利用潜在扩散模型(LDM)、Flan-T5和音乐特征来实现魔法!
🔥 在Replicate和HuggingFace上提供实时演示。
快速入门指南
从文本提示生成音乐:
import IPython
import soundfile as sf
from mustango import Mustango
model = Mustango("declare-lab/mustango")
prompt = "这是一首新世纪音乐。有一支长笛演奏主旋律,包含大量断音。节奏背景由中速电子鼓点和遍布整个音域的打击乐元素组成。整首曲子有一种俏皮的氛围。这首曲子可以用作儿童电视节目的配乐或广告歌。"
music = model.generate(prompt)
sf.write(f"{prompt}.wav", audio, samplerate=16000)
IPython.display.Audio(data=music, rate=16000)
安装
git clone https://github.com/AMAAI-Lab/mustango
cd mustango
pip install -r requirements.txt
cd diffusers
pip install -e .
数据集
MusicBench数据集包含52k个音乐片段,每个片段都有丰富的音乐专用文本说明。
专家听众主观评估
模型 | 数据集 | 预训练 | 整体匹配度 ↑ | 和弦匹配度 ↑ | 速度匹配度 ↑ | 音频质量 ↑ | 音乐性 ↑ | 节奏存在感和稳定性 ↑ | 和声与协和性 ↑ |
---|---|---|---|---|---|---|---|---|---|
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 |
训练
我们使用Hugging Face的accelerate
包进行多GPU训练。在终端运行accelerate config
,通过回答问题来设置运行配置。
现在你可以使用以下命令在MusicBench数据集上训练Mustango:
accelerate launch train.py \
--text_encoder_name="google/flan-t5-large" \
--scheduler_name="stabilityai/stable-diffusion-2-1" \
--unet_model_config="configs/diffusion_model_config_munet.json" \
--model_type Mustango --freeze_text_encoder --uncondition_all --uncondition_single \
--drop_sentences --random_pick_text_column --snr_gamma 5 \
--model_type
标志允许选择训练Mustango或Tango,使用相同的代码。但请注意,你还需要将--unet_model_config
更改为相关配置:Mustango使用diffusion_model_config_munet;Tango使用diffusion_model_config。
参数--uncondition_all
、--uncondition_single
、--drop_sentences
控制论文第5.2节中的dropout函数。--random_pick_text_column
参数允许在两个输入文本提示之间随机选择 - 对于MusicBench,我们在ChatGPT重新表述的说明和原始增强的MusicCaps提示之间选择,如论文图1所示。
建议在MusicBench上从头开始训练至少40个周期。
模型库
我们发布了以下模型:
Mustango预训练:https://huggingface.co/declare-lab/mustango-pretrained
Mustango:https://huggingface.co/declare-lab/mustango
引用
如果您觉得我们的工作有用,请考虑引用以下文章:
@misc{melechovsky2023mustango,
title={Mustango: Toward Controllable Text-to-Music Generation},
author={Jan Melechovsky and Zixun Guo and Deepanway Ghosal and Navonil Majumder and Dorien Herremans and Soujanya Poria},
year={2023},
eprint={2311.08355},
archivePrefix={arXiv},
}