如何使用Facebook的MusicGen將文本轉(zhuǎn)換成音樂(lè)?
譯文譯者 | 布加迪
審校 | 重樓
MusicGen允許任何人只需借助文本提示即可生成原創(chuàng)音樂(lè)。本指南逐步介紹如何使用這種創(chuàng)造性的AI模型來(lái)改進(jìn)音樂(lè)工作流程。

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















 
 
 











 
 
 
 