iPhone: мощность процессора, чтобы сделать DSP / преобразование Фурье / частотную область?

StackOverflow https://stackoverflow.com/questions/1425504

Вопрос

Я хочу на постоянной основе анализировать звук MIC (не просто снимок или предварительно записанный образец), отображать график частот и отфильтровывать определенные аспекты звука. IPhone достаточно мощный для этого? Я подозреваю, что ответ - да, учитывая распознавание голоса Google и iPhone, Shazaam и другие приложения для распознавания музыки, а также приложения для настройки гитарного тюнера. Однако я не знаю, с какими ограничениями мне придется иметь дело.

Кто-нибудь тренируется с этой областью?

Это было полезно?

Решение

Пример кода Apple aurioTouch имеет реализацию FFT.

Другие советы

В приложениях, которые я видел, для распознавания музыки и голоса требуется подключение к Интернету, поэтому весьма вероятно, что они просто подсчитывают некоторые функции аудио и отправляют эти функции через http для распознавания на сервер.

В любом случае частотные графики и фильтрация выполнялись ранее на меньших процессорах более десятка лет назад. У iPhone не должно быть проблем.

" Достаточно быстро " может зависеть от ваших (или ваших клиентов) ожиданий в отношении того, какое разрешение частоты вы ищете, и вашей базовой частоты дискретизации.

N-точечное БПФ имеет порядок N * log2 (N) вычислений, поэтому, если у вас недостаточно MIPS, уменьшение N является потенциальной областью уступки для вас.

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

Я сделал приложение, которое вычисляет БПФ в реальном времени

http://www.itunes.com/apps/oscope

Вы можете найти мой код для FFT на GitHub (хотя он немного грубоват)

http://github.com/alexbw/iPhoneFFT

Новый Apple SDK для iPhone OS 4.0 позволяет выполнять встроенное вычисление FFT с помощью функции «Ускорение». библиотеки, так что я бы определенно начал работать с новой ОС, если она является центральной частью функциональности вашего приложения.

Вы не можете просто перенести код FFT, написанный на C, в ваше приложение ... есть опция компилятора большого пальца, которая усложняет арифметику с плавающей запятой. Вам нужно перевести его в режим охраны.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top