f
facebook/musicgen-melody
模型介绍文件和版本分析
下载使用量0

MusicGen - Melody - 1.5B

Audiocraft 提供了 MusicGen 的代码与模型,这是一个简单可控的音乐生成模型。 MusicGen 采用单阶段自回归 Transformer 架构,基于 32kHz EnCodec 分词器进行训练,使用 4 个码本并以 50 Hz 频率采样。 与 MusicLM 等现有方法不同,MusicGen 无需自监督语义表征即可一次性生成全部 4 个码本。 通过在码本间引入微小延迟,我们实现了并行预测,每秒音频仅需 50 个自回归步骤。

MusicGen 由 Jade Copet, Felix Kreuk, Itai Gat, Tal Remez, David Kant, Gabriel Synnaeve, Yossi Adi, Alexandre Défossez 联合发表于论文《简单可控的音乐生成》。

本次发布包含四个预训练模型:

  • small(小规模版)
  • medium(中规模版)
  • large(大规模版)
  • melody(旋律专用版,即本模型)

示例体验

立即尝试 MusicGen!

  • 在 Colab 中打开
  • 在 HuggingFace 中打开
  • 您也可以在本地运行 MusicGen:
  1. 首先安装 audiocraft 库
pip install git+https://github.com/facebookresearch/audiocraft.git
  1. 请确保已安装 ffmpeg:
apt get install ffmpeg
  1. 运行以下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")

模型详情

开发机构: Meta AI 的 FAIR 团队。

模型训练时间: MusicGen 于 2023 年 4 月至 2023 年 5 月期间完成训练。

模型版本: 此为模型的初代版本(v1)。

模型类型: MusicGen 包含用于音频标记化的 EnCodec 模型,以及基于 Transformer 架构的自回归语言模型用于音乐建模。该模型提供三种参数量规格:300M、1.5B 和 3.3B;并具备两种变体:专为文本到音乐生成任务训练的模型,以及支持旋律引导音乐生成的模型。

论文与资源: 更多详细信息请参阅论文《简单可控的音乐生成》。

引用说明:

@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 代码库提交,或通过创建 issue 进行反馈。

预期用途

主要用途: MusicGen 主要用于基于人工智能的音乐生成研究,包括:

  • 学术研究活动,例如探索生成模型的局限性以推动科学进步
  • 通过文本或旋律引导生成音乐,帮助机器学习爱好者理解当前生成式 AI 模型的能力边界

目标用户群体: 主要面向音频、机器学习与人工智能领域的研究者,以及希望深入理解此类模型的业余爱好者。

非适用场景: 未经风险评估和风险控制措施完善前,本模型不得用于下游应用场景。禁止使用本模型故意创作或传播制造敌对氛围或使人疏离的音乐作品,包括生成可预见的令人不安、痛苦或冒犯性的音乐内容,以及传播历史或当代刻板印象的内容。

评估指标

模型性能度量: 我们采用以下客观指标在标准音乐基准上评估模型:

  • 基于预训练音频分类器(VGGish)特征计算的弗雷歇音频距离
  • 基于预训练音频分类器(PaSST)标签分布计算的KL散度
  • 基于预训练 CLAP 模型提取的音频嵌入与文本嵌入计算的CLAP分数

此外,我们通过人工参与的定性研究,从以下维度评估模型表现:

  • 音乐样本的整体质量
  • 生成内容与文本输入的相关性
  • 旋律引导生成中对原旋律的遵循程度

性能度量与人工研究的详细说明请参阅论文原文。

决策阈值: 不适用。

评估数据集

本模型在 MusicCaps 基准数据集 及领域内预留评估集上进行评估,确保评估集艺术家与训练集无重合。

训练数据集

模型基于授权数据训练,数据来源包括:Meta音乐计划音效集、Shutterstock音乐库 及 Pond5音乐库。关于训练集详情及相应预处理方法请参阅论文。

评估结果

下表为发布模型在MusicCaps数据集上获得的客观指标。需注意,对于公开发布的模型,我们采用先进音乐源分离技术——即开源项目混合变换器音乐源分离模型(HT-Demucs)对全部数据集进行处理,仅保留器乐部分。这与论文中使用的模型客观指标存在差异。

模型弗雷谢音频距离KL散度文本一致性色度余弦相似度
facebook/musicgen-small4.881.420.27-
facebook/musicgen-medium5.141.380.28-
facebook/musicgen-large5.481.370.28-
facebook/musicgen-melody4.931.410.270.44

更多信息请参阅论文《简单可控的音乐生成》的结果章节。

局限性与偏差

数据: 训练数据源自音乐专业人士创作且与权利人签订合法协议。模型基于2万小时数据训练,我们相信扩大数据集规模可进一步提升模型性能。

缓解措施: 通过标签筛选移除声乐数据,并采用先进音乐源分离技术——即开源项目混合变换器音乐源分离模型(HT-Demucs)进行处理。

局限性:

  • 模型无法生成逼真的人声
  • 仅支持英文描述文本,其他语言效果受限
  • 对不同音乐风格与文化背景的表现存在差异
  • 有时会生成歌曲结尾片段并渐弱至静音
  • 最佳文本描述格式难以确定,可能需要提示工程优化结果

偏差: 数据源多样性可能存在不足,未能均衡体现所有音乐文化。模型对不同音乐类型的表现存在差异,生成样本会反映训练数据中的偏差。后续工作应包含文化平衡表征方法,如扩展训练数据以实现多样性与包容性。

风险与危害: 模型的偏差与局限性可能导致生成具有偏见、不当或冒犯性的内容。我们相信开源研究代码与模型训练方案将有助于拓展至更具代表性的数据应用。

使用场景: 用户必须充分认知模型的偏差、局限性与风险。MusicGen是专为可控音乐生成人工智能研究开发的模型,未经风险评估与缓解措施研究,不应直接用于下游应用。