1

Я беру образец песни и выполняю БПФ (быстрое преобразование Фурье) на образце. Я могу получить частоты песни, но я не могу получить время, в которое происходят эти частоты. Таким образом, это в основном становится бесполезным, поскольку я должен сопоставить его с другим образцом, если я не получу информацию о времени.Время извлечения, на котором происходят частоты

Как это сделать?

+0

Не уверен, что вы нашли свой ответ или нет, но недавно я встретил библиотеку api с открытым исходным кодом под названием «musicg». Это довольно просто, но, очевидно, вы потеряете часть свободы делать все сами. Однако у меня было несколько хороших тестов. –

ответ

5

Вам нужно разбить образец на несколько меньших временных рядов, а FFT - на каждый фрагмент. Каждый результат FFT дает вам среднее частотное содержание по этому фрагменту времени. Обычно это называется Spectrogram

+0

Короткие, сладкие, и именно то, что мне нужно было услышать. +1 –

3

Ответ на ваш вопрос включает в себя компромисс по частоте, который вам нужно будет решить. Чем меньше фрагмент времени, который вы анализируете, чтобы получить окно с меньшим временем неопределенности, тем больше точность частоты. И наоборот. Если вам нужна точная частота, то требуется окно времени, и, следовательно, неопределенность времени может стать бесконечно большой.

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