如何使用Facebook的MusicGen將文本轉換成音樂?
譯文譯者 | 布加迪
審校 | 重樓
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