楠木軒

萬餘首鋼琴作品一千多小時,字節跳動全球最大鋼琴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 位不同作曲家的曲目數量分佈:

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 之間的連續值。

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

轉譜結果

00:00/00:00倍速

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

此外,研究者使用一款名為雅馬哈 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