Вы не можете просто сравнивать необработанные аудиофайлы напрямую, как вы, вероятно, знаете. Давайте разберем проблему на подзадачи, которые вы можете решить.
- Декодируйте аудио в несжатый PCM.
- Обрабатывайте звук в формате PCM в стандартный формат, состоящий из серии «нот», таких как MIDI.
- Выровняйте свои последовательности как-нибудь, возможно, используя что-то вроде Dynamic Time Warping , что позволит вам измерять вставки / удаления при запуске алгоритма.
- Подсчитайте различия между вашими последовательностями и определите количество ошибок по некоторой метрике.
Я бы порекомендовал вам забыть о запуске mp3-файлов и вместо этого найти бесплатные онлайн-файлы MIDI (или создать свои собственные). Протестируйте свой алгоритм, взяв эталонный MIDI-файл, изменив его различными способами, а затем запустив алгоритм для оригинальной и каждой измененной версии.
Если вы зашли так далеко и довольны результатами, то переходите к проблеме преобразования (аудиофайл -> MIDI). Конечно, вам не нужно использовать MIDI, вы можете создать свой собственный формат; это зависит от вас, как справиться с этим. Файл WAV обычно представляет собой просто заголовок + PCM, так что вы можете посмотреть на это:
преобразование WAV-MIDI