節跳動發佈全球最大鋼琴MIDI數據集:2784 位作曲家 10854 首作品均包含在內

近期,字節跳動發佈全球最大的古典鋼琴數據集 GiantMIDI-Piano,包括來自 2,784 位作曲家 10,854 首作品的 MIDI 文件,總時長爲 1,237 小時。研究者爲完成該數據集的構建,開發並開源了一套高精度鋼琴轉譜系統。

鋼琴轉譜是一項將鋼琴錄音轉爲音樂符號(如 MIDI 格式)的任務。在人工智能領域,鋼琴轉譜被類比於音樂領域的語音識別任務。然而長期以來,在計算機音樂領域一直缺少一個大規模的鋼琴 MIDI 數據集。

近期,字節跳動發佈了全球最大的古典鋼琴數據集 GiantMIDI-Piano [1]。在數據規模上,數據集不同曲目的總時長是谷歌 MAESTRO 數據集的 14 倍。

論文地址:https://arxiv.org/abs/2010.07061

項目地址:https://github.com/bytedance/GiantMIDI-Piano

字節跳動研究科學家表示:「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]:

論文地址:https://arxiv.org/abs/2010.01815
項目地址:https://github.com/bytedance/piano_transcription

該轉譜系統的特點包括:

  • 能夠將任意聲部數目、任意複雜度,甚至雙鋼琴、多鋼琴的鋼琴音頻轉譜爲 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 之間的連續值。

模型訓練完畢後,在推斷階段,研究者提出了一種計算絕對觸發和擡起時間的算法,可預測任意時間精度的音符觸發和擡起:

轉譜結果:

https://v.qq.com/x/page/x3164aj955t.html

下圖顯示了郎朗演奏《愛之夢》片段的音頻對數梅爾譜圖、音符轉譜結果和踏板轉譜結果:

此外,研究者使用一款名爲雅馬哈 Disklavier 的自動演奏鋼琴播放轉譜的 MIDI,重構了偉大鋼琴家們的歷史演出。業內人士分析,這項工作無疑是令人振奮的,字節跳動可能會將這項技術應用於後疫情時代的線上音樂直播、智能音樂創作中。

示例參見:

自動演奏鋼琴重構李雲迪《鍾》:https://www.bilibili.com/video/BV1JD4y1d7Pn
自動演奏鋼琴重構古爾德 1981 年《哥德堡變奏曲》:https://www.bilibili.com/video/BV1M541177x4

參考文獻:

[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).

代碼&數據集:

https://github.com/bytedance/piano_transcription
https://github.com/bytedance/GiantMIDI-Piano

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章