Medir la voz humana para el nivel de ruido ambiental

2

Necesito desarrollar un nivel de ruido ambiental para medir el alojamiento en una oficina. A veces, durante el día, la gente levanta la voz más de lo que debería y se crea mucha confusión. Por lo tanto, este dispositivo debe instalarse en algún lugar, como en la mesa o en el techo, y debe encender un LED cuando el ruido es demasiado alto.

Pensé en hacerlo de esta manera:

- Conecta el electret a un filtro de paso de banda para aislar solo la voz humana, que debe ser analizada -Conecte la salida del filtro a un amplificador operacional (¿es suficiente un amplificador x100?) -Conecte la salida del amplificador a un microcontrolador (como arduino) y lea el nivel de voz.

¿Eso debería funcionar? Espero leer un valor de 0 a 1024 del microcontrolador, ¿es posible?

Muchas gracias!

    
pregunta Mohamed Elhariry

3 respuestas

4

El espectro de la voz humana se encuentra aproximadamente en la banda entre 300 y 3000 Hz, por lo tanto, para asegurarte de que tu widget responda principalmente a esa banda, necesitarás un filtro de paso de banda en algún lugar corriente abajo del micrófono electret, como notaste.

Después de eso, en lugar de cualquier cosa digital, simplemente usaría un 555 en modo monoestable con su entrada TRIGGER AC acoplada a la fuente de audio filtrada y la ganancia de la fuente de audio configurada de modo que cuando alguien en la sala hablara demasiado alto dispararía el 555.

El uso de un potenciómetro para variar el nivel de salida de la fuente de audio permitiría establecer la amplitud del disparador al tener a alguien en el límite del rango de detección hablando en voz alta mientras otra persona estaba ajustando el potenciómetro, encontrándose la configuración correcta cuando el LED se enciende.

Luego, cuando el LED se iluminó, permanecería ENCENDIDO durante el tiempo determinado por la constante de tiempo del RC externo del 555, luego se apagaría y permanecería apagado hasta la próxima vez que alguien gritara, comenzando el ciclo nuevamente.

Alternativamente, el nivel de activación de un comparador de voltaje podría ajustarse, como se muestra a continuación, cambiando la relación de las resistencias en el divisor de referencia, R3R4, que podría ser fácilmente una olla para facilitar el ajuste in situ .

Aquí está el esquema:

V2,V3yV4simulanunasalidadeelectretplanade300Hza3kHz,conunpicode6dBa1350Hzquerepresentalaseñaldesonidofuerteenelelectret.

C3,R6,R5,R8yC5comprendenunfiltrodepasodebandaenbrutoparaproporcionarciertaselectividadenlaentradadeU3,yseutilizaunindicadordevoltajecomocomparadordevoltajeconsupuntodeconmutacióndeterminadoporR3yR4.

Enoperación,cuandolaseñalenU3vamásaltaquelatensióndereferenciaenU3+,lasalidadeU3bajará,disparandoU1ygenerandounpulsoconunanchodeaproximadamente1.1R1C1yunaamplituddeaproximadamente11voltiosenR7yelled.

aquíestálatrama:

Puede ver cómo el 555 sale alto y dura aproximadamente 1 segundo cuando la pequeña perturbación en U3 hace que genere un disparador bajo para el 555.

Finalmente, aquí están los archivos que necesitará para ejecutar la simulación LTspice si lo desea. Descargue ambos archivos en la misma carpeta y luego haga clic izquierdo en el archivo .asc para abrir el editor de esquemas.

Esquema 555

    
respondido por el EM Fields
3

Como ya dijo EM Fields, el rango de voz humana es de aproximadamente 300 Hz a 3 kHz. Probablemente necesite una ganancia de unos 100 a 1000 en este rango para que los sonidos de voz lleguen a los niveles A / D del microcontrolador cuando alguien no está hablando directamente al micrófono.

Probablemente solo usaría dos filtros R-C simples, un paso alto a 300 Hz y un paso bajo a 3 kHz. El micro puede muestrear a unos 10 kHz. Esa es una muestra cada 100 µs, que es un tiempo "largo" para que un micro moderno calcule un valor de sonoridad, decida si está por encima de algún umbral y luego encienda un LED o lo que corresponda.

Para calcular una medida de sonoridad, primero debe restar el nivel cero. La señal debe estar acoplada a CA en la entrada A / D, que debe flotar a la mitad del rango A / D desde una polarización de CC. Solo puedes usar 1/2 del rango A / D como un número fijo. Eso estará apagado un poco, pero debería ser lo suficientemente bueno para su propósito. Por ejemplo, suponiendo un A / D de 10 bits, idealmente el nivel de silencio sería 511.5. En realidad podría ser 520 o 492 o algo así. Ese pequeño desplazamiento estará muy por debajo de su umbral "alto", por lo que no importará mucho. La forma elegante de hacer esto es filtrar la señal en paso alto. De todos modos, como desea eliminar el ruido por debajo de 300 Hz, puede hacer ese filtro en el firmware en lugar de en el exterior.

En cualquier caso, una vez que restas el nivel cero de lectura A / D, tienes ± valores de muestra instantáneos. Cuadrar cada uno, luego el paso bajo filtra este flujo de valores al cuadrado. Probablemente desee filtrar eso a solo unos pocos Hz, ya que es la velocidad con la que su valor de sonoridad responde a los sonidos que recoge. Compara este valor con un umbral para decidir si está por encima de tu límite de volumen excesivo o no.

Esto puede parecer complicado, pero en realidad es bastante simple, y algo que incluso un pequeño micro puede hacer a partir de 100 µs por muestra.

    
respondido por el Olin Lathrop
2

Permítanme comenzar diciendo que ambas respuestas existentes (hasta ahora) se basan en un par de premisas falsas.

En primer lugar, NO es cierto que la mayor parte de la energía en una voz humana caiga en el rango de 300-3000 Hz. Lo que sí es cierto es que esas frecuencias son las más importantes para inteligibilidad , por lo que la compañía telefónica limita lo que lleva a esas frecuencias. De hecho, hay MUCHA energía por debajo de 300 Hz, especialmente para voces masculinas, y esta energía es la que más contribuye a la intensidad percibida.

En segundo lugar, observar solo el nivel absoluto del sonido general no discrimina bien entre las fuentes de ruido de fondo y las voces. Lo que hay que tener en cuenta es las variaciones a corto plazo en el nivel de sonido, donde esas variaciones caen en el rango de 1-10 Hz, que corresponden a la velocidad a la que las personas emiten sílabas. Cuando esto llega a estar en un nivel excesivo es cuando debe encender su LED.

Entonces, estás en el camino correcto amplificando la salida de un micrófono y luego digitalizándolo, pero el firmware del microcontrolador tendrá que tener cierta sofisticación para ser realmente efectivo en lo que deseas.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas