模型:
facebook/musicgen-large
MusicGen是一个文本到音乐的模型,能够根据文本描述或音频提示生成高质量的音乐样本。它是一个单阶段的自回归Transformer模型,使用32kHz的EnCodec分词器进行训练,采样率为50Hz的4个码本。与现有方法(如MusicLM)不同,MusicGen不需要自监督的语义表示,它可以一次性生成所有4个码本。通过在码本之间引入小的延迟,我们可以并行预测它们,从而每秒只有50个自回归步骤的音频。
MusicGen于 Simple and Controllable Music Generation 年由Jade Copet,Felix Kreuk,Itai Gat,Tal Remez,David Kant,Gabriel Synnaeve,Yossi Adi和Alexandre Défossez发表。
发布了四个检查点:
试试MusicGen吧!
您可以从4.31.0版本开始使用? Transformers库在本地运行MusicGen。
pip install git+https://github.com/huggingface/transformers.git
from transformers import AutoProcessor, MusicgenForConditionalGeneration processor = AutoProcessor.from_pretrained("facebook/musicgen-large") model = MusicgenForConditionalGeneration.from_pretrained("facebook/musicgen-large") 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", ) audio_values = model.generate(**inputs, max_new_tokens=256)
from IPython.display import Audio sampling_rate = model.config.audio_encoder.sampling_rate Audio(audio_values[0].numpy(), rate=sampling_rate)
或者使用第三方库(如scipy)将它们保存为.wav文件:
import scipy sampling_rate = model.config.audio_encoder.sampling_rate scipy.io.wavfile.write("musicgen_out.wav", rate=sampling_rate, data=audio_values[0, 0].numpy())
有关使用? Transformers库进行推理的更多详细信息,请参阅 MusicGen docs 。
您还可以通过原始的 Audiocraft library 在本地运行MusicGen:
pip install git+https://github.com/facebookresearch/audiocraft.git
apt get install ffmpeg
from audiocraft.models import MusicGen from audiocraft.data.audio import audio_write model = MusicGen.get_pretrained("large") model.set_generation_params(duration=8) # generate 8 seconds. descriptions = ["happy rock", "energetic EDM"] wav = model.generate(descriptions) # generates 2 samples. 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月至5月期间进行训练。
模型版本:这是该模型的第1个版本。
模型类型:MusicGen由用于音频分词的EnCodec模型和基于Transformer架构的自回归语言模型组成。该模型有不同的大小:300M、1.5B和3.3B个参数;以及两个变体:用于文本到音乐生成任务的模型和用于以旋律为导向的音乐生成的模型。
更多信息可以在论文[Simple and Controllable Music Generation][ https://arxiv.org/abs/2306.05284] ]中找到。
引用详细信息:
@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 repository 发送,或者通过提交问题来进行。
主要预期用途:MusicGen的主要用途是在基于AI的音乐生成研究中使用,包括:
主要预期用户:该模型的主要预期用户是音频、机器学习和人工智能领域的研究人员,以及希望更好地了解这些模型的业余爱好者。
超出范围的用例:模型在没有进一步风险评估和减轻措施的情况下,不应用于下游应用。模型不应用于故意创建或传播对人们产生敌意或疏远环境的音乐作品。这包括生成人们可以预见到会感到困扰、痛苦或冒犯的音乐;或者传播历史或当前的刻板印象的内容。
模型的性能指标:我们使用以下客观指标来评估模型在标准音乐基准上的性能:
此外,我们还进行了与人类参与者的定性研究,评估模型在以下方面的性能:
有关性能指标和人类研究的更多详细信息,请参阅论文。
决策阈值:不适用。
该模型在 MusicCaps benchmark 和域内保留的评估集上进行了评估,与训练集没有艺术家重叠。
该模型使用以下来源进行训练: Meta Music Initiative Sound Collection 、 Shutterstock music collection 和 Pond5 music collection 。有关训练集和相应预处理的更多详细信息,请参阅论文。
有关详细信息,请参阅论文[Simple and Controllable Music Generation][arxiv]的"实验设置"部分。
数据:用于训练模型的数据源由音乐专业人士创建,并受到与权利持有人的法律协议的约束。该模型是在20K小时的数据上进行训练的,我们认为将模型扩展到更大的数据集可以进一步改善其性能。
减轻措施:通过使用开源的HT-Demucs( Hybrid Transformer for Music Source Separation )方法,我们从数据源中移除了所有人声。因此,该模型无法产生人声。
限制:
偏见:数据源可能缺乏多样性,所有音乐文化在数据集中的代表性也不相等。该模型在各种音乐流派上的表现可能并不相同。模型生成的样本将反映训练数据中的偏见。进一步的工作应包括通过将训练数据扩展到多样性和包容性来实现平衡和公正的文化表达方法。
风险和伤害:模型的偏见和限制可能导致生成的样本被认为具有偏见、不适当或冒犯性。我们相信,提供复现研究和训练新模型的代码将有助于将应用拓展到新的、更具代表性的数据。
用例:用户必须意识到模型的偏见、限制和风险。MusicGen是为了人工智能研究而开发的模型,用于可控的音乐生成。因此,在没有进一步调查和风险缓解措施的情况下,不应将其用于下游应用。