Есть ли бумага или модель, чтобы определить, играет ли музыкальный инструмент правильную ноту или нет? - PullRequest
0 голосов
/ 28 июня 2019

Я хочу создать модель, которая может определять, играет ли музыкальный инструмент правильную ноту или нет.

Пример: укажите файл mp3 и музыкант играет на пианино.Как проверить, играет ли музыкант правильную ноту по mp3-файлу.

У меня был поиск GG, но я не нашел ничего связанного.

1 Ответ

0 голосов
/ 28 июня 2019

Вы не можете просто сравнивать необработанные аудиофайлы напрямую, как вы, вероятно, знаете. Давайте разберем проблему на подзадачи, которые вы можете решить.

  • Декодируйте аудио в несжатый PCM.
  • Обрабатывайте звук в формате PCM в стандартный формат, состоящий из серии «нот», таких как MIDI.
  • Выровняйте свои последовательности как-нибудь, возможно, используя что-то вроде Dynamic Time Warping , что позволит вам измерять вставки / удаления при запуске алгоритма.
  • Подсчитайте различия между вашими последовательностями и определите количество ошибок по некоторой метрике.

Я бы порекомендовал вам забыть о запуске mp3-файлов и вместо этого найти бесплатные онлайн-файлы MIDI (или создать свои собственные). Протестируйте свой алгоритм, взяв эталонный MIDI-файл, изменив его различными способами, а затем запустив алгоритм для оригинальной и каждой измененной версии.

Если вы зашли так далеко и довольны результатами, то переходите к проблеме преобразования (аудиофайл -> MIDI). Конечно, вам не нужно использовать MIDI, вы можете создать свой собственный формат; это зависит от вас, как справиться с этим. Файл WAV обычно представляет собой просто заголовок + PCM, так что вы можете посмотреть на это:

преобразование WAV-MIDI

...