Библиотека для извлечения мелодии из напевания/пения и, возможно, преобразования ее в формат MIDI.

Я пытаюсь разработать приложение для Android, которое будет зависеть от распознавания мелодии с помощью напевания/пения. Прежде чем погрузиться в обработку сигналов, я хотел бы знать, есть ли какая-либо библиотека (желательно на Java), которая помогла бы мне выполнить эту задачу.

Я провел небольшое исследование и обнаружил следующее:

  1. ВаоН. Это не библиотека, и она производит неплохой результат, но довольно шумный.

  2. моллюск. Это библиотека C++, которую мне еще не удалось скомпилировать, чтобы проверить ее вывод.

Я хотел бы, чтобы ваш вклад в дело.

Разумно ли библиотеке ожидать чистый сигнал с низким уровнем шума? Также предназначено ли «распознавание» для сопоставления с некоторыми известными мелодиями или для преобразования напевания в потенциально новые мелодии? Первый вариант может не требовать поддержки формата MIDI, просто получить какой-то отпечаток мелодии (что намного проще - например, может просто потребоваться распознать вверх/то же/вниз/вверх для высоты тона - достаточное количество нот может быть достаточно хорошим, чтобы сузить возможные совпадения).
Спасибо за ваш комментарий. Извините, если я был неясен. Мне нужно преобразовать мелодию в MIDI. Это будет вовсе не аудиопоиск по отпечатку пальца.

Ответы (1)

Возможно, aubio может работать на вас?

Его функции включают в себя сегментацию звукового файла перед каждой из его атак, определение высоты тона, прослушивание ритма и создание миди-потоков из живого аудио.

Это библиотека C, которая утверждает, что не имеет зависимостей, но имеет оболочку Python и может работать с Linux через JACK, который выглядит совместимым с Android .

Удачи, держите нас в курсе своих результатов (я знаю, что это упоминает OS X, но я бы выбрал устройство Android, если ваше решение чистое и работает с инструментами).