test sound res quality high files best comparison audio

comparison - sound - Comparando archivos de sonido si no son completamente idénticos



high quality audio files (4)

¿Hay alguna forma de comparar programáticamente dos archivos de sonido para determinar si son idénticos o casi idénticos? Estos no son archivos mp3 y no tienen ningún ID3 u otros metadatos, sino archivos wav. Comparar los valores de la suma de comprobación puede no funcionar ya que pueden no ser completamente idénticos.


El artículo de Wikipedia sobre huella digital acústica menciona una serie de productos, incluido el archivo opensource libfooid. Básicamente, estás buscando entrar en el dominio de la frecuencia, tomando niveles aproximados en un número relativamente pequeño de bandas (digamos 32), para darte una cadena que represente algo así como 25 ms de sonido, haciendo eso para todo el archivo, luego haciendo un comparación fuzzing de esas cadenas para diferentes archivos. Es bastante complejo, pero necesita hacerlo; comparar las muestras reales no te llevará a ninguna parte, ya que algo tan simple como un cambio de volumen en un pequeño porcentaje arrojará la coincidencia completa.


Podría comparar los dos archivos WAV muestra por muestra y calcular una diferencia promedio por muestra. Para agilizar las cosas, puede usar el mismo método, pero compare cada décima muestra o cada 100 muestra y obtenga esencialmente el mismo valor (dos archivos que no son iguales o incluso cercanos tendrán una gran diferencia promedio por muestra) )


Una cosa que podría intentar que le daría una huella digital bastante decente del archivo es tomar una transformada de Fourier y observar la distribución de las diferentes frecuencias presentes en el archivo. Todavía es muy posible hacer dos archivos de sonido muy diferentes que tengan la misma transformación de Fourier, pero eso es algo improbable si tus archivos provienen de una fuente no artificiosa ...


El proceso para comparar un conjunto de sonidos para similitudes se denomina Indización de audio basada en contenido, Recuperación y Toma de huellas dactilares en la investigación en ciencias de la computación.

Un método para hacer esto es:

1) Ejecuta varios bits de procesamiento de señal en cada archivo de audio para extraer características, como tono en el tiempo, espectro de frecuencia, autocorrelación, rango dinámico, transitorios, etc.

2) Ponga todas las características para cada archivo de audio en una matriz multidimensional y vuelque cada matriz multidimensional en una base de datos

3) Use técnicas de optimización (como descenso de gradiente ) para encontrar la mejor coincidencia para un archivo de audio dado en su base de datos de datos multidimensionales.

El truco para hacer que esto funcione bien es qué características

Hay varios proyectos que hacen cosas como esta, incluyendo MusicBrainz y EchoNest .

Echonest tiene una de las API más simples que he visto en este espacio. Muy fácil de empezar

PD No, yo no trabajo para Echonest, ni conozco a nadie que trabaje allí.