🚀 音樂生成歌曲創意生成器 v0.2
musicgen-songstarter-v0.2 是一個基於微調的音樂生成模型,專為音樂製作人提供歌曲創意,可生成 32kHz 的立體聲音頻。
🚀 快速開始
musicgen-songstarter-v0.2 是在我的 Splice 樣本庫中的旋律循環數據集上對 musicgen-stereo-melody-large
進行微調得到的。它旨在用於生成對音樂製作人有用的歌曲創意,生成 32kHz 的立體聲音頻。
👀 更新:我寫了一篇博客文章,詳細介紹了我訓練這個模型的方式和原因,包括訓練細節、數據集、Weights and Biases 日誌等。
與 musicgen-songstarter-v0.1
相比,這個新版本:
- 在我在 Splice 上精心購買的獨特樣本上進行了 3 倍多的訓練。
- 模型大小從
medium
提升到 large
,是原來的兩倍。
如果您覺得這個模型有趣,請考慮:
✨ 主要特性
- 基於微調的音樂生成模型,可生成歌曲創意。
- 生成 32kHz 的立體聲音頻。
- 支持無條件生成和基於描述的生成。
- 支持使用給定音頻的旋律進行生成。
📦 安裝指南
安裝 audiocraft:
pip install -U git+https://github.com/facebookresearch/audiocraft#egg=audiocraft
💻 使用示例
基礎用法
import torchaudio
from audiocraft.models import MusicGen
from audiocraft.data.audio import audio_write
model = MusicGen.get_pretrained('nateraw/musicgen-songstarter-v0.2')
model.set_generation_params(duration=8)
wav = model.generate_unconditional(4)
descriptions = ['acoustic, guitar, melody, trap, d minor, 90 bpm'] * 3
wav = model.generate(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):
audio_write(f'{idx}', one_wav.cpu(), model.sample_rate, strategy="loudness", loudness_compressor=True)
📚 詳細文檔
提示格式
遵循以下提示格式:
{標籤 1}, {標籤 2}, ..., {標籤 n}, {調式}, {bpm} bpm
例如:
hip hop, soul, piano, chords, jazz, neo jazz, G# minor, 140 bpm
有關一些示例標籤,請參閱 musicgen-songstarter-v0.1 的 README 中的提示格式部分。那裡的標籤適用於較小的 v1 數據集,但應該能讓您瞭解模型所學習的內容。
示例音頻
音頻提示 |
文本提示 |
輸出 |
|
trap, synthesizer, songstarters, dark, G# minor, 140 bpm |
|
|
acoustic, guitar, melody, trap, D minor, 90 bpm |
|
🔧 技術細節
訓練詳情
- 代碼:
- 數據:
- 大約 1700 - 1800 個樣本,我親自聆聽並通過個人 Splice 賬戶購買。大約 7 - 8 小時的音頻。
- 由於許可條款,我無法分享這些數據。
- 硬件:
- 使用 Lambda Labs 的 8xA100 40GB 實例。
- 訓練過程:
- 訓練了 10000 步,大約需要 6 小時。
- 在訓練時將片段持續時間縮短至 15 秒。
- 超參數/日誌:
- 請參閱 wandb 運行記錄,其中包括訓練指標、日誌、訓練時的硬件指標、超參數以及我運行訓練腳本時使用的準確命令。
📄 許可證
本項目採用 CC BY-NC 4.0 許可證。
致謝
如果沒有以下支持,這項工作是不可能完成的:
感謝 ❤️