PyTorch生成式人工智能(29)——基于Transformer生成音乐
PyTorch生成式人工智能(29)——基于Transformer生成音乐
-
- 0. 前言
- 1. 音乐 Transformer 简介
-
- 1.1 基于演奏的音乐表示
- 1.2 音乐 Transformer 架构
- 1.3 训练音乐 Transformer 流程
- 2. 音乐片段分词
-
- 2.1 下载训练数据
- 2.2 MIDI 文件分词
- 2.3 准备训练数据
- 3. 构建音乐生成 Transformer
-
- 3.1 音乐 Transformer 超参数
- 3.2 构建音乐Transformer
- 4 训练和使用音乐Transformer
-
- 4.1 训练音乐Transformer
- 4.2 使用训练好的 Transformer 生成音乐
- 小结
- 系列链接
0. 前言
我们已经学习了如何使用 MuseGAN 生成逼真的多音轨音乐。MuseGAN 将一段音乐视为一个类似图像的多维对象,并生成与训练数据集中相似的音乐作品。在本节中,将采另一种方法来创作音乐,将音乐视为一系列音乐事件。具体来说,将开发一个类似 GPT 的模型,基于序列中所有先前事件来预测下一个音乐事件。本节将创建的音乐 Transformer 拥有 2016 万个参数,足以捕捉不同音符在音乐作品中的长期关系,同时也可以在合理的时间内完成训练。
我们将使用 Maestro 钢琴音乐作为训练数据,MIDI 文件转换为音音符序列,类似于自然语言处理 (Natural Language Processing, NLP) 中的原始文本数据。接着,将这些音符拆分为小片段,称为音乐事件,这类似于 NLP 中的词元 (token)。由于神经网络只能接受数值输入,需要把每个唯一事件词元映射到一个索引。这样,训练数据中的音乐片段就被转换为一系列索引,用于输入神经网络。
经过训练的音乐 Transformer 能够生成逼真的音乐,模仿训练数据集中的风格。此外,与 MuseGAN 生成的音乐不同,我们可以通过调整温度参数来缩放预测的对数 (
© 版权声明
文章版权归作者所有,未经允许请勿转载。