Text Conditioned Symbolic Drumbeat Generation using Latent Diffusion Models
目录
0. 摘要
1. 简介
2. 相关工作
3. 数据集
3.1 MIDI 预处理
3.2 文本处理
4. 方法
4.1 文本编码
4.1.1 对比语言-MIDI 预训练
4.1.2 Multi-hot 文本嵌入
4.2 自编码器
4.3 潜在空间中的扩散
4.4 模型与训练细节
5. 实验与结果
5.1 实验结果
5.2 聆听测试
6. 结论与未来工作
0. 摘要
这项研究介绍了一种使用文本条件的潜在扩散模型 (LDM) 生成鼓点的方法。它使用从训练数据文件名中提取的有效条件文本。通过在多模态网络中通过对比学习预训练文本和鼓点编码器,并遵循 CLIP 对齐,我们使文本和音乐的模态紧密对齐。此外,我们还研究了一种基于 multi-hot 文本编码的替代文本编码器。受音乐多分辨率特性的启发,我们提出了一种新型 LSTM 变体,即多分辨率LSTM(MultiResolutionLSTM),旨在独立地在不同分辨率下操作。与图像领域中最近的 LDM 相似,它通过在预训练的无条件自动编码器提供的潜在空间中运行扩散过程来加快生成速度。我们通过测量生成的鼓点与训练数据集之间的距离(包括二进制钢琴卷轴 pianoroll 和潜在空间)以及生成鼓点之间的距离,展示了生成鼓点的原创性和多样性。我们还通过聆听测试评估了生成的鼓点,重点关注质量、与提示文本的适应性和新颖性等问题。我们证明,生成的鼓点是新颖且适合提示文本的,其质量可与人类音乐家创作的鼓点媲美。
1. 简介
近年来,AI 生成音乐的研究进展迅速 [1–8]。一些近期的深度学习模型通过在大型数据集(如 The Lakh MIDI Dataset)上训练,已经成功生成了逼真的音乐 [9]。虽然研究人员已经创建了可以生成鼓伴奏的模型(见第 2 节),但基于文本提示创建新鼓点的问题仍未解决。在本研究中,我们展示了通过借鉴最新的文本条件图像生成模型 [10–13],可以训练出这样的模型。
基于扩散模型的文本条件图像生成的最新进展为生成系统奠定了基础,特别是在潜在空间中应用时,相较于更自然的像素空间 [13]。转向潜在空间的好处在于处理更加压缩的数据表示,这可以带来更高效的处理,并且预训练的编码器-解码器可以使用压缩表示生成潜在的优越结果。在潜在空间中采用扩散技术并将其与文本等外部变量相结合,不仅提高了模型在训练过程中的稳定性,还提升了质量和相关性。本文基于这些优势,强调了潜在空间扩散在生成响应文本提示的音乐上具有潜力。
在音乐或鼓点生成中,将深度学习生成模型以文本为条件并非易事。与图像相比,图像有丰富的数据集将文本和图像联系起来,而音乐缺乏这样的数据集。常用的 MIDI 数据集如 The Lakh Midi Dataset 和 Magenta Groove MIDI Dataset 并未提供训练此类模型所需的丰富文本。为了解决这个问题,我们使用提供描述性文件名的 MIDI 鼓点数据集 Groove Monkee(见第 3 节)。为处理这些文本,我们研究了带有类似 CLIP 预训练的大型语言模型(LLM)和基于 multi-hot 关键词的方法(见第 4 节)。任一方法都提供了可以用于指导鼓点生成的文本编码。图 1 显示了我们系统的整体架构。提供的文本提示使用第 4.1 节描述的文本编码器转换为文本嵌入。这些文本编码和随机噪声 Z_{t_max} 一起自回归地传递到 LDM 中,迭代生成 Z_{t_max} ... Z0,然后传递到钢琴卷轴解码器中,生成表示鼓点的最终钢琴卷轴。该钢琴卷轴再转换回 MIDI 文件,以获得最终的 MIDI 鼓点。
2. 相关工作
我们首先强调了使用潜在扩散模型 (LDM) 生成鼓点和图像生成模型之间的共同点。LDM 已被应用于图像领域,并且在现实世界中有实际应用。Rombach 等人 [13] 展示了使用类似架构生成高分辨率图像。这些方法在音乐领域的转换并非易事。首先,音乐缺乏丰富的文本和符号音乐(symbolic music)数据集。其次,图像和音乐的数据分布非常不同。以钢琴卷轴(pianoroll)形式存在的符号音乐高度稀疏。此外,音乐中的相关特征更多是时间性的,而不是局部性的,而图像的情况则相反 [14],这也促使了卷积神经网络 (CNN) 等架构的发展。
我们通过以下方式解决了这两个问题:首先,使用一个半标注的数据集(见第 3 节)。其次,我们设计了一个基于递归神经网络 (RNN) 的模型,而不是 CNN,以便更好地捕捉音乐中的时间特征。我们更进一步,创建了一种新的特征提取 LSTM 层,该层能够在多个时间分辨率上工作。因此,我们证明了 LDM 可以适用于除图像以外的数据分布,即鼓点。
研究表明,可以通过变分自编码器 (VAE)(如卷积 VAE)学习到鼓点的良好低维表示[15,16]。我们超越了这项研究,在编码器和解码器中引入了更先进的深度学习架构,并将生成过程基于文本进行条件化。
研究人员还使用了自编码器 (AE) 之外的方法来生成新颖的鼓点和鼓伴奏 [8, 17–20]。Kaliakatsos-Papakostas 和 Hoover 以及 Stanley 都使用进化算法来生成鼓点:前者旨在实现概念融合,后者则用于通过从现有乐器轨道中 “搭建脚手架(scaffold)” 来进行互动控制。通过以弦乐、贝斯等其他乐器为条件,Dahale 等人使用 Lakh Midi Dataset 将鼓点作为伴奏生成。该模型没有文本条件。Makris 等人通过使用一种受复合词(Compound Word)表示法启发的新型数据编码方案,采用序列到序列架构,利用双向长短期记忆 (BiLSTM) 编码器和基于 Transformer 的解码器,解决了条件鼓点生成的挑战。
还有其他实验使用 MusicVAE [21] 通过在已知鼓点之间进行插值来生成鼓点。Beat Blender [22] 使用了这种方法,创建了一个互动网站,用户可以实时进行这些插值。这些方法与我们的研究不同之处在于,它们使用自编码器而不是将生成模型以文本或自然语言为条件。此外,它们还排除了音符时值和力度的输出,限制了表现力。其他系统如 JukeDrummer [18] 则处理音频信号而非符号音乐,通常使用 VQ-VAE。我们在输出格式和底层生成方法上都与这些研究不同。我们还考虑了另一个带注释的数据集——The Expanded Groove MIDI Dataset [23]。虽然该数据集也为每个鼓点提供了流派标签和 BPM 等注释,但缺乏关于用于创建该鼓点的鼓组部分的更多信息。除此之外,我们发现 The Groove Monkee 数据集中的鼓点质量较高。考虑到这两点,我们决定使用 The Groove Monkee 数据集进行我们的研究。
Wu 等人最近发布了一篇论文,提供了一个链接符号音乐和文本的数据集,并使用该数据集训练了对比学习模型 [24]。由于该数据集不适用于鼓点生成,我们选择了使用其他数据集。该研究的作者证明,通过联合训练多模态音乐和文本编码器所学习的文本编码器在下游任务中具有意义,并显示出有前景的结果。这些结果与图像-文本案例的结果一致 [10]。我们利用这些研究成果,并扩展了模型架构,通过使用生成的文本嵌入来生成基于文本的鼓点,使用 LDMs。
3. 数据集
为了开发和评估我们的模型,我们使用了 Groove Monkee 数据集,这是一个包含 MIDI 鼓循环的集合。该数据集涵盖了广泛的风格和流派,如摇滚、布鲁斯、拉丁、非洲、电子等,以及歌曲部分,如主歌、副歌和过门。数据集总共包含 37,523 个 MIDI 鼓循环,涵盖了多种节拍。数据集以嵌套文件夹结构提供,每个文件夹和 MIDI 文件都有相应的标签。我们使用了其中 11,340 个简单节拍的样本。
3.1 MIDI 预处理
在典型的深度学习设置中使用 MIDI 时,我们通常将其转换为钢琴卷轴格式,具体步骤如下。我们遵循之前描述的有损处理程序 [15]。我们从 Groove Monkee 的 MIDI 文件中提取元数据,如文件的分辨率、BPM、节拍、轨道长度(以拍和滴答表示)。我们假设 128 个时间片足以表示 4 小节。循环被平铺以获得标准的 4 小节长度。我们假设 9 个鼓道(低音鼓、军鼓、闭合踩镲、开放踩镲、节奏镲、冲镲、低音鼓、低音鼓、军鼓)足以代表绝大多数的轨道。所有的鼓类型(多个低音鼓、军鼓、踩镲、邦戈鼓等)都映射到这 9 个通道之一。我们创建了一个 128 × 9 的浮点值数组。零值表示没有事件,非零值表示按键(note-on)事件。释放(Note-off)事件不表示,但在鼓点中很少需要。
3.2 文本处理
我们的模型的文本元数据是从 Groove Monkee 数据集的层次文件夹结构中提取的,该结构根据流派和其他描述性特征将 MIDI 文件组织到文件夹和子文件夹中。每个 MIDI 文件的文件路径包含指示其流派的信息以及其包含的鼓点的具体属性(见表 1 示例)。从这些路径中删除了 “Groove Monkee”、“GM”、“Bonus” 等常见标识符,从而为每个 MIDI 文件生成了唯一的字符串。这种方法使我们能够利用完整的路径名称作为音乐流派和鼓点特征的代理,假设结构化的命名约定和文件夹组织为每个 MIDI 文件提供了代表性的上下文。
4. 方法
在本节中,我们讨论了我们的方法。整体算法如算法 1 所述。
我们首先在鼓点数据上训练一个自编码器 (AE) 模型,如第 4.2 节所述。编码器将数据从数据空间映射到潜在空间,然后解码器将其映射回去。一个大型语言模型 (LLM) 文本编码器用于将文本信息嵌入到文本嵌入中,详细描述见第 4.1 节。我们还假设,由于数据集中是关键字类型的文本,一个基于关键字 multi-hot 编码的无需训练的替代文本编码器也可以作为 LLM 的替代方案,这也在本节中进行了描述。
运行去噪过程的 DDPM 模型,通过文本指导,该过程在第 4.3 节中进行了描述。
4.1 文本编码
每个鼓点对应的文本信息是通过将每个 MIDI 文件的路径(包括文件名)转换为表示该特定 MIDI 文件的字符串来提取的。由于这些文本更倾向于关键字而非自然语言,我们选择探索并比较两种生成文本嵌入的替代方法。在第 4.1.1 节中,我们讨论了通过对比 <Midi,Text> 预训练生成的文本嵌入,其中涉及在预训练的 BERT 嵌入之上添加一个投影头,然后使用对比损失训练 MIDI 和文本编码器。另一种方法,侧重于基于关键字的文本嵌入,在第 4.1.2 节中进行了探讨,其中 multi-hot 向量表示整个数据集中存在的音乐相关关键字列表的存在/不存在。
4.1.1 对比语言-MIDI 预训练
类似于 CLIP [10],我们通过联合训练 MIDI 编码器和文本编码器来学习多模态嵌入空间。模型的训练目标是最小化 N²-N 个对比对 m_i 和 t_j(i≠j)之间的余弦相似度,同时最大化 N 个相同对 m_i 和 t_i 之间的余弦相似度。损失函数是一个对相似度分数的对称交叉熵损失,即给定文本的 N 个 MIDI 嵌入和给定 MIDI 文件的 N 个文本嵌入。图 2 展示了这种预训练的总体架构,与原始论文相似,但有几个关键区别,即我们将图像编码器替换为 MIDI 编码器,同时对编码器架构进行必要的更改,以更好地捕捉鼓点的时间依赖性,这是图像中所没有的。文本编码器在 ‘bert_uncased_L-4_H-512_A-8’ 嵌入上包含一个单一的投影头。训练好的文本编码器随后用于生成文本嵌入,作为第 4.3 节中讨论的去噪扩散模型的上下文。
4.1.2 Multi-hot 文本嵌入
由于我们的数据集主要基于关键字而非自然语言,我们创建了一个包含 57 个与音乐相关的关键字列表,这些关键字在数据集的前 95% 分位数中具有代表性。类似于前一节中训练的文本编码器,去噪模型以 multi-hot 文本上下文向量的形式接收文本信息,如果特定关键字出现在文本提示中,该向量中的相应位置则为激活状态。这种方法的局限性在于,首先,作为生成模型的文本输入,标签的数量是有限的;其次,模型无法理解自然语言,因此像 “No Ride Cymbals” 这样的文本提示仍可能生成包含节奏镲的鼓点。我们还在文本提示中附加了 BPM(如果存在)作为一个整数。
4.2 自编码器
为了训练一个有效的潜在扩散模型,我们需要一个 MIDI 编码器-解码器,它能够创建一个鼓点的紧凑表示。像典型的自编码器一样,编码器将钢琴卷轴鼓点转换为一个潜在变量 Z,然后将其解码回钢琴卷轴空间。模型在重构损失上进行训练。图 3 描述了我们自编码器的整体架构。我们还尝试了向编码后的潜在变量 Z 中添加人工噪声,以创建一个更鲁棒的潜在空间。这一结果在第 5 节中有更详细的讨论。
受音乐多分辨率特性的启发,我们还在 AE 编码器中引入了一种新颖的多分辨率 LSTM(MRLSTM)组件。它旨在以多种时间分辨率分析钢琴卷轴。在我们的实现中,MRLSTM 在 1:1、1:2 和 1:4 的分辨率下工作。最低分辨率(1:4)专注于每第四个时间片,在典型的简单时间节奏中,它将具有较高的度量权重。
4.3 潜在空间中的扩散
为了提高扩散过程的稳定性和速度 [13],我们在潜在空间内实现了稳定扩散。潜在扩散模型(LDM)被训练来学习条件概率分布:
其中,ϵ 是在添加噪声后的第 t 个时间步潜在变量 Zt 中的噪声,扩散过程依赖于文本嵌入 w 形式的文本信息。这使得可以对随机采样的 Zt 进行迭代和自回归去噪,逐步估计 Z_{t−1} 直到 Z0,从而在每一步中优化生成的输出。
在采样时,Zt 是从正态分布中采样的,而在训练时,我们使用第 4.2 节中讨论的 MIDI 编码器生成 Z。然后根据噪声计划对这个潜在嵌入进行噪声处理,并通过在 1 到 1000 之间采样一个时间步 t 来创建 Zt。每一步的损失通过 ϵ 和预测噪声 ^ϵ 之间的均方误差来计算。算法 1 包含了训练算法以供参考。
4.4 模型与训练细节
去噪模型由 3 个带有批量归一化和 ReLU 激活的线性层组成。第一个线性层的输入是 Z 的拼接向量,结合时间步 't' 的正弦位置编码和文本嵌入(使用 multi-hot 文本嵌入或第 4.1.1 节中的文本嵌入)。潜在编码维度为 128。我们还在 5% 的训练步骤中传递一个空文本嵌入,以鼓励模型在没有文本嵌入的情况下预测噪声。这在我们的精选列表中没有活动音乐标签的文本提示时尤其有用。
5. 实验与结果
在本节中,我们描述了如何测试我们的鼓点生成深度学习模型来创建 MIDI 鼓点。
我们首先遵循文献 [26] 的方法,比较了不同设置下的组内距离(intra-set)和组间距离(inter-set)的分布,并通过核平滑(kernel smoothing)的概率密度函数进行可视化。我们测量了生成的鼓点之间的差异,包括相同文本提示下生成的鼓点(组内距离)和从数据集中与其最相似的元素(组间距离)的差异。
此外,我们通过在训练过程中向潜在变量 Z 中添加随机噪声,实验了这种操作对这些距离的影响。
最后,我们通过听力测试评估了生成音乐的质量。为了避免 “音乐图灵测试” [26] 中可能遇到的问题,我们重点关注质量、与文本的适配性和新颖性的问题,而不是人工痕迹。
5.1 实验结果
我们创建了 8 个文本提示,分别为 “latin triplet”、“4-4 electronic”、“funky 16th”、“rock fill 8th”、“blues shuffle”、“pop ride”、“funky blues” 和 “latin rock”,这些提示组合了不同的音乐风格和鼓点元素。对于每个文本提示,我们使用模型生成了 10 个鼓点。然后,我们使用两种度量标准计算 45 个成对距离:二值化后的钢琴卷轴的汉明距离,以及 AE 嵌入空间中的欧几里得距离。总共我们得到了每种度量标准下 360 个成对距离值。我们还计算了每个文本提示变体中生成鼓点与数据集中最接近的 1% 鼓点之间的距离。这些结果首先显示在表 2 中。
通过将第三列与前两列进行比较,我们可以看出生成的鼓点不是数据集中的简单重复,即模型具有一定的泛化能力。
我们还通过分析相同文本提示生成的鼓点与不同文本提示生成的鼓点之间的汉明距离,研究了以文本为条件的效果。值得注意的是,表 2 的最后一列揭示了一个关键的见解:即使使用相同的文本提示生成多个鼓点,生成的鼓点也表现出一定的差异。这种变化突显了文本条件的鼓点生成模型固有的变异性。
尽管存在这种变异性,我们的进一步分析(如图 4 所示)表明,在使用汉明距离时,文本条件对鼓点生成有明显的影响。在欧几里得空间中,虽然相同文本的鼓点没有像预期的那样紧密聚集,考虑到自编码器的设计和仅专注于重构损失的训练目标,尽管如此,同一文本和不同文本的鼓点距离之间仍存在显著差异。这一结果表明,尽管自编码器没有明确编码特定风格特征或确保相似风格在潜在空间中的紧密聚集,文本条件化仍然对生成的鼓点产生了微妙但显著的影响。
在对模型在扰动下的行为进行探索时,我们通过在训练过程中向潜在变量 Z 中添加噪声来增强潜在空间对扰动的鲁棒性和稳定性。我们的研究重点放在三种不同水平的噪声应用上:高噪声、低噪声和无噪声。在高噪声条件下,我们引入了 [0.01, 0.1] 范围内的噪声,而在低噪声条件下,范围设定在 [0.01, 0.001]。无噪声条件下则没有引入额外噪声。结果表明,高噪声模型生成了最独特的鼓点,但以质量为代价。相比之下,在低噪声和无噪声条件下生成的鼓点在质量和它们在潜在空间中的接近度方面相似。
5.2 聆听测试
为了评估生成鼓点的质量及其与文本提示的相关性,我们构建了一个包含 40 个鼓点的调查。这些鼓点是使用从数据集中随机选择的10个文本提示生成的,每个提示生成了四种鼓点变体:(1)原始数据集鼓点,(2)通过 multi-hot 文本编码生成的鼓点,(3)通过 BERT 文本编码生成的鼓点,以及(4)使用空文本生成的鼓点作为对照或负样本。
鼓点的长度范围为 8 到 15 秒,预计调查完成时间为 30 到 60 分钟。参与者对鼓点生成方法的具体细节以及每种变体的性质都不知情。评估标准包括:质量、与给定文本提示的匹配度和新颖性。每个标准都使用 Likert scale 进行评估。
我们共收到 14 份调查回复,其中 12 份完全填写并用于所有后续统计评估。
结果如图 6 所示,参与者普遍认为每种类别的鼓点质量相当且令人满意。因此,生成的鼓点与专业录制的鼓点相当。
关于“匹配度(aptness)”,如我们所假设的,生成的鼓点更符合文本提示,而对照鼓点的生成则忽略了文本。
特别是 BERT 模型被认为能够生成显著新颖的鼓点。值得一提的是,来自数据集的鼓点(由人类音乐家创作)在新颖性方面得分最低。
6. 结论与未来工作
在本研究中,我们开发了一个基于文本提示生成鼓点的系统,使用了潜在扩散模型。结果表明,该系统能够生成高质量、连贯的鼓点,并符合人类感知的标准。聆听测试和表 2 中的实证数据分析确认了系统生成新鼓点的能力。图 4、5 和 6 表明,文本条件在生成鼓点中起着重要作用。听力测试中的参与者将这些鼓点的质量评为与 The Groove Monkee 数据集中的鼓点相当,强调了我们模型在创造符合人类生成标准的鼓点方面的能力。潜在空间中的扩散方法提高了生成质量和速度,并为实时集成开辟了可能性。我们已经在 GitHub 和 SoundCloud 上提供了代码和一些生成样本供读者参考。
展望未来,系统可以进行一些改进。通过采用文本增强技术将关键词类型的文本信息转换为更自然的语言,可以改进文本提示生成。像 BERT 这样的 LLM 模型更适合处理自由流动的自然语言,因此这样的增强可能会导致更好的文本嵌入。在更受控的环境中进行大规模研究将提供更全面的数据,洞察系统在人类感知能力方面的表现。观察到的潜在空间中相同文本与不同文本的差异,值得进一步研究文本提示如何在编码或潜在空间中塑造音乐输出。通过隔离方差较大的维度进行更多调查,可能会获得有关潜在空间和文本条件化影响的有意义的见解。
论文地址:https://arxiv.org/abs/2408.02711
项目页面:https://github.com/pushkarjajoria/Text-Conditioned-Drumbeat-Generation
生成样本:https://soundcloud.com/user-32049071/sets/generated-drumbeats
进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群
加 VX 群请备注学校 / 单位 + 研究方向