Здравствуйте, не знаю в какой раздел писать, поэтому пишу сюда.
Цель - есть фаил со звуками (из любого видео выранная звуковая дорожка). Как нибудь можно определить, что в файле есть музыка, не важно какая?
Определить имеется ли ритм у музыки (beats per minute, bpm)
Определить мажор-минор и ключ мелодии (частотный анализ)
Определить пики громкости и среднюю громкость
Выделить более громкие части, паузы, перерывы, припевы, голос?
Выделить ударные и шумовые инструменты (повторяющиеся низкочастотные фрагменты дадут подсказку про ударные и басы, а широкополосные по частоте фрагменты дадут подсказку по тарелки и прочие шипяще-шумовые хз как они по научному называются).
kvakvs
> Определить имеется ли ритм у музыки
Ритмичным может оказаться стук колёс поезда или звук забивания свай.
kvakvs
> Определить мажор-минор и ключ мелодии
Многие птицы поют вполне по нотам.
Mikle
> Ритмичным может оказаться стук колёс поезда или звук забивания свай.
А разве это не музыка?)
bool isMusic(void* samples, int length, int channels, int rate, int bits ) { return true; }
После популяризации дабстепа, уже любые звуки можно считать музыкой.
Думаю, фурье преобразование, просканировать буффер, найти где чётко выделяются аккорды, построить их в кое-какую зависимость... На практике скорее всего важен будет первый обертон. Если он есть и "дискретно" меняется, то скорее всего это музыка.
Тема в архиве.