Примечание Обнаружение начала с использованием спектральной разницы - PullRequest
1 голос
/ 24 июня 2011

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

Что касается этого, я немного запутался, потому что у меня возникли проблемы с тем, как спектральная энергия или результаты из бункера FFT могут быть использованы для определения появления нот. Потому что разве ноты не представлены резкими пиками по амплитуде?

Может ли кто-нибудь просветить меня в этом? Спасибо!

Ответы [ 3 ]

4 голосов
/ 03 апреля 2012

Это самый простой способ думать о начале заметки:

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

Что это означает в частотной области:

FT постоянного сигнала, ну, ПОСТОЯННО! и плоский

Когда происходит наступление события, происходит быстрое увеличение спектрального содержания.

Хотя вы можете подумать: «Ну, вы на самом деле говорите о пике наступления, верно?» не за что. Мы на самом деле не заинтересованы в пике начала, а скорее в нарастающем фронте сигнала. Когда происходит резкое увеличение сигнала, высокочастотное содержимое увеличивается.

Один из способов сделать это - использовать функцию спектральной разности:

1) взять сигнал временной области и разрезать его на перекрывающиеся полосы (обычно 50% перекрытия)

2) применить окно Хемминга / Ханна (это должно уменьшить спектральное загрязнение) (помните, что разрезание сигнала на окна похоже на умножение его на импульс, в частотной области это как свертывание сигнала с функцией sinc)

3) Применить алгоритм FFT к двум последовательным окнам

4) Для каждой ячейки DFT рассчитайте разницу между ячейками Xn и Xn-1, если она отрицательна, установите ее на ноль возведите в квадрат результаты и суммируйте все бины вместе

5) повторить до конца сигнала.

6) ищите пики в сигнале, используя медианный порог, и у вас есть время начала!

Источник:

http://bingweb.binghamton.edu/~ahess2/Onset_Detection_Nov302011.pdf

и http://www.elec.qmul.ac.uk/people/juan/Documents/Bello-TSAP-2005.pdf

1 голос
/ 15 марта 2012

"Потому что разве ноты не представлены резкими пиками по амплитуде?" A: не всегда. На ударных инструментах (включая пианино) это действительно так, но для скрипки, флейты и т. Д. Ноты часто «скользят» друг к другу при изменении частоты без резкого увеличения амплитуды. Если вы придерживаетесь одного инструмента, как, например, обнаружение наступления пианино, выполнимо. Обобщенное обнаружение начала является гораздо более сложной проблемой. Существует около десятка примитивных функций, которые были использованы для обнаружения начала. После того, как вы их закодируете, вам все равно придется решить, как лучше всего их использовать.

1 голос
/ 24 июня 2011

Вы можете увидеть резкие различия в амплитуде на определенной частоте как предполагаемые появления звука.Например, если флейта переключается с игры G5 на игру C, произойдет резкое падение амплитуды спектра на отметке 784 Гц.

Если вы не знаете, какую частоту исследовать, величинавектора БПФ даст вам амплитуду каждой частоты в течение некоторого окна во времени (с разрешением, зависящим от длины временного окна).Выберите свою частоту или группу частот и разведите два БПФ двух разных временных окон.Это может дать вам что-то, что можно использовать как часть оценки вероятности появления звука или изменить где-то между двумя временными окнами.Раздвижные окна или последовательное приближение их местоположения во времени может помочь сузить время появления предполагаемой ноты или других существенных изменений в звуке.

...