推理: true
标签:
- 音乐生成
许可证: cc-by-nc-4.0
任务标签: 文本转音频
小部件示例:
- 文本: "带有80年代嘻哈风情的放克浩室音乐"
示例标题: 提示词1
- 文本: "融合低保真、弛放电子与慢节奏元素的舒缓曲目"
示例标题: 提示词2
- 文本: "适合播客开场使用的抓耳节奏"
示例标题: 提示词3
MusicGen - 中等规模 - 15亿参数版
MusicGen是一款基于文本描述或音频提示生成高质量音乐样本的文本转音乐模型。该单阶段自回归Transformer模型采用32kHz EnCodec分词器训练,通过4个50Hz采样的码本实现。与MusicLM等现有方法不同,MusicGen无需自监督语义表征,可一次性生成全部4个码本。通过引入码本间微小延迟,我们实现了并行预测,使每秒钟音频仅需50个自回归步骤。
本模型由Jade Copet、Felix Kreuk等研究者在论文《简易可控的音乐生成》中发布(arXiv:2306.05284)。
提供四个预训练版本:
使用示例
亲身体验MusicGen:
-
Audiocraft Colab笔记本:

-
Hugging Face Colab笔记本:

-
Hugging Face演示空间:

🤗 Transformers使用指南
自4.31.0版本起,可通过🤗 Transformers库本地运行:
- 安装依赖库:
pip install --upgrade pip
pip install --upgrade transformers scipy
- 通过文本转音频管道运行:
from transformers import pipeline
import scipy
synthesizer = pipeline("text-to-audio", "facebook/musicgen-medium")
music = synthesizer("带有舒缓旋律的低保真音乐", forward_params={"do_sample": True})
scipy.io.wavfile.write("output.wav", music["sampling_rate"], music["audio"])
- 或通过建模代码精细控制:
from transformers import AutoProcessor, MusicgenForConditionalGeneration
processor = AutoProcessor.from_pretrained("facebook/musicgen-medium")
model = MusicgenForConditionalGeneration.from_pretrained("facebook/musicgen-medium")
inputs = processor(
text=["80年代流行曲风配厚重鼓点与合成器", "90年代摇滚曲风配强烈吉他声与重型鼓点"],
padding=True,
return_tensors="pt",
)
audio_output = model.generate(**inputs, max_new_tokens=256)
模型详情
开发机构: Meta AI FAIR团队
训练时间: 2023年4月至5月
版本: v1
类型: 包含音频标记化的EnCodec模型和基于Transformer的自回归语言模型,提供3亿/15亿/33亿参数版本及文本引导/旋律引导两种变体
引用格式:
@misc{copet2023simple,
title={Simple and Controllable Music Generation},
author={Jade Copet et al.},
year={2023},
eprint={2306.05284},
archivePrefix={arXiv},
primaryClass={cs.SD}
}
评估指标
模型 |
弗雷歇音频距离 |
KL散度 |
文本一致性 |
色度余弦相似度 |
小型版 |
4.88 |
1.42 |
0.27 |
- |
中等版 |
5.14 |
1.38 |
0.28 |
- |
大型版 |
5.48 |
1.37 |
0.28 |
- |
旋律版 |
4.93 |
1.41 |
0.27 |
0.44 |
局限性
- 无法生成逼真人声
- 仅支持英文提示词效果最佳
- 对不同音乐风格/文化的表现不均
- 可能出现歌曲尾段静音现象
- 训练数据存在文化多样性不足的风险
注:模型权重采用CC-BY-NC 4.0许可,建议用于AI音乐生成研究,商业应用需进一步风险评估。