Библиотеки или стратегии для обнаружения повторяющихся разделов в аудиофайле

У меня есть (длинный) плейлист песен определенного жанра. Это повторяющийся жанр, длинные фрагменты каждой песни, как правило, содержат одни и те же 4 повторяющихся удара.

Я хочу сделать программу, которая:

  • берет список звуковых файлов (плейлист)
  • для каждой песни циклически повторяются каждые 4 удара (1 "такт")
  • проверяет, совпадает ли текущий бар * с последним баром
  • если это так, экспортируйте аудио этого бара и продолжайте

* желательно, чтобы иметь возможность сравнивать текущий бар с последним баром и проверять его сходство в пределах определенного поля, если это имеет смысл

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

Итак, суть, я хотел бы знать 2 вещи:

Во-первых, я относительно хорошо знаю Java, но никогда не работал со звуком, поэтому понятия не имею, с чего начать. Если бы я мог указать на библиотеку или фреймворк или что-то, что могло бы помочь с такими вещами, это было бы здорово.

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

Спасибо!

0 ответов

Другие вопросы по тегам