🚀 MusicGen - 立体声 - 中等规模 - 1.5B
MusicGen是一个文本到音乐的模型,能够根据文本描述或音频提示生成高质量的音乐样本。本项目进一步发布了一组支持立体声的模型,这些模型从单声道模型开始进行了20万次更新的微调,训练数据与基础模型相同,能力和局限性也与基础模型一致。
🚀 快速开始
你可以通过以下几种方式体验MusicGen:
- Audiocraft Colab:
- Hugging Face Colab:
- Hugging Face Demo:
✨ 主要特性
- 立体声支持:能够生成具有深度和方向感的立体声音乐。
- 单阶段自回归:不同于现有方法,MusicGen不需要自监督语义表示,且能一次生成所有4个码本。
- 多模式支持:支持文本到音乐以及旋律引导的音乐生成。
📦 安装指南
你可以使用🤗 Transformers库在本地运行MusicGen立体声模型。
- 首先安装🤗 Transformers库 和scipy:
pip install --upgrade pip
pip install --upgrade git+https://github.com/huggingface/transformers.git scipy
💻 使用示例
基础用法
使用Text-to-Audio
(TTA)管道进行推理:
import torch
import soundfile as sf
from transformers import pipeline
synthesiser = pipeline("text-to-audio", "facebook/musicgen-stereo-medium", device="cuda:0", torch_dtype=torch.float16)
music = synthesiser("lo-fi music with a soothing melody", forward_params={"max_new_tokens": 256})
sf.write("musicgen_out.wav", music["audio"][0].T, music["sampling_rate"])
高级用法
使用Transformers建模代码进行推理,实现更精细的控制:
from transformers import AutoProcessor, MusicgenForConditionalGeneration
processor = AutoProcessor.from_pretrained("facebook/musicgen-stereo-medium")
model = MusicgenForConditionalGeneration.from_pretrained("facebook/musicgen-stereo-medium").to("cuda")
inputs = processor(
text=["80s pop track with bassy drums and synth", "90s rock song with loud guitars and heavy drums"],
padding=True,
return_tensors="pt",
).to("cuda")
audio_values = model.generate(**inputs, max_new_tokens=256)
📚 详细文档
模型详情
属性 |
详情 |
开发组织 |
Meta AI的FAIR团队 |
模型日期 |
2023年4月至2023年5月训练 |
模型版本 |
版本1 |
模型类型 |
由用于音频标记化的EnCodec模型和基于Transformer架构的自回归语言模型组成,有不同大小和两种变体 |
参考资料 |
Simple and Controllable Music Generation |
引用详情 |
见文档中的BibTeX引用 |
许可证 |
代码采用MIT许可证,模型权重采用CC - BY - NC 4.0许可证 |
反馈渠道 |
通过Github仓库或提交issue |
预期用途
- 主要用途:基于AI的音乐生成研究,包括探索和理解生成模型的局限性,以及让机器学习爱好者了解生成式AI模型的能力。
- 主要用户:音频、机器学习和人工智能领域的研究人员,以及希望更好理解这些模型的爱好者。
- 非预期用例:在未进行进一步风险评估和缓解的情况下,不应将模型用于下游应用;不应故意使用模型创建或传播会给人带来不良环境的音乐作品。
评估指标
- 客观指标:使用Frechet音频距离、Kullback - Leibler散度和CLAP分数进行评估。
- 主观评估:通过人类参与者进行定性研究,评估音乐样本的整体质量、与文本输入的相关性以及旋律引导生成的音乐对旋律的遵循程度。
评估数据集
模型在MusicCaps基准和一个领域内保留评估集上进行评估,评估集与训练集无艺术家重叠。
训练数据集
模型在授权数据上进行训练,数据来源包括Meta音乐倡议声音集、Shutterstock音乐集和Pond5音乐集。
评估结果
在MusicCaps上发布的模型获得的客观指标如下:
模型 |
Frechet音频距离 |
KLD |
文本一致性 |
色度余弦相似度 |
facebook/musicgen-small |
4.88 |
1.42 |
0.27 |
- |
facebook/musicgen-medium |
5.14 |
1.38 |
0.28 |
- |
facebook/musicgen-large |
5.48 |
1.37 |
0.28 |
- |
facebook/musicgen-melody |
4.93 |
1.41 |
0.27 |
0.44 |
局限性和偏差
- 数据:训练数据由音乐专业人士创建,模型在2万小时的数据上训练,扩大数据集可能会提高模型性能。
- 缓解措施:使用标签和先进的音乐源分离方法去除数据源中的人声。
- 局限性:无法生成逼真的人声;在非英语描述下表现不佳;对不同音乐风格和文化的表现不均;有时会生成无声结尾;难以确定最佳文本描述。
- 偏差:数据源可能缺乏多样性,模型生成的样本会反映训练数据的偏差。
- 风险和危害:模型的偏差和局限性可能导致生成有偏差、不适当或冒犯性的样本。
- 使用建议:用户必须了解模型的偏差、局限性和风险,在未进一步调查和缓解风险的情况下,不应将模型用于下游应用。
引用详情
@misc{copet2023simple,
title={Simple and Controllable Music Generation},
author={Jade Copet and Felix Kreuk and Itai Gat and Tal Remez and David Kant and Gabriel Synnaeve and Yossi Adi and Alexandre Défossez},
year={2023},
eprint={2306.05284},
archivePrefix={arXiv},
primaryClass={cs.SD}
}
许可证
代码采用MIT许可证,模型权重采用CC - BY - NC 4.0许可证。