【转】万余首钢琴作品、一千多个小时,字节跳动发布全球最大钢琴MIDI数据集

近期,字节跳动发布全球最大的古典钢琴数据集 GiantMIDI-Piano,包括来自 2,784 位作曲家 10,854 首作品的 MIDI 文件,总时长为 1,237 小时。研究者为完成该数据集的构建,开发并开源了一套高精度钢琴转谱系统。

钢琴转谱是一项将钢琴录音转为音乐符号(如 MIDI 格式)的任务。在人工智能领域,钢琴转谱被类比于音乐领域的语音识别任务。然而长期以来,在计算机音乐领域一直缺少一个大规模的钢琴 MIDI 数据集。

近期,字节跳动发布了全球最大的古典钢琴数据集 GiantMIDI-Piano [1]。在数据规模上,数据集不同曲目的总时长是谷歌 MAESTRO 数据集的 14 倍。

字节跳动研究科学家表示:「GiantMIDI-Piano 将所有古典钢琴作品转录成 MIDI 格式,并向全世界开放,此举旨在推动音乐科技和计算机音乐学的发展」。

GiantMIDI-Piano 的用途包括但不限于:音乐信息检索、自动作曲、智能音乐创作、计算音乐学等。下图展示了 GiantMIDI-Piano 中前 100 位不同作曲家的曲目数量分布:

GiantMIDI-Piano 的特点是使用 钢琴转谱技术 ,通过计算机将音频文件自动转为 MIDI 文件,并通过该技术转谱了大规模的 MIDI 数据集。

研究者首先从开放的国际音乐数字图书馆 IMSLP 获取了 18,067 位作曲家的 143,701 首作品名信息,并通过 YouTube 搜索到 60,724 个音频。然后,研究者设计了基于音频卷积神经网络(CNN)的钢琴独奏检测算法,筛选出来自 2,786 位作曲家的 10,854 部钢琴作品。最后,研究者开发并开源了一套高精度钢琴转谱系统(High-resolution Piano Transcription with Pedals by Regressing Precise Onsets and Offsets Times)[2],将所有音频转谱成 MIDI 文件,进而构建了 GiantMIDI-Piano 数据库。

数据集特点

GiantMIDI-Piano 数据集具备以下特点:

  • 包含来自 2,784 位作曲家 10,854 首作品的 MIDI 文件。
  • 包含 34,504,873 个音符。
  • 所有的曲目都是不同的,MIDI 文件的总时长为 1,237 小时。
  • 由高精度转谱系统转谱音频而成。转谱的 MIDI 文件包括音符的起始时间、力度和踏板信息。
  • GiantMIDI-Piano 的转谱相对错误率为 0.094,在 Maestro 钢琴数据集上的转谱 F1 值为 96.72%。
  • 所有 MIDI 文件都有统一的格式,文件名格式为「姓_名_曲目名_youtubeID.mid」。
  • 包含作曲家国籍和出生年份信息。
  • 数据集大小为 193 Mb。
  • 使用许可为 CC BY 4.0。

钢琴转谱

钢琴转谱是一项十分具有挑战性的任务,原因之一在于钢琴是复音乐器,存在多个钢琴按键同时被按下的情况,不同音的组合方式多达上万种。针对此任务,字节跳动开源了一套高精度钢琴转谱系统 [2]:

该转谱系统的特点包括:

  • 能够将任意声部数目、任意复杂度,甚至双钢琴、多钢琴的钢琴音频转谱为 MIDI 文件。
  • 实现了任意时间精度的音符检测,突破了之前算法 32 毫秒识别精度的限制。
  • 对每个音符实现了 128 个粒度的力度识别。
  • 同时包含了钢琴音符和钢琴踏板的识别。
  • 在 MAESTRO 评测数据集上取得 96.72% 的 F1 值,超越了 Google 系统的 94.80%。
  • 预训练模型的代码以 Apache 2.0 协议开源。

在钢琴中,琴键的触发(onset)、抬起(offset)、按下的状态(frame)和力度(velocity)是钢琴发声的重要因素。字节跳动研究者提出了一种通过预测触发、抬起绝对时间进行钢琴转谱的方法。在训练中,网络的训练标签不再是二值 0 或 1,而是和绝对时间有关的连续值 g(△),以此实现任意精度的钢琴转谱:


训练的标签能够表示毫秒级别的触发和抬起偏移:

研究者搭建了基于深层神经网络的转谱模型。一段音频波形首先被转换成对数梅尔谱图(Log mel spectrogram)作为输入特征。卷积循环神经网络被用作声学模型,分别预测触发、抬起、按下的状态和力度。每个声学模型包含 8 个卷积层用来提取高层抽象特征,2 个双向循环神经网络层(GRU)用来学习音频的长时依赖性。每个声学模型的输出都是 0 到 1 之间的连续值。

模型训练完毕后,在推断阶段,研究者提出了一种计算绝对触发和抬起时间的算法,可预测任意时间精度的音符触发和抬起:


下图显示了郎朗演奏《爱之梦》片段的音频对数梅尔谱图、音符转谱结果和踏板转谱结果:

此外,研究者使用一款名为雅马哈 Disklavier 的自动演奏钢琴播放转谱的 MIDI, 重构了伟大钢琴家们的历史演出 。业内人士分析,这项工作无疑是令人振奋的,字节跳动可能会将这项技术应用于后疫情时代的线上音乐直播、智能音乐创作中。

示例参见:

参考文献:

[1] Qiuqiang Kong, Bochen Li, Xuchen Song, Yuan Wan, and Yuxuan Wang. “High-resolution Piano Transcription with Pedals by Regressing Onsets and Offsets Times.” arXiv preprint arXiv:2010.01815 (2020).

[2] Qiuqiang Kong, Bochen Li, Xuchen Song, Yuan Wan, and Yuxuan Wang. “High-resolution Piano Transcription with Pedals by Regressing Onsets and Offsets Times.” arXiv preprint arXiv:2010.01815 (2020).

代码&数据集:

4 Likes

很感兴趣,正在搭建平台。。不过pytorch的安装也太麻烦了,折腾了半天还没弄好。

1 Like

谢谢!很高兴现在我已经使用您的方法完成配置2个月了,非常的好用。同时在和KongQiuqiang的私信中也有所收获!

1 Like

牛掰。。。。。。。。。