iPhone: мощность процессора, чтобы сделать DSP / преобразование Фурье / частотную область?
-
07-07-2019 - |
Вопрос
Я хочу на постоянной основе анализировать звук 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, в ваше приложение ... есть опция компилятора большого пальца, которая усложняет арифметику с плавающей запятой. Вам нужно перевести его в режим охраны.