【AI】对“由哼唱自动生成音乐乐曲”AI技术论文的读解
@TOC
推荐超级课程:
前言
本文总结了IJCAI 2023上发表的论文“Humming2Music: Being A Composer As Long As You Can Humming”的内容。这篇论文提出了一个系统,该系统接收哼唱作为输入,并在此基础上自动生成完整的乐曲。系统由五个模块组成,将用户输入的哼唱转换为乐谱,生成旋律,添加伴奏,最终进行声音合成。该系统旨在使没有音乐专业知识的用户也能轻松创作乐曲。
引言
近年来,音乐生成技术迅速进步,许多方法被提出。基于用户输入生成定制化乐曲的技术也被提出,但大多数基于歌词或和弦进行,而基于更直观的哼唱输入的生成技术仍然较少。此外,现有支持哼唱输入的方法仅生成伴奏,因此用户需要用哼唱输入完整的旋律,这门槛较高。
方法论
方法论部分详细说明了提案系统中各个模块的内容。
首先,将用户输入的哼唱转换为MIDI格式的乐谱。现有的音乐转录方法大多是基于帧的,采用两阶段方法提取音符的起始、结束和音高。然而,人类声音与乐器声音不同,音的起始不清晰,因此这种方法难以实现精确转换。 为了解决这一问题,采用了将音频信号转换为频谱图,并将其输入YOLOX模型以检测音符位置和范围的MusicYOLO方法。具体来说,首先将哼唱声音转换为CQT频谱图,然后将其转换为三通道图像。这个图像输入到YOLOX模型中,输出表示音符位置的边界框。由此检测到音符的起始和结束,最终将音符信息转换为MIDI格式。此外,还嵌入了微调哼唱生成的不和谐音的算法,这提高了后续旋律生成的精度。
乐谱转换完成后,基于这些数据生成完整的旋律。这个模块基于哼唱的旋律,应用和弦进行和节奏模板,补充自然旋律。具体来说,对从哼唱中提取的音符信息,从和弦和节奏模板库中选择最合适的模板,生成旋律。和弦模板的选择是通过比较哼唱的第一小节的音阶和和弦模板的音阶,选择最匹配的模板。同样,节奏模板是通过比较哼唱的起始和模板的起始来选择的。 通过这一过程,从模板库中选择了最合适的和弦和节奏模板,基于哼唱的旋律完成。
接下来,通过给生成的旋律添加分散和声,提高乐曲的表现力和丰富度。这个模块使用基于Transformer的模型,以旋律和和弦模板作为输入,生成相应的分散和声。 分散和声生成模型将每个音符的位置、音高、持续时间作为token处理,并生成以适应旋律。特别是,为了保持旋律与和声的一致性,模型引入了基于时间和音高的排列规则。由此,分散和声自然地与旋律一致,使整个乐曲和谐。
伴奏生成模块生成贝斯、弦乐、鼓等附加轨道,丰富整个乐曲。伴奏生成使用基于音乐理论的规则基础方法。具体来说,鼓点模式从库中随机选择,贝斯和弦乐根据和弦进行调整。每个模式都是用C大调创建的,选择的模式的根音根据和弦相应地更改。
最后阶段,混合各轨道,调整适当的音量平衡。此外,添加混响和压缩器等效果,完成最终乐曲。这些处理使用Python包Pedalboard实现。特别是,压缩器防止音爆,对保持声音的稳定性和清晰度起着重要作用。 通过这一系列过程,基于用户输入的哼唱,自动生成高质量、表现力丰富的乐曲。
结果与结论
通过人对人评价,确认提案系统能够以用户哼唱为输入,自动生成高质量音乐。具体成果如下:
- 准确的转录
用户的哼唱被准确转换为MIDI格式,生成高精度的乐谱。 - 高质量的旋律生成
即使旋律长度增加,基于模板也生成了一致的高质量旋律。 - 哼唱的反映
哼唱的特征在最终乐曲中得到了很好的反映,生成自然且反映用户意图的乐曲。 - 独特的乐曲生成
使用的模板仅包含和弦和节奏信息,最终音乐与原始乐曲大相径庭,成为独特的作品。 - 用户满意度
约46%的用户评价生成的音乐为“不错”,整体上获得了积极的反馈。 总的来说,该系统作为没有音乐专业知识的用户也能直观地用哼唱创作乐曲的有用工具,得到了评价。