Estoy tratando de hacer un medidor de volumen simple para el iPhone. Quiero que el volumen se muestre en dB. Cuando utilizo this turorial, solo obtengo mediciones de hasta 78 dB. He leído que eso se debe a que el espectro dBFS para grabaciones de audio de 16 bits es de solo 96 dB.Cómo obtener una medición de volumen de la grabación de iPhone en dB, con un límite de al menos 120dB
He intentado modificar este pedazo de código en la función init:
dataFormat.mSampleRate = 44100.0f;
dataFormat.mFormatID = kAudioFormatLinearPCM;
dataFormat.mFramesPerPacket = 1;
dataFormat.mChannelsPerFrame = 1;
dataFormat.mBytesPerFrame = 2;
dataFormat.mBytesPerPacket = 2;
dataFormat.mBitsPerChannel = 16;
dataFormat.mReserved = 0;
he cambiado el valor de mBitsPerChannel, con la esperanza de aumentar el valor del bit de la grabación.
dataFormat.mBitsPerChannel = 32;
Con esa variable se establece en 32, la función "mAveragePower" devuelve sólo 0.
Así que, ¿Cómo puedo medir más decibelios? Todo mi código es prácticamente el mismo que en el tutorial que publiqué anteriormente.
Gracias de antemano, Thomas
Ok, gracias por su respuesta (rápida). Si calibro las medidas a mi micrófono iPhone, ¿las mediciones en otros iPhones también serán correctas? No me importa si está a un par de decibelios, solo quiero dar una indicación del volumen de los sonidos recogidos por el micrófono. – Cyber
Supongo que obtendrá una variación de dB entre los iPhones que son del mismo modelo (por ejemplo, 3G) pero puede haber más variación entre los diferentes modelos. Tenga en cuenta también que la respuesta de frecuencia probablemente no sea plana, por lo que sus medidas serán aproximadas. Otro punto a tener en cuenta es que normalmente usa un filtro de ponderación cuando mide dB SPL (p. Ej. Ponderación A). Ah, y una cosa más: puede haber un circuito AGC en algunos o todos los modelos de iPhone, lo que puede confundir sus mediciones a menos que pueda desactivarlo. –