🚀 MusicGen - 立體聲 - 旋律 - 大型 33 億參數模型
MusicGen 是一個文本到音樂的模型,能夠根據文本描述或音頻提示生成高質量的音樂樣本。該模型基於Transformer架構,無需自監督語義表示,可一次性生成所有 4 個碼本,具有高效、可控的特點。
🚀 快速開始
你可以通過以下幾種方式體驗 MusicGen:
-
- 你也可以在本地運行 MusicGen:
1. 首先安裝 [`audiocraft` 庫](https://github.com/facebookresearch/audiocraft)
```
pip install git+https://github.com/facebookresearch/audiocraft.git
```
2. 確保安裝了 [`ffmpeg`](https://ffmpeg.org/download.html):
```
apt get install ffmpeg
```
3. 運行以下 Python 代碼:
```py
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) # 生成 8 秒的音樂。
descriptions = ['歡快的搖滾', '充滿活力的電子舞曲', '悲傷的爵士樂']
melody, sr = torchaudio.load('./assets/bach.mp3')
使用給定音頻中的旋律和提供的描述進行生成。
wav = model.generate_with_chroma(descriptions, melody[None].expand(3, -1, -1), sr)
for idx, one_wav in enumerate(wav):
# 將以 -14 db LUFS 的響度標準化保存為 {idx}.wav。
audio_write(f'{idx}', one_wav.cpu(), model.sample_rate, strategy="loudness")
## ✨ 主要特性
- **立體聲支持**:我們進一步發佈了一組支持立體聲的模型,這些模型是在單聲道模型的基礎上進行了 200k 次更新的微調。
- **單階段生成**:與現有方法不同,MusicGen 無需自監督語義表示,可一次性生成所有 4 個碼本。
- **多模式支持**:提供文本到音樂以及文本+旋律到音樂兩種生成模式。
## 📦 安裝指南
### 安裝 `audiocraft` 庫
pip install git+https://github.com/facebookresearch/audiocraft.git
### 安裝 `ffmpeg`
apt get install ffmpeg
## 💻 使用示例
### 基礎用法
```py
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) # 生成 8 秒的音樂。
descriptions = ['歡快的搖滾', '充滿活力的電子舞曲', '悲傷的爵士樂']
melody, sr = torchaudio.load('./assets/bach.mp3')
# 使用給定音頻中的旋律和提供的描述進行生成。
wav = model.generate_with_chroma(descriptions, melody[None].expand(3, -1, -1), sr)
for idx, one_wav in enumerate(wav):
# 將以 -14 db LUFS 的響度標準化保存為 {idx}.wav。
audio_write(f'{idx}', one_wav.cpu(), model.sample_rate, strategy="loudness")
📚 詳細文檔
模型詳情
屬性 |
詳情 |
開發組織 |
Meta AI 的 FAIR 團隊 |
模型日期 |
2023 年 4 月至 2023 年 5 月 |
模型版本 |
版本 1 |
模型類型 |
MusicGen 由用於音頻標記化的 EnCodec 模型和基於 Transformer 架構的自迴歸語言模型組成,用於音樂建模。模型有不同的大小:3 億、15 億和 33 億參數;有兩種變體:用於文本到音樂生成任務的模型和用於旋律引導音樂生成的模型。 |
更多信息資源 |
更多信息可在論文 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 許可證發佈。 |
問題反饋渠道 |
關於 MusicGen 的問題和評論可以通過項目的 Github 倉庫 發送,或通過創建問題反饋。 |
預期用途
- 主要預期用途:MusicGen 的主要用途是基於人工智能的音樂生成研究,包括探索和理解生成模型的侷限性以改進科學現狀,以及讓機器學習愛好者通過文本或旋律引導生成音樂來了解生成式人工智能模型的當前能力。
- 主要預期用戶:該模型的主要預期用戶是音頻、機器學習和人工智能領域的研究人員,以及希望更好地理解這些模型的業餘愛好者。
- 超出範圍的用例:在沒有進一步的風險評估和緩解措施的情況下,該模型不應用於下游應用。該模型不應被用於故意創建或傳播會給人們造成敵對或疏離環境的音樂作品。
評估指標
- 模型性能指標:使用以下客觀指標在標準音樂基準上評估模型:基於預訓練音頻分類器(VGGish)提取的特徵計算的 Fréchet 音頻距離;基於預訓練音頻分類器(PaSST)提取的標籤分佈計算的 Kullback-Leibler 散度;基於預訓練 CLAP 模型提取的音頻嵌入和文本嵌入計算的 CLAP 分數。此外,還通過人類參與者進行定性研究,從音樂樣本的整體質量、與提供的文本輸入的相關性、旋律引導音樂生成中對旋律的遵循程度等方面評估模型性能。
- 決策閾值:不適用。
評估數據集
模型在 MusicCaps 基準 和一個領域內保留的評估集上進行了評估,評估集與訓練集沒有藝術家重疊。
訓練數據集
模型在許可數據上進行訓練,數據來源包括 Meta 音樂倡議聲音庫、Shutterstock 音樂庫 和 Pond5 音樂庫。
評估結果
以下是發佈的模型在 MusicCaps 上獲得的客觀指標。請注意,對於公開發布的模型,所有數據集都經過了最先進的音樂源分離方法處理,即使用開源的 混合變壓器音樂源分離(HT-Demucs),以僅保留樂器部分。
模型 |
Fréchet 音頻距離 |
Kullback-Leibler 散度 |
文本一致性 |
色度餘弦相似度 |
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 |
侷限性和偏差
- 數據方面:用於訓練模型的數據源由音樂專業人士創建,並與權利持有者簽訂了法律協議。模型在 20000 小時的數據上進行訓練,擴大數據集規模可能會進一步提高模型性能。
- 緩解措施:使用相應標籤並結合最先進的音樂源分離方法(開源的 混合變壓器音樂源分離,即 HT-Demucs)從數據源中去除了人聲。
- 侷限性:模型無法生成逼真的人聲;模型使用英文描述進行訓練,在其他語言中的表現不佳;模型在不同音樂風格和文化中的表現不均;模型有時會生成歌曲結尾並陷入沉默;有時難以確定哪種文本描述能提供最佳生成效果,可能需要進行提示工程以獲得滿意結果。
- 偏差:數據源可能缺乏多樣性,所有音樂文化在數據集中的代表性不均。模型在各種音樂流派中的表現可能不同,生成的樣本會反映訓練數據中的偏差。進一步的工作應包括採用平衡和公正的文化表示方法,例如擴大訓練數據以使其更加多樣化和包容。
- 風險和危害:模型的偏差和侷限性可能導致生成被認為有偏差、不適當或冒犯性的樣本。提供代碼以重現研究和訓練新模型有助於將應用擴展到更新和更具代表性的數據。
- 使用場景:用戶必須瞭解模型的偏差、侷限性和風險。MusicGen 是為可控音樂生成的人工智能研究而開發的模型,在沒有進一步調查和風險緩解的情況下,不應將其用於下游應用。
📄 許可證
代碼以 MIT 許可證發佈,模型權重以 CC-BY-NC 4.0 許可證發佈。