Вставлення та кадри: Двоцільна транскрипція фортепіано

Оновлення (20.09.18): Спробуйте нову реалізацію JavaScript!

Оновлення (30.10.18): Прочитайте про вдосконалення та новий набір даних у наборах даних MAESTRO та Wave2Midi2Wave!

Наступ та рамки - це наша нова модель для автоматичної транскрипції поліфонічної фортепіанної музики. Використовуючи цю модель, ми можемо перетворити необроблені записи сольних виступів на фортепіано в MIDI.

Наприклад, ви коли-небудь робили запис про себе, імпровізуючи за фортепіано, і пізніше хотіли знати, що саме ви грали? Ця модель може автоматично транскрибувати цей запис на фортепіано в піаніно MIDI, який можна використовувати для відтворення тієї самої музики на синтезаторі або як початкову точку для нот. Автоматична транскрипція відкриває багато нових можливостей для аналізу музики, яка недоступна у позначеному вигляді, та для створення набагато більших наборів навчальних даних для генеративних моделей.

Ми можемо досягти нового рівня техніки, використовуючи CNN та LSTM для прогнозування подій, що наступають, а потім використовуючи ці прогнози, щоб обумовити рамкові прогнози висоти тону.

Ви можете випробувати нашу модель із власними записами на фортепіано у своєму браузері, відвідавши Piano Scribe або блокнот Colab Onsets and Frames. Ми також зробили вихідний код доступним на GitHub як для Python, так і для JavaScript. Більш технічні подробиці доступні в нашій статті про arXiv: Onsets and Frames: Dual-Objective Piano Transcription.

Модель Оцінка транскрипції F1 (0–100)
Попередній рівень техніки 23.14
Наступ та рамки 50,22
Показники якості транскрипції.
Більше метрик та деталей доступно у нашій статті.

Наведені вище приклади є гарною ілюстрацією роботи нашої системи. Безумовно, є деякі помилки, але це робить хорошу роботу з точки зору фіксації гармонії, мелодії та навіть ритму.

Причина, по якій наша модель працює так само добре, як і те, що ми розділили завдання виявлення нот на два стеки нейронних мереж: один стек навчений виявляти лише початкові кадри (перші кілька кадрів кожної ноти), а один стек навчений виявити кожен кадр, де нота активна. Попередні моделі використовували лише один стек, але ми виявили, що відокремлюючи завдання виявлення початку, ми змогли досягти набагато вищої точності.

двоцільна
Схема архітектури мережі.

Ми використовуємо вихідні дані детектора початку двома способами: ми подаємо вихідні дані цього детектора у детектор кадру як додатковий вхід, а також обмежуємо кінцевий вихід моделі, щоб запускати нові ноти лише тоді, коли детектор початку впевнений що нота в цьому кадрі.

Наша функція втрат - це сума двох перехресних ентропійних втрат: одна з боку початку та друга з боку кадру. У межах терміну втрат на основі кадру ми застосовуємо зважування, щоб заохотити точність на початку ноти. Оскільки вектор ваги призначає більші ваги раннім кадрам нот, модель стимулюється точно прогнозувати початок нот, зберігаючи таким чином найважливіші музичні події твору.

Малюнок нижче ілюструє важливість обмеження виходу моделі на основі детектора початку. Перше зображення показує результати з кадру та детекторів початку. Є кілька прикладів нотаток, які тривають лише кілька кадрів, або короткочасно активуються після деякої активності. Друге зображення показує результати кадру після обмеження детектором початку. Більшість нотаток, які були активними лише для кількох кадрів, не мали відповідного виявлення початку і були видалені. Видалено також випадки, коли нотатка ненадовго відновлювалася після деякої активності деякий час, оскільки друге настання цієї ноти не було виявлено.

На першому зображенні синій вказує на передбачення кадру, червоний - на прогнозування початку, а пурпуровий - накладання на кадр і початок прогнозу. На зображенні є лише трохи червоного (одна нота в центрі), що означає, що у більшості випадків, коли детектор початку вважає, що є нота, детектор кадру погоджується. Однак є кілька випадків, коли детектор кадру вважає, що є нотатка, а детектор початку - ні (ноти, на початку яких немає пурпурового блоку). Більшість із виявлених кадрів є неправильними, що ілюструє, наскільки важливо видаляти нотатки, які не мають виявленого початку.

Друге зображення показує передбачення після видалення нотаток, які не мали виявленого початку. Жовтий вказує на прогнозування кадру та основну істину, зелений - на помилковий прогноз кадру, а червоний - на основну істину без передбачення кадру.

Поточна якість виходу моделі на межі того, щоб дозволити подальші програми, такі як пошук музичної інформації та автоматичне створення музики. Ми працюємо над удосконаленнями, які, як ми сподіваємось, зроблять модель ще більш точною та корисною.

Ми хотіли б почути про ваш досвід із цією моделлю у списку пурпурових дискусій. Чи існувала транскрипція, яка давала особливо цікаві результати (хороші чи погані)? Спробуйте, відвідавши блокнот Onsets and Frames Colab або скориставшись кодом на GitHub, і дайте нам знати!

Приклади транскрипцій є похідною бази даних MAPS і ліцензовані відповідно до CC BY-NC-SA 4.0.