pipeline_tag: 文本转音频
library_name: audiocraft
language: zh
tags:
- 文本转音频
- 音乐生成
- 歌曲灵感
license: cc-by-nc-4.0
musicgen-songstarter-v0.2 模型卡片

musicgen-songstarter-v0.2是基于musicgen-stereo-melody-large
微调的模型,训练数据来自我的Splice样本库中的旋律循环片段。该模型旨在为音乐制作人生成实用的歌曲创意,可生成32kHz的立体声音频。
👀 最新动态:我写了一篇博客文章,详细介绍了训练该模型的方法和原因,包括训练细节、数据集、Weights and Biases日志等。
与musicgen-songstarter-v0.1
相比,新版本有以下改进:
- 训练数据量增加了3倍,这些样本是我在Splice上精心挑选并购买的
- 模型规模扩大了一倍,从
medium
升级到large
规模的Transformer语言模型
如果你对这个模型感兴趣,请考虑:
使用方法
安装audiocraft:
pip install -U git+https://github.com/facebookresearch/audiocraft#egg=audiocraft
然后,你可以像加载Hub上的其他musicgen检查点一样加载这个模型:
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 = ['原声, 吉他, 旋律, 陷阱音乐, D小调, 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
例如:
嘻哈, 灵魂乐, 钢琴, 和弦, 爵士, 新爵士, G#小调, 140 bpm
有关示例标签,请参阅musicgen-songstarter-v0.1的README中的提示格式部分。虽然那里的标签是针对较小的v1数据集的,但可以让你了解模型所见的标签类型。
示例
音频提示 |
文本提示 |
输出 |
|
陷阱音乐, 合成器, 歌曲灵感, 暗黑, G#小调, 140 bpm
|
|
|
原声, 吉他, 旋律, 陷阱音乐, D小调, 90 bpm
|
|
训练详情
更详细的训练信息,请参阅博客文章。
- 代码:
- 数据:
- 大约1700-1800个样本,这些样本是我通过个人Splice账户手动聆听并购买的。音频时长约7-8小时。
- 由于许可条款限制,我无法共享这些数据。
- 硬件:
- 使用了Lambda Labs提供的8xA100 40GB实例
- 训练过程:
- 训练了10k步,耗时约6小时
- 训练时将片段时长缩短至15秒
- 超参数/日志:
- 参见wandb的运行记录,其中包括训练指标、日志、训练时的硬件指标、超参数以及运行训练脚本时使用的确切命令。
致谢
以下机构/平台对本工作的支持不可或缺:
衷心感谢 ❤️