" 再多看一眼就会爆炸,再靠近点就快被融化 " 到底是个什么感觉?
(相关资料图)
(这是一句《只因你太美》中的歌词)
下面的音乐或许能让你体会到这种 " 从来未有 " 的 feel,坤坤听了都会直呼内行。
这段音乐来自 Meta 最新推出的文生音乐工具 MusicGen。
只需要输入一段文字,点击生成按钮就能得到一段最长 30 秒的音乐,而且支持中文。
不懂乐理也没关系,MusicGen 还可以上传已有的音乐作为参照。
比如上面这段音乐就是结合了原曲旋律重新生成的。
如果你实在不知道怎么 prompt,也可以像这位网友一样问问 ChatGPT:
无论是国风还是摇滚风都能轻松驾驭,甚至是两者结合。哪怕国风伴奏也难不倒 MusicGen。
测试结果显示,MusicGen 的综合评分比谷歌的 MusicLM 高出了 5.36%。
有网友给出了详细的测评体验:这个模型似乎没有专门针对乐队名称进行训练,但用已有的风格生成音乐时表现非常好。
……
尽管(项目)网站中的示例是(开发者)挑选过的,但这并不能否定它可以生成好的作品。
如何实现音乐的合成涉及多段旋律以及多种音色(乐器)之间的协调。
而不同于语音合成,人类对音乐之中的不和谐因素更为敏感。
那么 MusicGen 是如何完成这一复杂任务的呢?
我们先来看看它的训练数据。
Meta 团队一共使用了两万小时的音乐。
这之中包括一万条内部搜集的高质量音轨以及 ShutterStock 和 Pond5 素材库中的数据。
来自后两者的数据量分别为 2.5 万和 36.5 万。
这些音乐数据在 32kHz 下被重新采样,都配有流派、BPM 等基本信息和复杂一些的文字说明。
除了上述训练数据,Meta 团队还准备了评价数据集 MusicCaps。
MusicCaps 由 5500 条专业作曲家谱写的 10 秒长的音乐构成,其中包括一千条平衡各个音乐流派的子集。
说完训练数据,我们来具体看看 MusicGen 的工作流程。
第一步是将声音信息转化为 token。
这一步使用的是 Meta 去年研发的卷积网络编码器 EnCodec。
至于编码方式,Meta 团队通过实验对四种不同的方式进行了测试。
最终,团队选择了延时模式(下图右下)并进行了精准建模。
最核心的 Transformer 部分,团队训练了 300M、1.5B、3.3B 三个不同参数量的自回归式 Transformer。在混合精度下,训练上述三个参数量的 Transformer 分别使用了 32、64 和 96 块 GPU。
对于文字处理,在评估了多个前人成果后 Meta 团队最终选用了 Google 团队 2020 年提出的 T5 模型。
对于音乐旋律的调整,团队选用了无监督的方式进行,规避了监督数据不佳导致的过拟合问题。
最终,Transformer 输出的数据被转换为对数形式,然后根据编码本生成最终的成品。
体验方式
目前,想要体验 MusicGen,一共有三种方式。
第一种方式是直接用官方在 Hugging Face 发布的 DEMO。
(传送门见文末)
这种方法操作最为简单,点进链接就能用。
缺点是得排队,有时候还会赶上服务器被挤爆、重新 building 等情况。
第二种是通过谷歌 Colab搭建。
比第一种多了个一键部署的步骤,不过也比较简单,官方已经把部署要用的代码准备好了。
进入之后,点击左上角的运行按钮即可完成一键部署,然后会得到一个专属链接,点进去就可以体验了。不过这种操作方式需要谷歌账号才能用。第三种方式则是自行部署。
你需要有足够性能的 GPU,且已经安装了 PyTorch2.0 或以上版本。
使用下面的命令即可完成安装:
# Best to make sure you have torch installed first, in particular before installing xformers.
# Don"t run this if you already have PyTorch installed.
pip install "torch>=2.0"
# Then proceed to one of the following
pip install -U audiocraft # stable release
pip install -U git+https://git@github.com/facebookresearch/audiocraft#egg=audiocraft # bleeding edge
pip install -e . # or if you cloned the repo locally
安装好后,使用【python app.py】命令即可运行。
传送门
Hugging Face:
https://huggingface.co/spaces/facebook/MusicGen
谷歌 Colab:
https://colab.research.google.com/drive/1-Xe9NCdIs2sCUbiSmwHXozK6AAhMm7_i?usp=sharing
论文地址:
https://arxiv.org/abs/2306.05284
GitHub 页面:
https://github.com/facebookresearch/audiocraft
参考链接:
[ 1 ] https://twitter.com/dr_cintas/status/1667597176145313793
[ 2 ] https://twitter.com/nikhilaravi/status/1667692767534006273
[ 3 ] https://news.ycombinator.com/item?id=36271926