如何使用Facebook的MusicGen將文本轉(zhuǎn)換成音樂?
譯文譯者 | 布加迪
審校 | 重樓
MusicGen允許任何人只需借助文本提示即可生成原創(chuàng)音樂。本指南逐步介紹如何使用這種創(chuàng)造性的AI模型來改進音樂工作流程。
在創(chuàng)作新歌時,是否遇到過創(chuàng)作障礙?或者您想要一個AI助手來幫助構(gòu)思新的旋律和和聲?Facebook的MusicGen模型讓音樂創(chuàng)意和試驗變得快捷又容易。
不妨看一下:
- MusicGen從文本生成音樂的能力。
- 通過Replicate的API使用MusicGen的逐步說明。
- 借助AIModels.fyi找到相似的音樂作曲模型。
挖掘下MusicGen如何為音樂家、作曲家和任何想要創(chuàng)作獨特的成品音樂的人發(fā)掘新的創(chuàng)作可能性。
借助文本提示生成原創(chuàng)音樂
MusicGen允許您只需通過文本描述情緒、流派、樂器等要素來構(gòu)思音樂創(chuàng)意。下面有幾個創(chuàng)造性的方法,您可以利用文本生成音樂:
- 克服創(chuàng)作障礙——當(dāng)您思路卡住的時候,根據(jù)文字描述想出新的旋律或和聲的想法。
- 實驗和迭代——通過調(diào)整文本提示,輕松嘗試各種變化。
- 探索新的流派——創(chuàng)作自己不太熟悉的音樂風(fēng)格。
- 制作背景音樂——為視頻、播客或游戲等制作自定義的背景音樂。
- 混音旋律——用現(xiàn)有的旋律來調(diào)教模型,以生成不一樣的旋律。
MusicGen提供長達8秒的生產(chǎn)級剪輯,可以選擇.mp3或.wav格式。樣品可以用作鼓舞人心的素材或直接添加到作品中。
MusicGen模型介紹
MusicGen是Facebook的AI研究團隊于2023年創(chuàng)建的。這是一種自動回歸的Transformer模型,拿授權(quán)的音樂數(shù)據(jù)進行訓(xùn)練。
該模型可以生成4個平行的旋律流,代表不同的音樂元素,比如低音、鼓、和聲等。這種結(jié)構(gòu)使它能夠生成流派和風(fēng)格各異的音樂上連貫的作品。
MusicGen提供了幾種不同大小的模型。Replicate上使用的基本模型是“Melody”(旋律),它針對文本生成為音頻進行了優(yōu)化。還有一個更大的模型針對旋律延續(xù)進行了優(yōu)化。
您可以在Facebook Research論文和項目GitHub頁面上了解更多關(guān)于模型架構(gòu)的細節(jié)。
模型的局限性
與所有AI模型一樣,MusicGen也存在一些局限性:
- MusicGen的輸出受提供的提示和旋律的影響。創(chuàng)造性的輸入可以大大地影響已生成作品的質(zhì)量和獨特性。
- 模型的訓(xùn)練數(shù)據(jù)影響其音樂風(fēng)格和輸出。它可能無法完美地復(fù)制每一種音樂流派或風(fēng)格。
- MusicGen生成的音樂可能需要后期處理,才能達到所需的那種完善程度。
了解這些局限性將幫助您在保持期望(或客戶的期望)合理的同時充分利用MusicGen。
了解MusicGen的輸入和輸出
輸入
- model_version:選擇要生成的模型版本(比如“melody”、“large”、“encode-decode”)。
- prompt:提供您想要生成的音樂的描述。
- input_audio:通過提供音頻文件,影響已生成的音樂。
- duration:指定已生成音頻的時長。
- continuation:選擇已生成的音樂是否應(yīng)該延續(xù)輸入音頻的旋律。
- 其他參數(shù)(比如top_k、top_p、temperature等)允許您對輸出進行微調(diào)。
輸出
輸出模式是一個字符串,表示指向已生成的音頻文件的URI。
使用MusicGen模型的逐步指南
在本節(jié)中,我們將詳細地逐步介紹如何有效地使用MusicGen模型以生成音樂作品。每一個步驟都附有特定的代碼片段,并解釋了當(dāng)前發(fā)生的事情。
第1步:安裝Node.js客戶軟件
首先,您需要安裝用于Replicate的Node.js客戶軟件。該客戶軟件將使您能夠與Replicate API進行交互,并運行MusicGen模型。
npm install replicate
這個命令安裝名為“replicate”的必要的Node.js軟件包。
第2步:設(shè)置API令牌
在訪問Replicate API之前,需要將API令牌設(shè)置為環(huán)境變量。這個令牌將驗證您對API的請求。
export REPLICATE_API_TOKEN=your_api_token
將your_api_token換成實際的Replicate API令牌。
第3步:運行模型,并生成音樂
現(xiàn)在,不妨運行MusicGen模型,根據(jù)指定的輸入生成音樂作品。我們將使用Node.js客戶軟件發(fā)出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軟件包中導(dǎo)入Replicate類。
- 我們使用API令牌創(chuàng)建了Replicate客戶軟件的實例。
- 我們?yōu)橐魳?/span>創(chuàng)作定義了modelVersion、prompt和duration。
- 我們使用replication .run()方法運行帶指定輸入的MusicGen模型。
- 已生成的音頻URI被記錄到控制臺。
第4步:瀏覽已生成的音頻
運行模型后,您將收到一個指向已生成的音樂作品的音頻URI。您可以使用這個URI訪問和瀏覽已生成的音頻。
就是這樣!至此,您已經(jīng)成功地利用MusicGen模型基于輸入創(chuàng)建了一個音樂作品。
結(jié)論
恭喜!您已經(jīng)成功地完成了使用MusicGen模型進行音樂創(chuàng)作的逐步指南。如果遵循這些步驟,您可以利用AI的強大功能來生成獨特而有創(chuàng)意的音樂作品。在您繼續(xù)探究AI驅(qū)動的音樂世界時,請不要猶豫,嘗試不同的輸入和參數(shù),以探索廣泛的音樂可能性。如果您有任何問題或需要進一步的幫助,請隨時聯(lián)系,或參閱本指南中提到的資源。祝使用AI快樂地創(chuàng)作音樂!
原文標(biāo)題:How to turn text into music with Facebook's MusicGen,作者:Mike Young