преобразование wav к midi

Я плохо знаком с этим полем - но я должен выполнить преобразование WAV к midi в Java. Существует ли способ знать то, что точно шаги вовлечены в преобразование WAV к midi? У меня есть очень общее представление, поскольку в Вас должны; выберите wav файл, отфильтруйте его, используйте FFT для спектрального анализа, выделения признаков и затем запишите извлеченные функции на MIDI. Но я не могу найти твердые источники или бумаги как в том, как сделать все это? Кто-то может дать мне ключ к разгадке как в том, как и где запустить? Действительно ли там какие-либо API С открытым исходным кодом доступны для этого процесса преобразования WAV к midi?

Усовершенствование спасибо

9
задан finnw 7 February 2011 в 11:05
поделиться

4 ответа

Это более вовлеченный процесс, чем вы можете себе представить.

Эта проблема исследований часто упоминается как музыкальная транскрипция : акт преобразования низкоуровневого представления музыки (например, формы волны) в представление более высокого уровня, такое как MIDI или даже ноты.

Усовершенствование вашего решения будет зависеть от сложности ваших входных данных. Тонны исследовательских работ решают музыкальную транскрипцию только на монофоническом пианино или барабанах ... потому что они легко транскрибировать. (Относительно.) Скрипка сложнее. Голос еще сложнее. Скрипка плюс голос плюс пианино гораздо сложнее. Симфония почти невозможна. Вы получаете картинку.

Основные элементы музыкальной транскрипции включают в себя любую из следующих областей перекрытия:

  1. (Multi) оценка шага
  2. распознавание прибора, Timbral Modeling
  3. Обнаружение ритма
  4. Примечание. Начало / обнаружение смещения
  5. / Структура моделирования

Поиск документов на «Музыкальную транскрипцию» в Google Scholar или из разбирательства ISMIR: http://www.ismir.net . Если вы больше заинтересованы в одной из вышеперечисленных субтопичх, я могу указать вам. Удачи.

Редактировать: что говорят, что есть существующие решения, которые мы все можем найти в Интернете. Не стесняйтесь попробовать их. Но как вы делаете, оцените их с критическим глазом и ухом. Какие типы аудиосигналов вызовут транскрипцию потерпеть неудачу?

Редактировать 2: Ах, вы только делаете это для фортепиано. Хорошо, это выполнимо. Музыкальная транскрипция продвинулась до такой степени, что он может транскрибировать монофонический пианино довольно хорошо. Концерт Рахманинов все равно будет представлять проблемы.

Наши рекомендации зависят от вашей цели. Вы говорите «, нужно , чтобы выполнить ... в Java ». Итак, звучит так, как вы просто хотите что-то работать независимо от того, как оно тебя там. В этом случае я согласен на 100% с другими: используйте что-то, что существует.

Это на самом деле интересный вопрос; Все библиотеки мира, которые я знаю, обычно C / C ++ / Python / MatLab. Но не Java. Echonest имеет Java API, но я не думаю, что это делает транскрипцию на уровне заметок. http://developer.echonest.com . (Редактировать: это Транскрипция на уровне примечания. Возвращенные данные включают в себя шаг, тембр, бить, татум и многое другое. Но я нахожу полифонию все еще проблема.)

О, Марсис исходя из. Здорово. Я думал, что это просто C ++. http://marsyas.info/ Я рекомендую это. Это разработано Джордж Цанетакисом, профессором в мире. Он делает анализ уровня сигнала и должен быть хорошим вариантом.

Теперь, если это для веселого опыта обучения, я думаю, что вы можете использовать утилиты звуковых манипуляций в Java для эксперимента с сигналом WAV и посмотрите, что выходит.

Редактировать: эта страница описывает программное обеспечение MIR лучше, чем я могу: Инструменты, которые мы используем

для MATLAB, вы можете быть заинтересованы в MIR Toolbox

здесь хорошая страница общих наборов данных : DataSets MIR

27
ответ дан 4 December 2019 в 06:35
поделиться

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

Нет API для преобразования WAV для MIDI. VAMP - это рамка - это каркас для плагинов извлечения функций, но для автоматической транскрипции вам необходимо использовать все функциональные возможности существующих плагинов, а также функциональность реализации, которая пока не существует ни в одном из них.

Просмотрите описания плагинов на странице Страница загрузки VAPP , любые описания, которые вы не понимаете, являются темами, вы должны начать исследовать, если вы хотите сделать это.

4
ответ дан 4 December 2019 в 06:35
поделиться

Если вам не нужно автоматизировать эту задачу (т. Е. Для веб-сайта, где люди могут загружать MP3 и получить файлы MIDI), то вам следует рассмотреть возможность использования такового инструмента Melodyne , который уже неплохо приходит в этом. Как отметил Стив, это очень сложная задача для достижения, и даже лучшие алгоритмы и решения, присутствующие на данный момент, не являются на 100%.

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

3
ответ дан 4 December 2019 в 06:35
поделиться

Дельфин, извините, что это Brusque, но вы полностью недооценили проблему. То, что вы хотите достичь - полная звуковая транскрипция фортепиано, включающая все параметры, которые использовались во время воспроизведения, понадобится огромное количество исследований с людьми, которые работали в поле много лет. Даже группа PHD в обработке сигналов придется инвестировать много работы даже близко к тому, что вы имеете в виду. Музыкальная транскрипция нуждалась в десятилетиях работы даже на полпути надежным. Я бы предложил вам выбрать другую проблему, которую вы можете справиться лучше, чем это.

1
ответ дан 4 December 2019 в 06:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: