Нарисуйте график спектрограммы аудиофайла в android

Я разрабатываю приложение для Android, в котором мне нужно создать график спектрограммы (который представляет собой визуальное представление спектра частот звука, которые меняются со временем). У меня был аудиофайл, и я использовал БПФ для получения сигнала в частотной области, теперь мне нужно нарисовать график спектрограммы. Мне нужен API, который поможет мне нарисовать эту диаграмму, похожую на диаграммы в Matlab. Любое предложение?


person sandra    schedule 28.08.2014    source источник
comment
Вам просто нужна помощь с составлением графиков? Разложение звукового файла на образцы PCM? Выполнение преобразования БПФ указанных выборок, чтобы их можно было изобразить в виде графиков? ЧТО ВЫ ПРОВЕРИЛИ?   -  person selbie    schedule 28.08.2014
comment
Да, мне просто нужна помощь с построением графиков, все остальное я сделал, это записал голос в файл .pcm и использовал БПФ. Теперь мне просто нужна помощь в построении графика спектрограммы.   -  person sandra    schedule 28.08.2014
comment
Быстрый поиск показал jzy3d, который, похоже, может иметь то, что вы ищете.   -  person SleuthEye    schedule 28.08.2014


Ответы (2)


Объявите в макете пустой элемент <View> подходящего размера и подходящего для того, что вы хотите показать. Учитывая его идентификатор myview.

Реализуйте свой собственный класс, который основан на представлении и переопределяет onDraw(Canvas canvas). Назовем этот класс MyView. Добавьте любые методы в этот класс, чтобы он мог передавать ему данные (т.е. результат БПФ).

В методе onCreate вашей Activity вызовите findViewById(R.id.myview).setContentView(new MyView());

Реализуйте MyView.onDraw (), чтобы визуализировать данные на холсте. Вызовите метод invalidate в своем классе представления, чтобы принудительно перерисовать его при изменении данных.

Что рисовать, решать только вам. Я представляю себе набор прямоугольников или линий для каждой полосы частот. Один цвет для «настоящего», а другой для «воображаемого».

person selbie    schedule 28.08.2014
comment
Вы уверены, что нет API для рисования графика спектрограммы в Android? - person sandra; 28.08.2014
comment
Я ничего не знаю в основных библиотеках Android SDK, которые рисуют графики спектрограмм. Это будет очень специализированная библиотека классов для SDK, предназначенная для использования в качестве платформы для всех приложений. Вы можете поискать сторонние библиотеки, если не хотите рендерить их самостоятельно. - person selbie; 29.08.2014

Если вы ищете библиотеку Android, которая поможет вам нарисовать спектрограмму, при условии, что у вас есть точки данных после выполнения БПФ аудиосигнала, вам следует изучить следующие библиотеки.

MPAndroidChart

AChartEngine

EazeGraph

person Nishant.    schedule 17.07.2015