Estoy recibiendo muestras de PCM a través de la transmisión, que es un canal, 8000 muestras por segundo. Descubrí la forma de descubrir el volumen calculando la 'fuerza' de la señal agregando el valor de abs de cada 1000 muestras siguientes y luego dividiendo por el recuento de muestras que es 1000. Funciona bastante bien, pero a veces mis cálculos se vuelven locos, mi suma absoluta Los valores de las muestras parecen acumularse constantemente y alcanzar valores ridículos ... así que creo que estoy haciendo algo mal allí. Lo curioso es que cuando los cálculos se vuelven locos, todo volverá a la normalidad cuando golpee 'dispositivo de entrada de sonido' con mi mano;)
De todas formas. Mi pregunta es: ¿cómo calcular correctamente el volumen del conjunto de muestras PCM?
Respuestas:
Para medir la energía (que está estrechamente relacionada, pero no es lo mismo que "volumen"), calcule el RMS (Root-Mean-Square).
Puede hacer esto en cualquier tamaño de bloque de muestras. Puede hacerlo en todas las muestras a la vez para obtener una energía promedio, o puede dividir su conjunto de muestras en trozos para ver cómo cambia la energía con el tiempo.
También hay métodos más sofisticados que tienen en cuenta las peculiaridades del cuerpo y el cerebro. Puede encontrar más información sobre eso aquí .
fuente
No soy un experto y no estoy seguro de lo que está tratando de lograr, pero parece que ha cometido un error de programación en algún lugar, ¿podría mostrarnos el código?
Cuando dices volumen, ¿lo dices en serio como se define aquí ? En ese caso, debe dar cuenta del oyente.
Si solo le interesa la energía, quizás RMS sea una mejor opción, o cuadrados promediados.
fuente