模型概述
模型特點
模型能力
使用案例
🚀 MusicGen - Melody - Large 3.3B
MusicGen是一個文本到音樂的模型,能夠根據文本描述或音頻提示生成高質量的音樂樣本。它是一個單階段自迴歸Transformer模型,基於32kHz的EnCodec分詞器進行訓練,該分詞器有4個碼本,採樣頻率為50Hz。與現有的方法(如MusicLM)不同,MusicGen不需要自監督的語義表示,並且可以一次性生成所有4個碼本。通過在碼本之間引入小的延遲,我們證明可以並行預測它們,因此每秒音頻僅需50個自迴歸步驟。
🚀 快速開始
你可以親自嘗試使用MusicGen:
你也可以在本地運行MusicGen:
- 首先安裝
audiocraft
庫
pip install git+https://github.com/facebookresearch/audiocraft.git
- 確保安裝了
ffmpeg
:
apt get install ffmpeg
- 運行以下Python代碼:
import torchaudio
from audiocraft.models import MusicGen
from audiocraft.data.audio import audio_write
model = MusicGen.get_pretrained('melody')
model.set_generation_params(duration=8) # generate 8 seconds.
descriptions = ['happy rock', 'energetic EDM', 'sad jazz']
melody, sr = torchaudio.load('./assets/bach.mp3')
# generates using the melody from the given audio and the provided descriptions.
wav = model.generate_with_chroma(descriptions, melody[None].expand(3, -1, -1), sr)
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")
✨ 主要特性
- 高效生成:MusicGen是單階段自迴歸Transformer模型,無需自監督語義表示,能一次性生成所有4個碼本,通過碼本間小延遲實現並行預測,每秒音頻僅需50個自迴歸步驟。
- 多模式支持:支持根據文本描述或音頻提示生成音樂,提供文本到音樂以及文本+旋律到音樂的生成模式。
- 豐富預訓練模型:提供10個預訓練模型,涵蓋不同規模和功能,如
facebook/musicgen-small
、facebook/musicgen-melody
等。
📦 安裝指南
pip install git+https://github.com/facebookresearch/audiocraft.git
- 安裝
ffmpeg
:
apt get install ffmpeg
💻 使用示例
基礎用法
import torchaudio
from audiocraft.models import MusicGen
from audiocraft.data.audio import audio_write
model = MusicGen.get_pretrained('melody')
model.set_generation_params(duration=8) # generate 8 seconds.
descriptions = ['happy rock', 'energetic EDM', 'sad jazz']
melody, sr = torchaudio.load('./assets/bach.mp3')
# generates using the melody from the given audio and the provided descriptions.
wav = model.generate_with_chroma(descriptions, melody[None].expand(3, -1, -1), sr)
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團隊 |
模型日期 | 2023年4月至2023年5月訓練 |
模型版本 | 版本1 |
模型類型 | 由用於音頻分詞的EnCodec模型和基於Transformer架構的自迴歸語言模型組成,有300M、1.5B和3.3B參數等不同規模,以及文本到音樂生成和旋律引導音樂生成兩種變體 |
參考資料 | 更多信息可參考論文Simple and Controllable Music Generation |
引用詳情 |
@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許可 | | 反饋渠道 | 可通過項目的Github倉庫發送問題或評論,或提交issue |
預期用途
- 主要用途:MusicGen主要用於基於人工智能的音樂生成研究,包括探索和理解生成模型的侷限性以改進科學現狀,以及供機器學習愛好者通過文本或旋律引導生成音樂來了解生成式AI模型的當前能力。
- 預期用戶:主要面向音頻、機器學習和人工智能領域的研究人員,以及希望更好理解這些模型的業餘愛好者。
- 非預期用例:在未進行進一步風險評估和緩解的情況下,該模型不應用於下游應用。不得用於故意創建或傳播會給人帶來敵對或疏離環境的音樂作品,包括生成可能令人不安、痛苦或冒犯的音樂,或傳播歷史或當前刻板印象的內容。
評估指標
- 模型性能指標:使用以下客觀指標在標準音樂基準上評估模型:
- 基於預訓練音頻分類器(VGGish)提取的特徵計算的Frechet音頻距離。
- 基於預訓練音頻分類器(PaSST)提取的標籤分佈計算的Kullback - Leibler散度。
- 基於預訓練CLAP模型提取的音頻嵌入和文本嵌入之間的CLAP分數。
- 此外,還進行了有人類參與者的定性研究,從以下方面評估模型性能:音樂樣本的整體質量、與提供的文本輸入的相關性、旋律引導音樂生成中對旋律的遵循程度。
- 決策閾值:不適用。
評估數據集
模型在MusicCaps基準和一個領域內保留評估集上進行評估,評估集與訓練集無藝術家重疊。
訓練數據集
模型使用以下來源的許可數據進行訓練:Meta Music Initiative Sound Collection、Shutterstock音樂集和Pond5音樂集。更多關於訓練集和相應預處理的詳細信息請參考論文。
評估結果
以下是發佈的模型在MusicCaps上獲得的客觀指標。注意,對於公開發布的模型,所有數據集都經過了最先進的音樂源分離方法處理,即使用開源的Hybrid Transformer for Music Source Separation(HT - Demucs),以僅保留樂器部分。這解釋了與論文中使用的模型在客觀指標上的差異。
模型 | Frechet音頻距離 | KLD | 文本一致性 | 色度餘弦相似度 |
---|---|---|---|---|
facebook/musicgen-small | 4.88 | 1.42 | 0.27 | - |
facebook/musicgen-medium | 5.14 | 1.38 | 0.28 | - |
facebook/musicgen-large | 5.48 | 1.37 | 0.28 | - |
facebook/musicgen-melody | 4.93 | 1.41 | 0.27 | 0.44 |
更多信息可在論文Simple and Controllable Music Generation的結果部分找到。
侷限性和偏差
- 數據方面:用於訓練模型的數據源由音樂專業人士創建,並與版權持有者簽訂了法律協議。模型在20000小時的數據上進行訓練,我們認為在更大的數據集上擴展模型可以進一步提高其性能。
- 緩解措施:使用相應標籤並結合最先進的音樂源分離方法(即開源的Hybrid Transformer for Music Source Separation(HT - Demucs))從數據源中去除了人聲。
- 侷限性:
- 模型無法生成逼真的人聲。
- 模型使用英文描述進行訓練,在其他語言中的表現不佳。
- 模型在不同音樂風格和文化中的表現不均。
- 模型有時會生成歌曲結尾並陷入沉默。
- 有時難以確定哪種文本描述能提供最佳生成效果,可能需要進行提示工程以獲得滿意的結果。
- 偏差:數據源可能缺乏多樣性,並非所有音樂文化在數據集中都得到了平等的體現。模型在各種音樂流派上的表現可能不均,生成的樣本會反映訓練數據中的偏差。對該模型的進一步研究應包括實現文化平衡和公正表示的方法,例如擴展訓練數據以使其更加多樣化和包容。
- 風險和危害:模型的偏差和侷限性可能導致生成被認為有偏差、不適當或冒犯性的樣本。我們認為提供重現研究和訓練新模型的代碼將有助於將應用擴展到更新和更具代表性的數據上。
- 使用建議:用戶必須瞭解模型的偏差、侷限性和風險。MusicGen是為可控音樂生成的人工智能研究而開發的模型,因此在未進行進一步調查和風險緩解的情況下,不應將其用於下游應用。
🔧 技術細節
MusicGen是一個文本到音樂的模型,能夠根據文本描述或音頻提示生成高質量的音樂樣本。它是一個單階段自迴歸Transformer模型,基於32kHz的EnCodec分詞器進行訓練,該分詞器有4個碼本,採樣頻率為50Hz。與現有的方法(如MusicLM)不同,MusicGen不需要自監督的語義表示,並且可以一次性生成所有4個碼本。通過在碼本之間引入小的延遲,我們證明可以並行預測它們,因此每秒音頻僅需50個自迴歸步驟。
📄 許可證
代碼遵循MIT許可,模型權重遵循CC - BY - NC 4.0許可。







