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

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

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

Ответы [ 5 ]

3 голосов
/ 16 сентября 2009

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

3 голосов
/ 15 сентября 2009

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

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

2 голосов
/ 06 ноября 2009

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

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

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

1 голос
/ 11 мая 2010

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

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

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

http://github.com/alexbw/iPhoneFFT

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

0 голосов
/ 20 октября 2009

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

...