diferenciar entre aplaudir y hablar

1

Traje un proyecto de interruptor activado por aplauso para practicar mi soldadura. Me di cuenta de que el aplauso activado era realmente el sonido activado. ¿Hay alguna forma en que pueda lograr que pueda distinguir la diferencia entre hablar conmigo y aplaudir?

Estaba asumiendo que puedo, de alguna manera, lograr que funcione solo dentro de cierta frecuencia.

    
pregunta Ageis

5 respuestas

2

Eche un vistazo a una señal de aplauso y una señal de conversación normal en el alcance. Probablemente la mayor diferencia será la repentina subida del aplauso. Probablemente haya una diferencia de contenido de frecuencia también, pero sospecho que será más fácil detectar una palmada en el dominio de tiempo.

Una forma de probar esto es registrar algunas muestras de las señales que desea detectar y rechazar, luego elaborar un algoritmo en el host que escanea los archivos WAV y toma una decisión. Una vez que lo haya resuelto, puede codificarlo en un DSP pequeño, como un Microchip dsPIC.

    
respondido por el Olin Lathrop
3

Lo que es típico de aplaudir es que es un sonido repentino, corto pero fuerte.
Una posible forma de detectarlo es disparar un MMV (MultiVibrator monoestable) con la señal de entrada si es más alto que un cierto umbral, y ver si este nivel alto todavía está presente cuando el MMV se agote. Si no es así, probablemente fue aplaudiendo. Tendrás que experimentar con el nivel de umbral y el tiempo MMV.

    
respondido por el stevenvh
3

Voz es lo que llamamos "banda limitada". Lo que significa que tiene una banda de frecuencia bastante bien definida. Un aplauso es esencialmente un "impulso" que es "banda ancha" y, por lo tanto, tiene un rango de frecuencia muy amplio.

Para decirlo de otra manera, si miras el análisis de espectro de la voz, verás cosas en el rango de 200 Hz a aproximadamente 12 KHz. Si hicieras lo mismo con una palmada, verías cosas desde 100 Hz hasta más de 20 KHz.

Un aplauso también ocurre rápidamente, donde la voz sigue y sigue (y sigue y sigue y sigue :)

Para crear algo que pueda distinguir entre un aplauso y una voz alta, entonces empezarías por tomar el audio y dividirlo en tres o más bandas de frecuencia. Digamos que < 200 Hz, 400Hz a 8 KHz, y > 13 KHz. Luego, haría un detector para cada banda que detectaría picos mayores que algún umbral, pero no por más de aproximadamente 200 ms. Si obtiene un pico corto en las tres bandas, entonces ha detectado un aplauso. Si no obtiene las tres bandas, o es superior a 200 ms, solo tiene voz alta.

Nota: Estoy haciendo una suposición educada sobre las frecuencias que he mencionado aquí. Son aproximadamente correctos, pero no son 100% exactos. SI quiere hacer este enfoque, puedo hacer una prueba realista con un equipo de sonido real para obtener las frecuencias exactas y los límites de tiempo. Me tomaría aproximadamente una hora hacerlo, así que no quiero hacerlo si no estás hablando en serio. Pero si habla en serio, esto podría ahorrarle mucho tiempo (mucho más de una hora).

    
respondido por el user3624
1

Como los otros han mencionado, un simple detector de amplitud pico de ancho corto (¿el nivel está por encima de x? - > wait ~ 100ms - > es el nivel por debajo de x?) probablemente sea la forma más sencilla. Acabo de realizar una pequeña prueba (utilizando Visual Analyzer ) con el dominio del tiempo y la captura del dominio de la frecuencia (el eje x es logarítmico a 30kHz) y como puede ver que sería más fácil trabajar con el dominio de tiempo, aunque podría realizar más pruebas y ajustar las cosas en función de la comparación con el habla (y otros sonidos comunes):

Editar-Aquíhayotracapturadediscurso(un"hola" hablado) para comparar cosas. Tenga en cuenta el contenido de frecuencia diferente (amplié el eje x porque no hay contenido significativo por encima de los 10kHz o más)

    
respondido por el Oli Glaser
0

La respuesta es un contador de cruce por cero. Esto no es un uso intensivo de la CPU, se calcula fácilmente en el dominio del tiempo, pero le proporciona una estimación aproximada (pero buena enuf) de la frecuencia dominante. Publiqué esta respuesta en otro foro, está aquí:

enlace

Mis imágenes no son tan bonitas como los espectrogramas de la respuesta anterior, pero hacen el mismo punto. Si solo cuenta cero cruces, encontrará MUCHOS más en un aplauso que en una voz. Pero me repito, ver el post anterior ...

    
respondido por el Steven Swift

Lea otras preguntas en las etiquetas