¿Reducir el ruido de fondo de un archivo .wav?

Estoy planeando comparar dos archivos de audio. Grabé dos voces y las comparé usando correlación cruzada. Dado que la presencia de ruido de fondo durante la grabación, el valor de correlación resultante siempre está cerca de 0,5. Si doy ondas grabadas de Internet, puedo obtener el valor correcto. Entonces, ¿cómo puedo reducir el ruido de fondo del archivo .wav grabado? Si llego a saber cómo hacerlo, intentaré implementarlo técnicamente. Cualquier idea básica me será útil para aprenderla y aplicarla. Gracias.

La correlación cruzada debería funcionar incluso en presencia de ruido de fondo. En general, no puede eliminar el ruido de una grabación, a menos que tenga alguna idea de qué es ese ruido. Si su respuesta es "el ruido no es la señal específica que estoy buscando", entonces para eso está la correlación cruzada.
¿Cómo es esta una pregunta de electrónica o robótica?
Si puedo entender el concepto para resolver esto usando DSP, intentaré implementarlo técnicamente.

Respuestas (3)

El ruido generalmente se arrastra a varias frecuencias específicas en el audio, estas frecuencias cambian según el entorno.

Opción 1
La forma más fácil de deshacerse del ruido es colocar un filtro de paso de banda justo donde se encuentra la frecuencia de su voz. Es posible que todavía haya ruido en la misma frecuencia de su voz, pero será mucho más difícil de manejar.

Opción 2
No estoy seguro de lo que hace Audacity, pero he visto muchos programas que requieren una muestra de "silencio" y la usan para determinar el ruido. En otras palabras, grabas tu voz pero dejas un espacio de aire muerto al final o al principio. Luego puede ir a analizar qué componentes de frecuencia hay en su aire muerto. A partir de esto, puede saber qué cantidad de cada frecuencia eliminar de su señal de voz.

Si por "ruido de fondo" quiere decir ruido que tiene un ancho de banda amplio y es relativamente estacionario, entonces la resta espectral debería funcionar bastante bien para usted. Esta es la técnica general que utilizan Audacity/Cool Edit cuando dicen "Reducción de ruido". La sustracción espectral es un término muy amigable para Google si está interesado en más investigación.

Toma una muestra de sonido donde no hay señal y crea una plantilla de ruido FFT a partir de eso. Luego, resta esa plantilla de ruido FFT de la FFT de su señal + ruido. Algunos algoritmos se vuelven sofisticados y suavizan la forma de onda del dominio de frecuencia resultante antes de hacer la FFT inversa. Debe tener cuidado con la "fuerte" de la reducción, o obtendrá estos "ecos musicales submarinos". A veces es mejor hacer dos pases "débiles" que uno "fuerte".

Sin embargo, si hay, por ejemplo, coches moviéndose en segundo plano, esto no funcionará. En tal caso, es posible que desee ver cosas más locas como los filtros Wiener.

Te recomiendo que mires el paquete de software Audacity. Es un software gratuito de código abierto y tiene un complemento/algoritmo de reducción de ruido. No esperaría que pudieras copiarlo directamente de la fuente, pero podría darte algunas ideas sobre cómo se hace.