2012-03-20 26 views
20

Estoy desarrollando una aplicación iOS con SDK para iOS 5.0 y XCode 4.2.¿Cómo funciona Shazam o Sound Hound?

Quiero desarrollar una aplicación que reconozca los sonidos. Veo que hay una aplicación llamada Sound Hound que reconoce la música y le dice a artista y título.

¿Cómo puedo hacer algo similar? Quiero comparar un sonido con una base de datos de sonido existente. ¿Cómo puedo hacer eso?

Tal vez pueda utilizar Transformada de Fourier. No sé cómo procesar sonidos. O podría ser similar al reconocimiento de voz, ¿no?

+6

Es un algoritmo bastante simple, sin embargo, la verdadera clave de la aplicación es el hecho de que el algoritmo está patentado, por lo que si se intenta aplicar usted mismo, los abogados de vampiro-dentado aparecerá de la nada y chupar la vida de ustedes ...;) – Lindydancer

+0

Bueno, no quiero eso. Quiero saber cómo puedo comparar sonidos. ¿Usando la Transformada de Fourier? – VansFannel

+1

Esto podría ayudar: http://gizmodo.com/5647458/how-shazam-works-to-identify-nearly-every-song-you-throw-at-it – VansFannel

Respuesta

21

Encontré un documento que explica cómo funcionan los algoritmos de búsqueda de audio. Aquí está el link. Fue escrito por uno de los desarrolladores de Shazam, una aplicación rival de SoundHound.

1

Shazam de aplicaciones es la del mejor ejemplo de aplicación en datos abierta Vinculado que tarda la música muestra corto desde el usuario final e identifica la canción de los conjuntos de datos y el enlace para comprar el álbum.

El usuario etiqueta una canción durante 10 segundos y la aplicación crea una huella digital de audio basado en algunas de las anclas del espectrograma simplificado y la zona de destino entre ellos.

Para cada punto del área objetivo, crean un valor hash que es la combinación de la frecuencia a la que se encuentra el punto de anclaje, la frecuencia en la que se encuentra el punto en la zona objetivo y la diferencia de tiempo entre el punto en la zona objetivo y cuando el punto de anclaje está ubicado en la canción.

Una vez creada la huella digital del audio, Shazam comienza la búsqueda de coincidencias en la base de datos. Si hay una coincidencia, la información se devuelve al usuario; de lo contrario, devuelve un diálogo de "canción no conocida".