模型简介
模型特点
模型能力
使用案例
🚀 MusicGen - Melody - Large 3.3B
MusicGen是一个文本到音乐的模型,能够根据文本描述或音频提示生成高质量的音乐样本。它是一个单阶段自回归Transformer模型,基于32kHz的EnCodec分词器进行训练,该分词器有4个码本,采样频率为50Hz。与现有的方法(如MusicLM)不同,MusicGen不需要自监督的语义表示,并且可以一次性生成所有4个码本。通过在码本之间引入小的延迟,我们证明可以并行预测它们,因此每秒音频仅需50个自回归步骤。
🚀 快速开始
你可以亲自尝试使用MusicGen:
你也可以在本地运行MusicGen:
- 首先安装
audiocraft
库
pip install git+https://github.com/facebookresearch/audiocraft.git
- 确保安装了
ffmpeg
:
apt get install ffmpeg
- 运行以下Python代码:
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) # generate 8 seconds.
descriptions = ['happy rock', 'energetic EDM', 'sad jazz']
melody, sr = torchaudio.load('./assets/bach.mp3')
# generates using the melody from the given audio and the provided descriptions.
wav = model.generate_with_chroma(descriptions, melody[None].expand(3, -1, -1), sr)
for idx, one_wav in enumerate(wav):
# Will save under {idx}.wav, with loudness normalization at -14 db LUFS.
audio_write(f'{idx}', one_wav.cpu(), model.sample_rate, strategy="loudness")
✨ 主要特性
- 高效生成:MusicGen是单阶段自回归Transformer模型,无需自监督语义表示,能一次性生成所有4个码本,通过码本间小延迟实现并行预测,每秒音频仅需50个自回归步骤。
- 多模式支持:支持根据文本描述或音频提示生成音乐,提供文本到音乐以及文本+旋律到音乐的生成模式。
- 丰富预训练模型:提供10个预训练模型,涵盖不同规模和功能,如
facebook/musicgen-small
、facebook/musicgen-melody
等。
📦 安装指南
pip install git+https://github.com/facebookresearch/audiocraft.git
- 安装
ffmpeg
:
apt get install ffmpeg
💻 使用示例
基础用法
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) # generate 8 seconds.
descriptions = ['happy rock', 'energetic EDM', 'sad jazz']
melody, sr = torchaudio.load('./assets/bach.mp3')
# generates using the melody from the given audio and the provided descriptions.
wav = model.generate_with_chroma(descriptions, melody[None].expand(3, -1, -1), sr)
for idx, one_wav in enumerate(wav):
# Will save under {idx}.wav, with loudness normalization at -14 db LUFS.
audio_write(f'{idx}', one_wav.cpu(), model.sample_rate, strategy="loudness")
📚 详细文档
模型详情
属性 | 详情 |
---|---|
开发组织 | Meta AI的FAIR团队 |
模型日期 | 2023年4月至2023年5月训练 |
模型版本 | 版本1 |
模型类型 | 由用于音频分词的EnCodec模型和基于Transformer架构的自回归语言模型组成,有300M、1.5B和3.3B参数等不同规模,以及文本到音乐生成和旋律引导音乐生成两种变体 |
参考资料 | 更多信息可参考论文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许可 | | 反馈渠道 | 可通过项目的Github仓库发送问题或评论,或提交issue |
预期用途
- 主要用途:MusicGen主要用于基于人工智能的音乐生成研究,包括探索和理解生成模型的局限性以改进科学现状,以及供机器学习爱好者通过文本或旋律引导生成音乐来了解生成式AI模型的当前能力。
- 预期用户:主要面向音频、机器学习和人工智能领域的研究人员,以及希望更好理解这些模型的业余爱好者。
- 非预期用例:在未进行进一步风险评估和缓解的情况下,该模型不应用于下游应用。不得用于故意创建或传播会给人带来敌对或疏离环境的音乐作品,包括生成可能令人不安、痛苦或冒犯的音乐,或传播历史或当前刻板印象的内容。
评估指标
- 模型性能指标:使用以下客观指标在标准音乐基准上评估模型:
- 基于预训练音频分类器(VGGish)提取的特征计算的Frechet音频距离。
- 基于预训练音频分类器(PaSST)提取的标签分布计算的Kullback - Leibler散度。
- 基于预训练CLAP模型提取的音频嵌入和文本嵌入之间的CLAP分数。
- 此外,还进行了有人类参与者的定性研究,从以下方面评估模型性能:音乐样本的整体质量、与提供的文本输入的相关性、旋律引导音乐生成中对旋律的遵循程度。
- 决策阈值:不适用。
评估数据集
模型在MusicCaps基准和一个领域内保留评估集上进行评估,评估集与训练集无艺术家重叠。
训练数据集
模型使用以下来源的许可数据进行训练:Meta Music Initiative Sound Collection、Shutterstock音乐集和Pond5音乐集。更多关于训练集和相应预处理的详细信息请参考论文。
评估结果
以下是发布的模型在MusicCaps上获得的客观指标。注意,对于公开发布的模型,所有数据集都经过了最先进的音乐源分离方法处理,即使用开源的Hybrid Transformer for Music Source Separation(HT - Demucs),以仅保留乐器部分。这解释了与论文中使用的模型在客观指标上的差异。
模型 | 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 |
更多信息可在论文Simple and Controllable Music Generation的结果部分找到。
局限性和偏差
- 数据方面:用于训练模型的数据源由音乐专业人士创建,并与版权持有者签订了法律协议。模型在20000小时的数据上进行训练,我们认为在更大的数据集上扩展模型可以进一步提高其性能。
- 缓解措施:使用相应标签并结合最先进的音乐源分离方法(即开源的Hybrid Transformer for Music Source Separation(HT - Demucs))从数据源中去除了人声。
- 局限性:
- 模型无法生成逼真的人声。
- 模型使用英文描述进行训练,在其他语言中的表现不佳。
- 模型在不同音乐风格和文化中的表现不均。
- 模型有时会生成歌曲结尾并陷入沉默。
- 有时难以确定哪种文本描述能提供最佳生成效果,可能需要进行提示工程以获得满意的结果。
- 偏差:数据源可能缺乏多样性,并非所有音乐文化在数据集中都得到了平等的体现。模型在各种音乐流派上的表现可能不均,生成的样本会反映训练数据中的偏差。对该模型的进一步研究应包括实现文化平衡和公正表示的方法,例如扩展训练数据以使其更加多样化和包容。
- 风险和危害:模型的偏差和局限性可能导致生成被认为有偏差、不适当或冒犯性的样本。我们认为提供重现研究和训练新模型的代码将有助于将应用扩展到更新和更具代表性的数据上。
- 使用建议:用户必须了解模型的偏差、局限性和风险。MusicGen是为可控音乐生成的人工智能研究而开发的模型,因此在未进行进一步调查和风险缓解的情况下,不应将其用于下游应用。
🔧 技术细节
MusicGen是一个文本到音乐的模型,能够根据文本描述或音频提示生成高质量的音乐样本。它是一个单阶段自回归Transformer模型,基于32kHz的EnCodec分词器进行训练,该分词器有4个码本,采样频率为50Hz。与现有的方法(如MusicLM)不同,MusicGen不需要自监督的语义表示,并且可以一次性生成所有4个码本。通过在码本之间引入小的延迟,我们证明可以并行预测它们,因此每秒音频仅需50个自回归步骤。
📄 许可证
代码遵循MIT许可,模型权重遵循CC - BY - NC 4.0许可。







