Documentos de Académico
Documentos de Profesional
Documentos de Cultura
C.I.: 24.783.341
- http://coding-geek.com/how-shazam-works/
- https://www.toptal.com/algorithms/shazam-it-music-processing-fingerprinting-and-
recognition
- https://www.ee.columbia.edu/~dpwe/papers/Wang03-shazam.pdf
- https://blog.shazam.com/
¿Cómo plataformas como Shazam o Google son capaces de saber cuál es la canción que el
usuario le está pidiendo que identifique? ¿Cómo es que la aplicación Shazam es tan rápida y
precisa? ¿Cuánto tarda Shazam en identificar una canción? ¿Cuántas notas necesita? ¿Cómo
funciona Shazam?...
Comenzemos por, ¿Qué es el sonido? El sonido está formado por ondas que vibran a
través de algún medio, como el aire o el agua, y el oído humano puede descifrarlo. Dos
características físicas principales del sonido son la frecuencia y la amplitud.
Todo sonido que existe en el aire o en cualquier otro medio es analógico . Las ondas
analógicas son continuas y bastante complejas. Son tan detallados que incluso la fracción
más pequeña de una onda se puede dividir en partes aún más pequeñas. El sonido
digital, por otro lado, tiene que tener una unidad mínima solo porque no podemos
permitirnos almacenar una cantidad infinita de datos. Esto significa que durante esta
unidad de tiempo la onda de sonido no puede cambiar. Por ejemplo, si la unidad mínima
es 1 milisegundo, significa que tanto la frecuencia como la amplitud, así como otras
características de un sonido, serán las mismas. Tenga en cuenta que la unidad mínima
debe ser lo suficientemente pequeña, de lo contrario, el sonido digital puede sonar
completamente diferente al analógico.
El primer paso para identificar (o debería decir, 'shazaming') una canción es grabarla con
el micrófono de su teléfono. La canción que escuchas es analógica y se transforma en
una señal digital mientras se graba. Tiene sentido, ¿verdad? Pero esta ola sigue siendo
una ola, solo se ha reducido de tamaño y se ha almacenado. Debe transformarse en
alguna forma que sea más fácil de comparar e identificar.
Para ello se aplica la transformada de Fourier (FT) es una fórmula que transforma una
onda de sonido en un gráfico de frecuencias de las que está hecho el sonido y sus
intensidades.
Sin embargo, hay algunos problemas: 1. La FT tarda mucho tiempo en transformar una
canción en un gráfico, y 2. La FT solo nos da frecuencias y sus intensidades (amplitud) sin
ninguna información sobre el tiempo. En otras palabras, no sabemos cuándo ocurren
estas frecuencias en la canción.
El algoritmo de Shazam se basa en que cuanto mayor sea la frecuencia, más fuerte será
el sonido. Todo esto permite que el algoritmo se centre solo en los puntos máximos del
gráfico, etiquetados como de mayor contenido energético. Esto filtra todos los datos
innecesarios y reduce el impacto del ruido de fondo en la identificación de audio.
Una vez que se crea la huella digital de audio, se almacena en la base de datos en forma
de tabla hash. Las claves de esta tabla son frecuencias: la "intensidad máxima" más un
segundo "punto de anclaje". Este método de toma de huellas acústicas permite que
aplicaciones como Shazam tengan la capacidad de diferenciar entre dos versiones
estrechamente relacionadas de la misma canción.
Una vez que se crea la huella digital de audio, se almacena en la base de datos para
compararla cuando un usuario necesite de la app.
Paso 5: la huella dactilar se compara con todas las muestras en la base de datos