iPhone: ¿potencia de la CPU para hacer DSP / transformación de Fourier / dominio de frecuencia?

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

Pregunta

Quiero analizar el audio MIC de forma continua (no solo un snipper o muestra pregrabada), y mostrar el gráfico de frecuencia y filtrar ciertos aspectos del audio. ¿Es el iPhone lo suficientemente potente como para eso? Sospecho que la respuesta es un sí, dado el reconocimiento de voz de Google y iPhone, Shazaam y otras aplicaciones de reconocimiento de música, y aplicaciones de afinación de guitarra. Sin embargo, no sé con qué limitaciones tendré que lidiar.

¿Alguien juega con esta área?

¿Fue útil?

Solución

El código de muestra de Apple aurioTouch tiene una implementación FFT.

Otros consejos

Las aplicaciones que he visto que hacen algún tipo de reconocimiento de música / voz necesitan una conexión a Internet, por lo que es muy probable que estos solo hagan algún tipo de cálculo de funciones en el audio y envíen estas funciones a través de http para hacer el reconocimiento en el servidor.

En cualquier caso, los gráficos de frecuencia y el filtrado se han realizado anteriormente en CPU menores hace una docena de años. El iPhone no debería ser un problema.

" Suficientemente rápido " puede ser una función de sus expectativas (o las de sus clientes) sobre cuánta resolución de frecuencia está buscando y su frecuencia de muestreo base.

Una FFT de punto N está en el orden de los cálculos de N * log2 (N), por lo que si no tiene suficientes MIPS, reducir N es un área potencial de concesión para usted.

En muchas aplicaciones, la frecuencia de muestreo no es negociable, pero si lo fuera, sería otra posibilidad.

Hice una aplicación que calcula la FFT en vivo

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

Puedes encontrar mi código para el FFT en GitHub (aunque es un poco tosco)

http://github.com/alexbw/iPhoneFFT

El nuevo SDK de iPhone OS 4.0 de Apple permite el cálculo integrado de la FFT con el " Acelerar " biblioteca, por lo que definitivamente comenzaría a trabajar con el nuevo sistema operativo si es una parte central de la funcionalidad de su aplicación.

No puede simplemente portar código FFT escrito en C en su aplicación ... existe la opción del compilador de pulgar que complica la aritmética de coma flotante. Necesitas ponerlo en modo brazo

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top