4 votos

Hay alguna forma de diferenciar el sonido de las ráfagas de aire de la normal de sonido a través del micrófono del teléfono?

He estado trabajando en una aplicación para Android que toma de entrada de micrófono cuando el usuario sopla en él. Estoy usando FFT de sonido basado en el análisis y la conversión de los valores en frecuencia por el uso de un cruce por cero método.

Todavía estoy satisfecho con los resultados. Lo que yo quiero es, que sólo debe detectar el "soplado" y debe generar un valor único, así que no puedo ignorar todos los demás sonidos. He estado buscando por el mismo en Google mucho, pero no era capaz de conseguir cualquier respuestas claras. Tengo la esperanza de obtener alguna solución aquí.

EDIT: Ahora, realmente no tenía el tiempo suficiente para la investigación sobre las soluciones que aporta. También, creo que voy a tener que tomar las fórmulas y crear mis propias clases en JAVA y va a tomar tiempo. Pero me gustaría compartir el enlace para la aplicación que he publicado. No es el más eficiente, como he mencionado en mi pregunta, pero funciona. El link de mi app:

Appy Cumpleaños en el Play Store

Me gustaría que los usuarios de Android para probarlo y me dan la respuesta.

2voto

Van Gale Puntos 387

La mayoría de los comentarios se centran en el problema más común de extracción/ignorar el ruido, por lo que el sonido puede ser extraído. Quieres hacer otra cosa: detectar soplado sonidos, el rechazo de todos los demás sonidos.

En primer lugar, su cruce por cero es un método que no va a ser muy útil para esto. De soplado está cerca de ruido rosa en señal de forma, con un poco de "matiz" del espectro dependiendo de la posición del ventilador, la posición de micrófono, fabricación de teléfono, etc.

Porque dice usted que tiene FFT ya, se me cuadros repetidos de 50ms o así, y buscar la firma de soplar en el micrófono. Es probable que sea un muy amplio espectro de distribución sin picos. También, tendrá una duración mayor de un solo marco.

Otras señales a menudo tiene más distintos picos en el espectro. Por lo tanto, se podría calcular que tan bien el espectro de obtener compara a una de ancho, de color rosa-ruido-como de distribución. Ten en cuenta que la salida de la FFT no mantener la frecuencia de las papeleras, en orden creciente, sino la "mariposa" de la orden, y otro valor de datos de la FFT es la fase, en lugar de la amplitud, y por lo tanto no es interesante para este análisis.

Cuando usted tiene un "golpe" de sonido y "fondo" de sonido que viene, que tendrá un "ruido de fondo" del golpe de sonido, y los picos de los otros sonidos. Usted tiene que quitar los picos, y detectar el golpe de sonido según sea el perfil que puede "subsuelo" de su espectro y todavía caben el golpe de sonido. Hay varias curva de ajuste/funciones de regresión puede utilizar aquí.

En fin, yo creo que usted todavía tiene problemas con este enfoque, como teléfonos diferentes tienen diferentes características de sonido. Usted puede tener un "tren" de la aplicación en el teléfono en particular si el usuario está usando para un mejor resultado.

1voto

ianb Puntos 659

Esto es más a lo largo de las líneas de un buen consejo, pero hay algunos puntos en aquí, así que sea paciente.

Voy a atacar desde el punto de vista de un vocalista (que supuestamente yo soy). Frases que comienzan con P, B y T (por ejemplo, P es la peor) enviar una ráfaga de aire desde la boca hasta el micrófono que se asemeja a alguien que sopla por un corto período de tiempo.

Mantenga su mano delante de la boca y decir POP. Usted debe sentir que lo que quiero decir.

¿Por qué estoy diciendo esto? Un requisito estándar para un estudio de micrófono es un filtro anti-POP y se trata de una fina gasa estirada sobre un marco que en gran parte se detiene la cop golpear el micrófono. No atenuar la voz real o voces; que acaba de detener el chorro de aire golpeando el micrófono de diafragma y hacer una nonsese de lo que usted está tratando de grabar.

Otros micrófonos tienen ellos incorporado en el negro circular de espuma, cosa que la gente canta. Ellos no son tan buenos, pero funciona bien para las presentaciones en vivo.

Así que, he establecido que el habla normal en un micrófono puede contener las ráfagas de aire y esto hace que sea más difícil para que usted pueda diseñar algo que puede diferenciar el habla normal y alguien que sopla.

Habrá un filtro anti-pop en el micrófono de un teléfono con android y esto hará que la aplicación sea más difícil. Se verá como un pequeño círculo negro pieza de material que cubre el micrófono.

Lo que puedo decir es que habrá una clara baja frecuencia (por debajo de 100 hz) de contenido cuando alguien sopla en el micrófono y me gustaría recomendar el uso de su PC, una tarjeta de sonido y un programa que pueda abrir y manipular archivos wav. Yo uso Wavelab pero hay algunos programas gratuitos acerca de. Registro de algunos de los "golpes" y analizar los resultados. Si usted puede venir para arriba con algo que reconoce a los Cop, a continuación, estoy interesado en lo que se encuentra debido a que no hay ningún hardware o software de los filtros que soy consciente de que se acercan a la mecánica filtro anti-pop.

Yo he probado un par y hasta trataron de modificar algunos de los filtros para sacar la cop. Al final me he re-grabado o se ha ido con un cuchillo en el archivo de onda y masacrados las secciones que fueron apareciendo porque visualmente (en el wavefile) usted puede ver tan claro como el día.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X