volumen tiene tabla serios saber ruido rango problemas permitidos partir para oido musica mis los humano generar escuchar empieza dolor dinamico decibeles cuantos cuanto como celular calcular auditivos audifonos adecuado c# audio timespan decibel

tiene - C#Cómo obtener los valores de Audio Decibel con un lapso de tiempo



tabla de decibeles permitidos para el oido humano (2)

¿Cómo puedo obtener los valores de Decibel de un archivo wav / mp3 que tengo cada 1 segundo? usando cualquier biblioteca de audio que funcione con C # ..

algo como:

Time: 0, DB: 0.213623 Time: 1, DB: 0.2692261 Time: 2, DB: 0.2355957 Time: 3, DB: 0.2363281 Time: 4, DB: 0.3799744 Time: 5, DB: 0.3580322 Time: 6, DB: 0.1331177 Time: 7, DB: 0.3091431 Time: 8, DB: 0.2984009

Realmente apreciaría tu ayuda :)

Saludos,


Con NAudio puede usar las clases WaveFileReader y Mp3FileReader para obtener acceso a los datos de muestra dentro del archivo como una matriz de bytes. Luego necesitaría leer el archivo y obtener los valores de muestra (por ejemplo, para audio de 16 bits, cada dos bytes representa un corto). Si el archivo es estéreo, alternará muestra izquierda, muestra derecha.

Entonces necesitas idear una estrategia para medir los decibelios. ¿Vas a buscar la muestra más ruidosa en cada segundo, o el volumen de muestra promedio en cada segundo, o simplemente seleccionar la muestra que se está reproduciendo en ese segundo? Habiendo obtenido ese valor, necesita ser normalizado para que 1 sea el más alto (para audio de 16 bits, divida su valor entre 32768). Además, use el valor absoluto de la muestra. Ahora se puede calcular el valor en decibeles:

short sample16Bit = BitConverter.ToShort(buffer,index); double volume = Math.Abs(sample16Bit / 32768.0); double decibels = 20 * Math.Log10(volume);

En la aplicación de demostración NAudio, se utiliza un "SampleAggregator" para recopilar los valores de muestra mínimo y máximo durante un período de tiempo determinado, que a su vez se utiliza para dibujar la forma de onda de audio y para actualizar un medidor de volumen. Puede usar esta misma clase para proporcionarle valores para pasar a su función de conversión de decibelios.

(mira esta página para una explicación más detallada de los decibelios)


Encontré una solución de ejemplos dados en la Biblioteca de NAudio. ya que la solución que encontré es tan grande. No voy a publicarlo aquí. así que solo daré pistas en caso de que alguien quisiera hacer lo mismo. Aplicación NAudioDemo -> Carpeta AudioPlayBackDemo -> Archivo AudioPlayBackPanel.cs ...