Нужна библиотека аудио анализа для создания обратной связи в реальном времени из аудио файла?

В реальном времени это не обязательно, однако я создаю игру для своего проекта на последнем году и хочу использовать возможности звука для создания динамических уровней, основанных исключительно на воспроизводимой музыкальной дорожке. Я стремлюсь создать эту игру для PS Vita с использованием PlayStation Mobile и C #, но при желании могу перейти на C ++ и PSP.

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

У меня нет сомнений в том, что я пытаюсь работать с этими необработанными данными, я просто хочу узнать, каким образом я могу получить эту информацию в первую очередь. Если я могу извлечь сэмплы и установить различные характеристики этих сэмплов, я могу сохранить их и обработать изменения громкости, высоты тона и т. Д. Для создания заметок и т. Д.

Я использую C #, но если это вообще возможно, я могу использовать p / invoke или переключить свой проект на другое устройство, которое использует C ++ вместо C #.

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

Большое спасибо, ребята.

6

Решение

Проблема, которую вы описываете здесь, связана с музыкой / аудио извлечение признаков и существует значительная часть академической работы, на которую вы можете опираться. Еще один полезный термин для поиска Поиск музыкальной информации (MIR).

Список «особенностей», которые исследователи пытались извлечь из записей, велик и разнообразен: от детерминированных вещей, таких как высота и ключ, до эмоциональных характеристик, таких как «энергия».

Большинство из них оказываются более сложными, чем вы можете себе представить, и, как правило, с точностью около 60-70% — хотя для ваших требований это, вероятно, достаточно.

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

Обновление: еще один полезный термин искусства Обнаружение начала — это обычно используется для описания алгоритмов обнаружения биений.

3

Другие решения

К сожалению, я не думаю, что вы сможете использовать C # для этого — AFAIK, для этого нет JIT-компилятора. Я помню, что читал о чем-то для Mono, что сделало бы его доступным для использования с C #, но сейчас я не уверен.

Тем не менее, я бы пошел с C ++. Если вы пойдете по этому пути, вы сможете использовать огромное количество библиотек аудио анализа, таких как CLAM (http://clam-project.org/).

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

4

Aubio это библиотека C / C ++, которая, помимо прочего, отслеживает высоту тона, обнаружение начала и отслеживание ударов в минуту.

Что касается «извлечения амплитуды формы волны», форма волны является амплитуду, т. е. вы можете просто выбрать аудиосэмпл с наибольшим абсолютным значением каждые n сэмплов и использовать это значение для выполнения части амплитуды визуализации.

Вот код это может помочь вам начать читать данные WAVE в C #.

Вот немного информации о написании оболочки C # для FFTW библиотека.

1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector