Está en la página 1de 3

Gerardo Pereira

C.I.: 24.783.341

SHAZAM Y EL MUESTREO Y RECONSTRUCCIÓN DE SEÑALES EN EL DOMINIO


DISCRETO
¿Dónde puedo encontrar información sobre los algoritmos de búsqueda de Shazam?

Estos enlaces pueden ayudar a encontrar informacion hacer de Shazam:

- 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 proceso de transformar el sonido analógico en digital se llama muestreo. Durante este


proceso se pierde cierta información, y lo que obtenemos es más una representación
aproximada de un sonido que la copia exacta del mismo. La mayor parte de la música que
escuchamos hoy es digital, con la excepción de los discos de vinilo que tienen
grabaciones analógicas impresas.

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 problema de la velocidad se puede resolver fácilmente utilizando la Transformada


Rápida de Fourier (FTT), que utiliza el proceso de reducción de resolución para mantener
la información de frecuencia a expensas de otros datos. Sin embargo, no hay forma de
que FT y FFT puedan resolver el problema de la visualización incompleta de un sonido.
Para solucionar este problema, Shazam utiliza un tipo especial de gráfico llamado
espectograma.

El espectrograma es una representación visual de frecuencias que varían en el tiempo. En


otras palabras, es un gráfico tridimensional. Si miramos el ejemplo a continuación,
podemos ver que los ejes representan la frecuencia y el tiempo, mientras que el tercer
valor (amplitud) está representado por la intensidad del color de cada punto de la imagen.

El espectrograma es la base misma del algoritmo de huellas digitales de audio de


Shazam. Podemos pensar en ello como un resumen digital condensado de una canción.
Al igual que las huellas dactilares humanas, la huella dactilar acústica de cada canción es
única y se puede identificar fácilmente incluso si hay pequeñas variaciones en los datos.
Esto permite que el algoritmo de Shazam elimine toda la información innecesaria sobre
una determinada canción. Esto se logra de varias formas.

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.

Ahora que sabemos todo esto, pongámoslo todo junto:

Paso 1: la canción que queremos identificar es una onda analógica

Paso 2: se graba con el micrófono de nuestro teléfono y se convierte en un formato digital

Paso 3: el audio digital se convierte al dominio de frecuencia usando la Transformada de


Fourier

Paso 4: una huella digital de audio única se forma usando espectograma

Paso 5: la huella dactilar se compara con todas las muestras en la base de datos

Paso 6: si la huella dactilar coincide con cualquier muestra en la base de datos, se


identifica

Paso 7: el usuario obtiene la información de retorno sobre la canción

También podría gustarte