译者 | 布加迪
审校 | 重楼
MusicGen允许任何人只需借助文本提示即可生成原创音乐。本指南逐步介绍如何使用这种创造性的AI模型来改进音乐工作流程。
在创作新歌时,是否遇到过创作障碍?或者您想要一个AI助手来帮助构思新的旋律和和声?Facebook的MusicGen模型让音乐创意和试验变得快捷又容易。
不妨看一下:
- MusicGen从文本生成音乐的能力。
- 通过Replicate的API使用MusicGen的逐步说明。
- 借助AIModels.fyi找到相似的音乐作曲模型。
挖掘下MusicGen如何为音乐家、作曲家和任何想要创作独特的成品音乐的人发掘新的创作可能性。
借助文本提示生成原创音乐
MusicGen允许您只需通过文本描述情绪、流派、乐器等要素来构思音乐创意。下面有几个创造性的方法,您可以利用文本生成音乐:
- 克服创作障碍——当您思路卡住的时候,根据文字描述想出新的旋律或和声的想法。
- 实验和迭代——通过调整文本提示,轻松尝试各种变化。
- 探索新的流派——创作自己不太熟悉的音乐风格。
- 制作背景音乐——为视频、播客或游戏等制作自定义的背景音乐。
- 混音旋律——用现有的旋律来调教模型,以生成不一样的旋律。
MusicGen提供长达8秒的生产级剪辑,可以选择.mp3或.wav格式。样品可以用作鼓舞人心的素材或直接添加到作品中。
MusicGen模型介绍
MusicGen是Facebook的AI研究团队于2023年创建的。这是一种自动回归的Transformer模型,拿授权的音乐数据进行训练。
该模型可以生成4个平行的旋律流,代表不同的音乐元素,比如低音、鼓、和声等。这种结构使它能够生成流派和风格各异的音乐上连贯的作品。
MusicGen提供了几种不同大小的模型。Replicate上使用的基本模型是“Melody”(旋律),它针对文本生成为音频进行了优化。还有一个更大的模型针对旋律延续进行了优化。
您可以在Facebook Research论文和项目GitHub页面上了解更多关于模型架构的细节。
模型的局限性
与所有AI模型一样,MusicGen也存在一些局限性:
- MusicGen的输出受提供的提示和旋律的影响。创造性的输入可以大大地影响已生成作品的质量和独特性。
- 模型的训练数据影响其音乐风格和输出。它可能无法完美地复制每一种音乐流派或风格。
- MusicGen生成的音乐可能需要后期处理,才能达到所需的那种完善程度。
了解这些局限性将帮助您在保持期望(或客户的期望)合理的同时充分利用MusicGen。
了解MusicGen的输入和输出
输入
- model_version:选择要生成的模型版本(比如“melody”、“large”、“encode-decode”)。
- prompt:提供您想要生成的音乐的描述。
- input_audio:通过提供音频文件,影响已生成的音乐。
- duration:指定已生成音频的时长。
- continuation:选择已生成的音乐是否应该延续输入音频的旋律。
- 其他参数(比如top_k、top_p、temperature等)允许您对输出进行微调。
输出
输出模式是一个字符串,表示指向已生成的音频文件的URI。
使用MusicGen模型的逐步指南
在本节中,我们将详细地逐步介绍如何有效地使用MusicGen模型以生成音乐作品。每一个步骤都附有特定的代码片段,并解释了当前发生的事情。
第1步:安装Node.js客户软件
首先,您需要安装用于Replicate的Node.js客户软件。该客户软件将使您能够与Replicate API进行交互,并运行MusicGen模型。
npm install replicate
这个命令安装名为“replicate”的必要的Node.js软件包。
第2步:设置API令牌
在访问Replicate API之前,需要将API令牌设置为环境变量。这个令牌将验证您对API的请求。
export REPLICATE_API_TOKEN=your_api_token
将your_api_token换成实际的Replicate API令牌。
第3步:运行模型,并生成音乐
现在,不妨运行MusicGen模型,根据指定的输入生成音乐作品。我们将使用Node.js客户软件发出API请求。
import Replicate from "replicate";
// Create a Replicate client instance
const replicate = new Replicate({
auth: process.env.REPLICATE_API_TOKEN,
});
// Define input parameters for the model
const modelVersion = "melody";
const prompt = "Expressive piano melody";
const duration = 10; // Duration of the generated audio in seconds
// Run the MusicGen model
const output = await replicate.run(
"facebookresearch/musicgen:7a76a8258b23fae65c5a22debb8841d1d7e816b75c2f24218cd2bd8573787906",
{
input: {
model_version: modelVersion,
prompt: prompt,
duration: duration,
// Other input parameters here
},
}
);
console.log("Generated audio URI:", output);
在这个代码片段中:
- 我们从安装的Node.js软件包中导入Replicate类。
- 我们使用API令牌创建了Replicate客户软件的实例。
- 我们为音乐创作定义了modelVersion、prompt和duration。
- 我们使用replication .run()方法运行带指定输入的MusicGen模型。
- 已生成的音频URI被记录到控制台。
第4步:浏览已生成的音频
运行模型后,您将收到一个指向已生成的音乐作品的音频URI。您可以使用这个URI访问和浏览已生成的音频。
就是这样!至此,您已经成功地利用MusicGen模型基于输入创建了一个音乐作品。
结论
恭喜!您已经成功地完成了使用MusicGen模型进行音乐创作的逐步指南。如果遵循这些步骤,您可以利用AI的强大功能来生成独特而有创意的音乐作品。在您继续探究AI驱动的音乐世界时,请不要犹豫,尝试不同的输入和参数,以探索广泛的音乐可能性。如果您有任何问题或需要进一步的帮助,请随时联系,或参阅本指南中提到的资源。祝使用AI快乐地创作音乐!
原文标题:How to turn text into music with Facebook's MusicGen,作者:Mike Young