algorithm - pelicula - Detectando ruido del viento
el niño del viento netflix (4)
Quiero desarrollar una aplicación para detectar el viento según el flujo de audio.
Necesito algunos pensamientos de expertos aquí, solo para darme líneas de guía o algunos enlaces, sé que no es una tarea fácil, pero estoy planeando poner mucho esfuerzo aquí.
Mi plan es detectar algunos patrones comunes en la corriente, y si los valores están cerca de estos patrones comunes del ruido del viento notificaré que se encuentra una coincidencia, si los valores están más cerca del gran patrón conocido, puedo estar seguro de que el viento se detecta, si los valores no coinciden con los patrones, entonces supongo que no hay tanto viento ...
Ese es mi plan al principio, pero necesito aprender cómo se hacen estas cosas. ¿Hay algún proyecto abierto que ya esté haciendo esto? ¿O hay alguien que está haciendo una investigación sobre estos temas?
La razón por la que escribo en este foro es porque no sé cómo buscarlo en Google, lo que encontré no era lo que estaba buscando. Realmente no sé cómo empezar a desarrollar este tipo de algoritmo.
EDITAR 1:
Intenté grabar un viento, y cuando abrí el archivo de audio guardado para mí, era solo un montón de números :). Ni siquiera veo en qué formato debo guardar esto, ¿es ola suficientemente buena? ¿Debo usar otra cosa, o qué sucede si convierto el archivo de audio con ruido de viento en mp3: esto ayudará con el análisis?
Bueno, tengo muchas preguntas, eso es porque no sé de dónde leer más sobre este tipo de tema. Etiqueto mi pregunta con guías, así que espero que alguien me ayude.
Debe haber algo que sea detectable, porque el ruido del viento es tan común, debe haber alguna forma de detectarlo, solo necesitamos alguien que me dé consejos, alguien que esté familiarizado con este tema.
Acabo de encontrar esta publicación. Hace poco hice una biblioteca que puede detectar el ruido del viento en las grabaciones.
Hice un modelo de ruido del viento y creé una base de datos de ejemplos y luego entrené un algoritmo de aprendizaje automático para detectar y medir el nivel del viento de forma perceptiva.
¡El código C ++ / C está aquí si es de utilidad para cualquiera!
Como mencionó @thiton, este es un ejemplo de clasificación de patrones de audio.
Principales características del viento: es un ruido blanco con forma (banda / hp filtrado) con pequeñas fluctuaciones semi-aleatorias en amplitud y tono. Al menos así es como la mayoría de los sintetizadores lo reproducen y suena bastante convincente.
Debe verificar el contenido espectral y cambiar el archivo de onda, por lo que necesitará FFT. El formato de entrada realmente no importa, pero obviamente la materia prima (wav) es mejor.
Una vez que tenga eso, debe detectar que está cerca de algún tipo de ruido de color y luego quizás extraer series de tono y amplitud y tratar de usar el algoritmo clásico de clasificación de patrones para ese conjunto de datos. Creo que el aprendizaje supervisado podría funcionar aquí.
Este es realmente un problema difícil de resolver.
Suponiendo que tiene solo un solo micrófono de datos . Los datos sin procesar que obtiene cuando abre un archivo de audio (señal de dominio de tiempo) tiene algo de información, pero no mucha, para este tipo de procesamiento. Debe ingresar al dominio de la frecuencia utilizando FFT y consultar las estadísticas de los intervalos de frecuencia y usarlo para crear un clasificador utilizando SVM o bosques aleatorios.
Con el debido respeto a @ Karoly-Horvath, tampoco usaría ninguna grabación que haya sido sometida a compresión, como mp3. Los algoritmos de compresión de audio siempre distorsionan las frecuencias más altas, lo que, como resultado, es una característica importante para detectar el viento ahora. Si es posible, obtenga los datos PCM sin procesar de un micrófono. También debe asegurarse de que su grabación sea muestreada a al menos 24 kHz para que tenga información de la señal de hasta 12 kHz.
Finalmente, la forma del viento en el dominio de la frecuencia no es un simple ruido blanco filtrado. La característica es que generalmente tiene una alta energía en las frecuencias bajas (un tipo de sonido retumbante) con sonidos oscilantes y agudos en las frecuencias altas. La energía de alta frecuencia es bastante transitoria, por lo que si su tamaño FFT es demasiado grande, perderá esta importante característica .
Si tienes 2 datos de micrófono , esto se vuelve un poco más fácil. El viento, cuando se registra, es un fenómeno local. Claro, en las grabaciones, puedes escuchar el susurro de las hojas o el sonido de las campanadas causadas por el viento. Pero eso no es ruido de viento y no debe ser filtrado.
El molesto ruido de viento que escuchas en una grabación es el aire que llega a la membrana de tu micrófono. Ese efecto es un evento local, y puede explotarse si tiene 2 micrófonos. Se puede explotar porque el evento es local para cada micrófono individual y no está correlacionado con el otro micrófono. Por supuesto, donde los 2 micrófonos se colocan en relaciones entre sí también es importante. Tienen que estar razonablemente cerca uno del otro (por ejemplo, dentro de 8 pulgadas).
Luego se puede usar una correlation dominio del tiempo para determinar la presencia de ruido del viento. (Todos los demás sonidos grabados están correlacionados entre sí porque los micrófonos están bastante cerca entre sí, por lo que una alta correlación significa que no hay viento, una baja correlación significa viento). Si va con este enfoque, su archivo de audio de entrada no necesita ser descomprimido. Un algoritmo de compresión razonable no afectará esto.
Espero que esta descripción ayude.
La ciencia para su problema se llama "clasificación de patrones", especialmente el subcampo de "clasificación de patrones de audio". La tarea se resume como clasificar una grabación de sonido en dos clases (viento y no viento). Parece que todavía no tienes un fondo sólido en el procesamiento de señales, así que permíteme insertar una advertencia central: la clasificación de patrones no es tan fácil como parece a primera vista. Los humanos sobresalen en la clasificación de patrones. Las computadoras no lo hacen.
Un buen primer enfoque a menudo es calcular la correlación de la transformada de Fourier de su señal y una muestra. Sin embargo, no sé cuánto dependerá de la velocidad del viento.
Es posible que desee echar un vistazo al enfoque de la bag-of-frames , se utilizó con éxito para clasificar el ruido ambiental.