🚀 MusicGen - 立体声 - 旋律 - 大型 33 亿参数模型
MusicGen 是一个文本到音乐的模型,能够根据文本描述或音频提示生成高质量的音乐样本。该模型基于Transformer架构,无需自监督语义表示,可一次性生成所有 4 个码本,具有高效、可控的特点。
🚀 快速开始
你可以通过以下几种方式体验 MusicGen:
-
- 你也可以在本地运行 MusicGen:
1. 首先安装 [`audiocraft` 库](https://github.com/facebookresearch/audiocraft)
```
pip install git+https://github.com/facebookresearch/audiocraft.git
```
2. 确保安装了 [`ffmpeg`](https://ffmpeg.org/download.html):
```
apt get install ffmpeg
```
3. 运行以下 Python 代码:
```py
import torchaudio
from audiocraft.models import MusicGen
from audiocraft.data.audio import audio_write
model = MusicGen.get_pretrained('melody')
model.set_generation_params(duration=8) # 生成 8 秒的音乐。
descriptions = ['欢快的摇滚', '充满活力的电子舞曲', '悲伤的爵士乐']
melody, sr = torchaudio.load('./assets/bach.mp3')
使用给定音频中的旋律和提供的描述进行生成。
wav = model.generate_with_chroma(descriptions, melody[None].expand(3, -1, -1), sr)
for idx, one_wav in enumerate(wav):
# 将以 -14 db LUFS 的响度标准化保存为 {idx}.wav。
audio_write(f'{idx}', one_wav.cpu(), model.sample_rate, strategy="loudness")
## ✨ 主要特性
- **立体声支持**:我们进一步发布了一组支持立体声的模型,这些模型是在单声道模型的基础上进行了 200k 次更新的微调。
- **单阶段生成**:与现有方法不同,MusicGen 无需自监督语义表示,可一次性生成所有 4 个码本。
- **多模式支持**:提供文本到音乐以及文本+旋律到音乐两种生成模式。
## 📦 安装指南
### 安装 `audiocraft` 库
pip install git+https://github.com/facebookresearch/audiocraft.git
### 安装 `ffmpeg`
apt get install ffmpeg
## 💻 使用示例
### 基础用法
```py
import torchaudio
from audiocraft.models import MusicGen
from audiocraft.data.audio import audio_write
model = MusicGen.get_pretrained('melody')
model.set_generation_params(duration=8) # 生成 8 秒的音乐。
descriptions = ['欢快的摇滚', '充满活力的电子舞曲', '悲伤的爵士乐']
melody, sr = torchaudio.load('./assets/bach.mp3')
# 使用给定音频中的旋律和提供的描述进行生成。
wav = model.generate_with_chroma(descriptions, melody[None].expand(3, -1, -1), sr)
for idx, one_wav in enumerate(wav):
# 将以 -14 db LUFS 的响度标准化保存为 {idx}.wav。
audio_write(f'{idx}', one_wav.cpu(), model.sample_rate, strategy="loudness")
📚 详细文档
模型详情
属性 |
详情 |
开发组织 |
Meta AI 的 FAIR 团队 |
模型日期 |
2023 年 4 月至 2023 年 5 月 |
模型版本 |
版本 1 |
模型类型 |
MusicGen 由用于音频标记化的 EnCodec 模型和基于 Transformer 架构的自回归语言模型组成,用于音乐建模。模型有不同的大小:3 亿、15 亿和 33 亿参数;有两种变体:用于文本到音乐生成任务的模型和用于旋律引导音乐生成的模型。 |
更多信息资源 |
更多信息可在论文 Simple and Controllable Music Generation 中找到。 |
引用详情 |
@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 许可证发布。 |
问题反馈渠道 |
关于 MusicGen 的问题和评论可以通过项目的 Github 仓库 发送,或通过创建问题反馈。 |
预期用途
- 主要预期用途:MusicGen 的主要用途是基于人工智能的音乐生成研究,包括探索和理解生成模型的局限性以改进科学现状,以及让机器学习爱好者通过文本或旋律引导生成音乐来了解生成式人工智能模型的当前能力。
- 主要预期用户:该模型的主要预期用户是音频、机器学习和人工智能领域的研究人员,以及希望更好地理解这些模型的业余爱好者。
- 超出范围的用例:在没有进一步的风险评估和缓解措施的情况下,该模型不应用于下游应用。该模型不应被用于故意创建或传播会给人们造成敌对或疏离环境的音乐作品。
评估指标
- 模型性能指标:使用以下客观指标在标准音乐基准上评估模型:基于预训练音频分类器(VGGish)提取的特征计算的 Fréchet 音频距离;基于预训练音频分类器(PaSST)提取的标签分布计算的 Kullback-Leibler 散度;基于预训练 CLAP 模型提取的音频嵌入和文本嵌入计算的 CLAP 分数。此外,还通过人类参与者进行定性研究,从音乐样本的整体质量、与提供的文本输入的相关性、旋律引导音乐生成中对旋律的遵循程度等方面评估模型性能。
- 决策阈值:不适用。
评估数据集
模型在 MusicCaps 基准 和一个领域内保留的评估集上进行了评估,评估集与训练集没有艺术家重叠。
训练数据集
模型在许可数据上进行训练,数据来源包括 Meta 音乐倡议声音库、Shutterstock 音乐库 和 Pond5 音乐库。
评估结果
以下是发布的模型在 MusicCaps 上获得的客观指标。请注意,对于公开发布的模型,所有数据集都经过了最先进的音乐源分离方法处理,即使用开源的 混合变压器音乐源分离(HT-Demucs),以仅保留乐器部分。
模型 |
Fréchet 音频距离 |
Kullback-Leibler 散度 |
文本一致性 |
色度余弦相似度 |
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 |
局限性和偏差
- 数据方面:用于训练模型的数据源由音乐专业人士创建,并与权利持有者签订了法律协议。模型在 20000 小时的数据上进行训练,扩大数据集规模可能会进一步提高模型性能。
- 缓解措施:使用相应标签并结合最先进的音乐源分离方法(开源的 混合变压器音乐源分离,即 HT-Demucs)从数据源中去除了人声。
- 局限性:模型无法生成逼真的人声;模型使用英文描述进行训练,在其他语言中的表现不佳;模型在不同音乐风格和文化中的表现不均;模型有时会生成歌曲结尾并陷入沉默;有时难以确定哪种文本描述能提供最佳生成效果,可能需要进行提示工程以获得满意结果。
- 偏差:数据源可能缺乏多样性,所有音乐文化在数据集中的代表性不均。模型在各种音乐流派中的表现可能不同,生成的样本会反映训练数据中的偏差。进一步的工作应包括采用平衡和公正的文化表示方法,例如扩大训练数据以使其更加多样化和包容。
- 风险和危害:模型的偏差和局限性可能导致生成被认为有偏差、不适当或冒犯性的样本。提供代码以重现研究和训练新模型有助于将应用扩展到更新和更具代表性的数据。
- 使用场景:用户必须了解模型的偏差、局限性和风险。MusicGen 是为可控音乐生成的人工智能研究而开发的模型,在没有进一步调查和风险缓解的情况下,不应将其用于下游应用。
📄 许可证
代码以 MIT 许可证发布,模型权重以 CC-BY-NC 4.0 许可证发布。