人工智能咨询培训老师叶梓 转载标明出处
大模型在翻译、复杂语言环境中的推理等任务中展现出了人类级别的能力。这引发了一个问题:这些模型能否在更具情感、抽象性以及需要专业技能的领域中,如音乐创作,展现出人类的创造力呢?香港中文大学、北京航空航天大学和上海人工智能实验室的研究团队的最新研究 "SongComposer" 给出了肯定的答案,这是一个专为歌曲创作设计的创新性大型语言模型,它能够理解并生成旋律和歌词,为音乐产业带来新的变革。
数据集
SongCompose-PT 数据集包含了歌词、旋律以及它们之间的配对。这个数据集的目的是为了让大型语言模型(LLM)能够更好地理解音乐和歌词之间的关系,并生成与人类创作方式相似的歌曲。
研究团队从两个在线资源中收集了大量歌词数据。他们首先从 Kaggle 数据集中获取了150,000首带有 Spotify Valence 标签的歌曲的歌词。然后从 Music Lyric Chatbot 数据集中收集了140,000首华语歌曲的歌词。之后,团队进行了一系列的清洗过程,包括去除非英文和非中文的歌词、特殊符号、标点和空格,以及删除重复和无意义的内容。最终整理出了283,000首高质量歌曲的歌词,其中150,000首为英文,133,000首为中文。
为了组织旋律数据集,研究者选择了 MIDI 文件作为数据源。MIDI 文件具有结构简单的优点,便于提取和操作旋律,而无需复杂的音频处理。他们从 LMD-matched MIDI 数据集中收集了45,000个条目,并通过网页爬虫获取了大约80,000个条目。使用 pretty midi 库,他们解析了 MIDI 文件,并提取了旋律或声乐轨道。每条旋律被表示为一系列音乐音符属性的三元组,包括音符音高、音符持续时间和休止符持续时间。
配对歌词-旋律数据集对于训练 LLM 进行歌曲创作至关重要,因为它们提供了精确的歌词和旋律之间的同步信息。为了创建这个数据集,研究者首先从先前研究中获取了数据集,包括 LMD-full 数据集的7,998首歌曲和 Reddit 来源的4,199首歌曲。他们还整合了 OpenCpop 和 M4Singer 数据集。为了进一步丰富配对数据,他们通过网页抓取创建了一个包含4,000首经典华语歌曲的数据集。
收集歌词-旋律数据的流程包括以下几个步骤:
源数据抓取:从网络上收集大量 mp3 文件及其对应的歌词文件。
歌词清洗:使用 GPT-4 清洗歌词文本,去除无关细节。
片段切片:根据歌词文件中的时戳,将音频和歌词切成大约10秒的配对片段。
音乐源分离:使用 UVR4 工具分离人声和伴奏。
歌声转录:使用 FL Studio 自动生成初步音乐谱。
词边界注释:通过 Pypinyin 和 Montreal Forced Aligner 确定歌词中每个词的边界。
词级对齐:使用动态时间规整(DTW)算法根据起止时间对齐单词和音符。
他们开发了一个包含15,000个配对歌词-旋律条目的数据集,其中大约5,000个为中文,10,000个为英文。这个数据集为 SongComposer 模型提供了丰富的学习资源,使其能够在多种歌曲生成任务中表现出色。
SongComposer 模型的设计和训练
SongComposer模型的主要策略是将符号化的歌曲表示转换成适合LLM的格式。基于这个基础设置的创新点是两阶段的训练方法。这个方法使用了作者收集的数据集,并使模型能够作曲。
LLM 的符号表示
为了使LLM能够有效处理音乐和歌词,SongComposer模型采用了一种新颖的元组数据格式。这种格式的核心思想是将歌词和旋律的每个元素组合成一个单元,即元组。这样的设计使得模型能够更直观地捕捉到歌词和旋律之间的对应关系。
在处理纯歌词数据时,模型将每个元组中放入一个单词。而在处理纯旋律数据时,每个元组则包含了音符的音高、持续时间和休止符的持续时间。对于那些旋律和歌词同步的数据,模型会将同一元组中的歌词和对应的音符元素合并在一起。这种设计允许一个单词对应多个音符,因此一个元组中可以包含一个单词和几个相应的音符及其持续时间。
为了更有效地处理旋律中的持续时间信息,SongComposer采用了一种对数编码方案。这个方案将连续的持续时间范围转换成一组离散值,这样做的好处是可以更精确地捕捉音乐中的时间变化,并且这种编码方式与人类对时间感知的敏感度相匹配,即对较短时间的区分更细致。
模型还扩展了其词汇表,引入了辅助标记来代表离散化的时间单元和音符值。这些新引入的词汇在整个训练过程中进行了优化,使得模型能够更清晰地理解和生成音乐符号。
通过这种符号化表示方法,SongComposer模型不仅能够生成与人类创作方式相似的旋律和歌词,而且还提高了生成过程的效率和灵活性。
两阶段训练
SongComposer 模型的训练过程分为两个关键阶段:预训练阶段和监督式微调阶段。
预训练阶段(Pretraining Stage): 在预训练阶段,SongComposer 模型的目标是获取基本的音乐知识。这个阶段使用了大量纯歌词和纯旋律的数据,通过下一个标记预测的任务来训练模型。为了增加数据的多样性并提高模型的泛化能力,研究者们采用了音高转换技术来扩充数据集,即将旋律的音高上下移动半音,从而扩大了数据集的规模。
模型被训练来处理三种类型的数据:纯歌词、纯旋律和歌词旋律配对。这些数据都以元组的格式输入,其中每个元组包含了歌词或旋律的相关信息。通过这种方式,模型学习到了歌词和旋律之间的基本关系,为后续的微调阶段打下了坚实的基础。
监督式微调阶段(Supervised Finetune Stage): 在模型完成了预训练并吸收了大量音乐和歌词知识之后,它进入到了监督式微调阶段。这个阶段的目的是进一步提升模型遵循指令生成歌曲的能力。研究者们为此准备了10,000个问答对(QA pairs),这些问答对覆盖了多种歌曲生成任务,包括给定歌词生成旋律、给定旋律生成歌词、歌曲片段的扩展以及根据文本描述生成完整歌曲。
在这个阶段,模型会根据这些问答对进行微调,学习如何根据给定的指令生成相应的歌曲部分。例如,如果任务是根据歌词生成旋律,模型就会学习如何根据提供的歌词内容创作出和谐的旋律。这种微调过程使得 SongComposer 能够更精确地理解和执行各种歌曲创作任务。
通过这两个阶段的训练,SongComposer 模型不仅学习了音乐和歌词的基本元素,还获得了根据具体指令创作歌曲的能力。
实验
客观评估指标
研究者构建了一个由1188首歌曲组成的验证集,这个集合被用来测试模型生成的歌曲与真实歌曲的相似度。其中,包含了415首中文歌曲和773首英文歌曲,确保这些歌曲在模型训练阶段没有被使用过,以此来评估模型的泛化能力。
旋律生成评估: 为了评估模型生成旋律的质量,研究者采用了SongMASS提出的评估指标,这包括:
- 音高分布相似性(PD):衡量生成旋律的音高分布与真实旋律的接近程度。
- 持续时间分布相似性(DD):衡量生成旋律的音符持续时间与真实旋律的匹配度。
- 旋律距离(MD):一个综合性指标,用以衡量生成旋律与真实旋律的总体差异。
为了确保评估的准确性,研究者还进行了后处理步骤,对真实旋律和生成旋律的音高进行对齐,并对持续时间进行了标准化处理,以便进行更加一致的比较。
歌词生成评估: 研究者使用CoSENT模型来评估生成歌词与原始歌词在句子级别上的对齐情况,通过计算两者之间的余弦相似性来定量评估。此外,还使用了ROUGE-2分数和BERT分数作为评估歌词生成的补充指标。ROUGE-2分数关注生成文本与原始文本中二元组的重叠程度,而BERT分数则基于上下文嵌入来衡量文本的相似性,这为评估提供了更深层次的语言理解。
主观评估指标
为了从人类角度评估生成歌曲的质量,研究者开展了一项用户研究。这项研究共有30名参与者,他们每个人评估了10个案例。研究者为每项任务设计了两个评估指标,并要求参与者根据1到5的评分标准进行评分,以此来衡量生成内容的质量。
任务特定评估:
- 对于歌词到旋律生成任务,研究者评估了生成旋律的和谐性(Harmony)以及旋律与给定歌词的匹配度(Melody-Lyric Compatibility)。
- 对于旋律到歌词生成任务,评估了生成歌词的流畅性(Fluency)以及歌词与提供旋律的匹配度。
- 对于歌曲延续任务,评估了生成歌曲段的总体质量(Overall Quality)和与给定歌曲提示的连贯性(Coherence to the Song Prompt)。
- 对于文本到歌曲生成任务,评估了生成歌曲的总体质量以及与输入文本的相关性(Relevance to the Text Input)。
结果
与现有LLMs的比较:
SongComposer的开发不仅仅是为了生成旋律和歌词,更是为了在艺术性和技术性上达到与人类创作相媲美的水平。在与现有LLMs的比较中,SongComposer显示出了其卓越的性能。研究者选择了GPT-4和GPT-3.5等模型作为基准,并通过few-shot prompt方法来引导这些模型生成期望的输出。这种方法通过提供少量的示例,让模型快速理解任务要求,并生成相应的结果。
客观评估结果:
在客观评估中,SongComposer在歌词到旋律生成任务上的表现尤为突出。它在音高分布相似性(PD)和持续时间分布相似性(DD)上都优于GPT-4,这意味着SongComposer生成的旋律在音高和节奏上与真实旋律更为接近。此外,旋律距离(MD)的低数值进一步证明了SongComposer生成的旋律与真实旋律的高相似度。
主观评估结果:
主观评估结果进一步证实了SongComposer的优势。在用户研究中,参与者对SongComposer生成的歌曲在和谐度、旋律-歌词匹配度、歌词流畅度、总体质量和与文本输入的相关性等方面给予了更高的评分。这些评分反映了用户对SongComposer生成歌曲的主观感受,显示了其在艺术性和创造性上的优势。
消融研究
在预训练数据集的影响研究中,通过不同的数据集组合进行训练实验,研究者发现,纯歌词和纯旋律数据集对模型的性能有着显著的影响。当这两种数据集都被排除时,模型的性能显著下降,这表明了基础音乐和歌词知识在模型早期学习阶段的重要性。而当引入任一种数据集时,模型的性能都有了显著提升,尤其是纯旋律数据集对旋律生成任务的提升更为显著。
旋律知识扩展词汇的影响研究中,消融实验显示,离散化的时间标记和音符标记对于模型处理和生成音乐内容的能力至关重要。当模型没有使用这些专用标记时,它无法正确生成旋律;而当引入这些标记时,模型在旋律到歌词任务中的性能得到了显著提升。
通过这些详细的实验和评估,SongComposer证明了其在歌曲生成任务中的优越性能,特别是在旋律和歌词的生成质量上超越了现有的大型语言模型。
论文链接:https://arxiv.org/abs/2402.17645