После прочтения №. сообщений здесь, я применил алгоритм FFT в записанном аудио (.wav) файле, чтобы преобразовать его из временной области в частотную область.Java - Поиск частоты и амплитуды аудиосигнала с использованием FFT
В результате я получил массив, содержащий несколько значений, как
magnitude[i] = sqrt(re*re+im*im);
Теперь, как название говорит, что я должен найти частоту и амплитуду сигнала (сложный звуковой т.е. голоса), используя эту величину массива, но я не знаю, как сделать дальнейшую обработку с использованием этого массива. Размер БПФ составляет 1024, а частота дискретизации - 48000 Гц. Пожалуйста, помогите мне в дальнейшей обработке.
Спасибо за быструю помощь. Пол, и да, как вы сказали, я пытаюсь найти частоту. и амплитуда сложного звука. Итак, как я должен обрабатывать его с помощью этого массива амплитуд? – Panky90
Если вы хотите сделать * pitch * detection, вам действительно нужно вернуться к чертежной доске. Это возможно с помощью методов на основе FFT, но это нетривиально (см. «Спектр гармонических продуктов»), и есть лучшие методы. Взгляните на [страницу Википедии об обнаружении высоты тона] (https://en.wikipedia.org/wiki/Pitch_detection_algorithm) в качестве отправной точки. –
Ok Paul, я просмотрю эту страницу wiki. Но есть ли у вас реализация java любого из таких алгоритмов или java-библиотеки, которая может служить мне для этой цели? – Panky90