2009-09-15 5 views
8

Quiero analizar el audio MIC de manera continua (no solo un snipper o una muestra pregrabada), y mostrar el gráfico de frecuencia y filtrar ciertos aspectos del audio. ¿Es el iPhone lo suficientemente poderoso para eso? Sospecho que la respuesta es sí, dado el reconocimiento de voz de Google y iPhone, Shazaam y otras aplicaciones de reconocimiento de música y aplicaciones de sintonizador de guitarra. Sin embargo, no sé qué limitaciones tendré que enfrentar.iPhone: poder de CPU para hacer DSP/transformación de Fourier/dominio de frecuencia?

¿Alguien juega con esta área?

Respuesta

3

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

+1

Gracias. Wow. ¿Han oído esos desarrolladores sobre los comentarios? ¿Alguien ha hecho un puerto obj-c de su C++? No es que sea tan importante, pero podría hacerlo más legible. – mahboudz

+0

vDSP y FFT ahora forman parte de os4 con la adición de Accelerate.framework – slf

3

Las aplicaciones que he visto hacen algún tipo de reconocimiento de música/voz necesitan una conexión a Internet, por lo que es muy probable que estas solo hagan un cálculo de funciones en el audio y envíen estas características 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 hecho antes en CPUs menores hace una docena de años. El iPhone no debería ser un problema.

0

No se puede simplemente portar el 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. Debe ponerlo en modo de brazo

+0

El código mencionado anteriormente ya está escrito para el iPhone. – mahboudz

2

"Lo suficientemente rápido" puede ser una función de sus expectativas (o las de su cliente) sobre la resolución de frecuencia que busca y la frecuencia de muestreo de base.

Una N-point FFT es del orden de los cálculos N * log2 (N), por lo que si no tiene suficientes MIPS, la reducción de N es un área potencial de concesión para usted.

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

+0

La frecuencia de muestreo debe ser el doble de la frecuencia más alta que podría estar buscando, ¿correcto? – mahboudz

+1

Correcto. El espacio entre contenedores en el dominio de frecuencia es una función del número de puntos (N) en su FFT, y la frecuencia nyquist siempre está en la parte superior (la mitad de la frecuencia de muestreo). – Overdrive

1

Hice una aplicación que calcula la FFT en vivo

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

Puede encontrar el código de la FFT en GitHub (aunque es un poco áspero) de nuevo

http://github.com/alexbw/iPhoneFFT

de Apple iPhone OS 4.0 SDK permite el cómputo incorporado de la FFT con la biblioteca "Accelerate", así que definitivamente comenzaría a trabajar con el nuevo sistema operativo si es una parte central de la funcionalidad de su aplicación.

+0

Creo que lo vi mencionar oscope hoy en la lista de CoreAudio. ¡Felicidades por haberlo conseguido en la tienda de aplicaciones! – mahboudz

+0

Gracias! Serio fastidio acerca de las limitaciones de velocidad de muestreo, pero el iPhone sigue siendo una plataforma increíble para el análisis de audio, no obstante. – alexbw

Cuestiones relacionadas