Estoy buscando desarrollar una aplicación de iPhone que potencialmente implique un análisis "simple" de audio que está recibiendo desde el micrófono estándar del teléfono. Específicamente, estoy interesado en los altibajos de las imágenes de los micrófonos, y realmente todo lo que está en medio es irrelevante para mí.
¿Hay una aplicación que hace esto ya (solo para que yo pueda ver de lo que es capaz)? ¿Y dónde debería buscar comenzar con dicho código?
Gracias por su ayuda.Análisis de audio de iPhone
Respuesta
Mire en el Audio Queue framework. Esto es lo que utilizo para obtener una alta marca de agua:
AudioQueueRef audioQueue; // Imagine this is correctly set up
UInt32 dataSize = sizeof(AudioQueueLevelMeterState) * recordFormat.mChannelsPerFrame;
AudioQueueLevelMeterState *levels = (AudioQueueLevelMeterState*)malloc(dataSize);
float channelAvg = 0;
OSStatus rc = AudioQueueGetProperty(audioQueue, kAudioQueueProperty_CurrentLevelMeter, levels, &dataSize);
if (rc) {
NSLog(@"AudioQueueGetProperty(CurrentLevelMeter) returned %@", rc);
} else {
for (int i = 0; i < recordFormat.mChannelsPerFrame; i++) {
channelAvg += levels[i].mPeakPower;
}
}
free(levels);
// This works because one channel always has an mAveragePower of 0.
return channelAvg;
, usted puede obtener la potencia pico, ya sea en dB Escala gratuito (con kAudioQueueProperty_CurrentLevelMeterDB) o simplemente como un flotador en el intervalo [0.0, 1.0] (con kAudioQueueProperty_CurrentLevelMeter) .
Brillante respuesta y ese código de muestra es realmente útil. –
Compruebe el código de muestra 'SpeakHere'. le mostrará cómo grabar audio utilizando la API de AudioQueue. También contiene algún código para analizar el audio en tiempo real para mostrar un medidor de nivel.
En realidad, es posible que pueda utilizar la mayor parte de ese código de medidor de nivel para responder a 'altos' y 'bajos'.
El código de ejemplo de AurioTouch realiza el análisis de Fourier en la entrada de micrófono. Podría ser un buen punto de partida:
https://developer.apple.com/iPhone/library/samplecode/aurioTouch/index.html
algo excesivo para su aplicación.
No se olvide de activar la medición de nivel por primera AudioQueue:
UInt32 d = 1;
OSStatus status = AudioQueueSetProperty(mQueue, kAudioQueueProperty_EnableLevelMetering, &d, sizeof(UInt32));
- 1. iPhone nativo formato de audio
- 2. Audio en el iPhone
- 3. Enrutamiento Sonido de audio de iPhone
- 4. bibliotecas de análisis de CSS para iPhone
- 5. Streaming Audio MMS: // al iPhone
- 6. Bucle de audio HTML5 en el iPhone
- 7. Forcing iPhone Micrófono como entrada de audio
- 8. Codificación de códec OPUS Audio para iPhone
- 9. iPhone/iOS tutorial de análisis JSON
- 10. Análisis de audio en tiempo real en Linux
- 11. ¿Hay anuncios de audio para las aplicaciones de audio de iPhone?
- 12. iPhone: (audio) publicar mensajes para matar mediaserverd
- 13. iPhone: obtenga la duración de un archivo de audio
- 14. iOS4 - Audio de fondo con simulador de iPhone
- 15. Frecuencia de muestreo para la grabación de audio del iPhone
- 16. Conmutación de bucle de audio en tiempo real para iPhone
- 17. reproductor de audio con descarga progresiva de iPhone
- 18. iPhone: Cambiar la velocidad de reproducción de Audio Units
- 19. Encontrar la longitud de una grabación de audio en iPhone
- 20. iPhone TBXML bucle y de análisis de datos
- 21. url de análisis de iPhone para OBTENER los parámetros
- 22. de análisis en .NET
- 23. Seleccione el dispositivo de audio en el iPhone
- 24. Aplicación para iPhone: grabación de audio en mp3
- 25. iPhone OS 4 Multitarea - Reproducción de audio En segundo plano
- 26. iphone - reproducir transmisión de audio en el fondo
- 27. Cómo utilizar una unidad de audio en el iPhone
- 28. cómo recuperar los detalles del archivo de audio en iPhone
- 29. Mejor enfoque para el análisis de XML en el iPhone
- 30. Ejecución de un lenguaje de síntesis/análisis de audio en un dispositivo embebido
fantástico, gracias a todos por sus respuestas. Todavía no llegué a bombardear la aplicación, así que me temo que no tengo idea de quién es la respuesta correcta hasta que lo haga. –