萬餘首鋼琴作品一千多小時,字節跳動全球最大鋼琴MIDI數據集
機器之心專欄
機器之心編輯部
近期,字節跳動發佈全球最大的古典鋼琴數據集 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 位不同作曲家的曲目數量分佈:
研究者首先從開放的國際音樂數字圖書館 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://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(△),以此實現任意精度的鋼琴轉譜:
00:00/00:00倍速
下圖顯示了郎朗演奏《愛之夢》片段的音頻對數梅爾譜圖、音符轉譜結果和踏板轉譜結果:
示例參見:
自動演奏鋼琴重構李雲迪《鍾》: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