2 puntos por GN⁺ 2023-12-06 | 1 comentarios | Compartir por WhatsApp

Título resumido: Cómo funciona la tecnología de reconocimiento musical de Shazam

¿Qué es Shazam?

  • Shazam es una app que identifica la música que está sonando a tu alrededor.
  • Abres la app y, mientras suena la música, graba unos segundos de audio para buscarlo en la base de datos.
  • En el pasado ofrecía el servicio por número telefónico, y debido a las limitaciones de la calidad de las llamadas, el reconocimiento musical era una tarea difícil.

Por qué el reconocimiento musical es difícil

  • Para quienes no están familiarizados con el procesamiento de señales, reconocer música es un problema difícil por la complejidad de la señal de audio.
  • Un enfoque de fuerza bruta para encontrar una parte específica de una canción dentro de la pista completa sería muy lento, y además la forma de la señal puede cambiar mucho por ruido de fondo y efectos de frecuencia.

Resumen del sistema

  • Shazam se divide en dos flujos: registrar música y reconocerla, y ambos comparten pasos como calcular el espectrograma, encontrar picos dentro del espectrograma y aplicar hashing a esos picos.
  • El flujo de registro guarda los hashes en la base de datos, y el flujo de reconocimiento los compara con los hashes de la base de datos para identificar la canción que se está reproduciendo.

Cálculo del espectrograma

  • Para obtener el espectrograma de un audio hay que entender la transformada de Fourier.
  • La transformada de Fourier indica qué frecuencias están presentes en el audio, y con eso se genera un espectrograma que representa cómo cambian las frecuencias con el tiempo.

Espectrograma

  • Para representar mejor las frecuencias que cambian con el tiempo, el espectrograma divide la canción en partes pequeñas y aplica la transformada de Fourier.
  • El espectrograma es una gráfica 3D de tiempo (eje X), frecuencia (eje Y) e intensidad (eje Z/color).

Generación de huellas

  • Se extrae una huella única del audio encontrando en el espectrograma los picos que representan las frecuencias más altas.
  • Estos picos pueden resistir el ruido y otras distorsiones, por lo que son adecuados para generar huellas.

Búsqueda de picos

  • Los picos del espectrograma representan las frecuencias más fuertes de la señal y deben estar distribuidos de manera uniforme para usarse en la huella de audio.
  • Se usa una técnica de filtro máximo para resaltar los picos del espectrograma y encontrar su ubicación.

Hashing

  • Se generan hashes formando pares de picos del espectrograma, lo que aumenta la unicidad.
  • El hash incluye las frecuencias de dos picos y la diferencia de tiempo entre ellos, y luego se almacena en la base de datos.

Coincidencia

  • Se describe el proceso de encontrar en la colección de huellas de la base de datos las que coinciden con una muestra de audio dada.
  • Se buscan los hashes, luego se agrupan por canción y se verifica cuáles hashes coinciden para elegir la pista con más coincidencias.

Conclusión

  • Shazam pasa por procesos como calcular el espectrograma, extraer picos, crear pares hash y almacenar huellas para registrar y reconocer canciones.

Opinión de GN⁺

  • Lo más importante de este artículo es que explica de forma fácil de entender el complejo proceso con el que Shazam reconoce música.
  • Resulta interesante y atractivo que descomponga los detalles técnicos paso a paso para que incluso un ingeniero de software principiante pueda entenderlo.

1 comentarios

 
GN⁺ 2023-12-06
Comentarios de Hacker News
  • El enfoque eficiente basado en hashes de Shazam

    Cuando Shazam se lanzó en 2008, desarrollar una forma computacionalmente eficiente de convertir canciones en hashes fue un enfoque inteligente. Si hoy se lanzara un servicio similar, probablemente se adoptaría un enfoque de I+D basado en entrenar un modelo, pero eso podría ser ineficiente y costoso. Como la cantidad de canciones es finita, un enfoque basado en hashes puede rendir mucho mejor.

  • El atractivo mágico y duradero de Shazam

    Shazam es uno de esos productos poco comunes que se ha sentido mágico durante más de 20 años, y es el tipo de objetivo al que los tecnólogos deberían aspirar.

  • Un video de Wall Street Journal que explica cómo funciona Shazam

    Hay un excelente video producido por Wall Street Journal que explica cómo Shazam crea su distintiva huella digital de audio.

  • Explicación sobre Chromaprint y AcoustID

    Chromaprint funciona basándose en patrones de cambio de tono en lugar de los valores máximos del espectro, y se usa en una gran base de datos abierta llamada AcoustID para vincular grabaciones de MusicBrainz con huellas digitales de audio. Sorprende que, a pesar de no haber tenido el mismo respaldo comercial que Shazam, la base de datos incluya tanta música.

  • Un texto interesante sobre Shazam y el procesamiento digital de señales

    Es una excelente introducción a cómo funciona Shazam y al procesamiento digital de señales, una lectura obligada para quienes quieran entender cómo funciona el reconocimiento de huellas digitales de audio.

  • Algoritmos similares que también pueden aplicarse a otros medios

    Hay algoritmos aproximados similares que pueden aplicarse no solo al reconocimiento de huellas digitales de audio, sino también a otros medios, y quien quiera entender el hashing en el mundo real debería estudiar este texto con calma.

  • La importancia del sitio web Every Noise At Once

    Every Noise At Once es un sitio asombroso que aplica emparejamiento algorítmico a la clasificación de géneros musicales y a los subgéneros ramificados que introducen las nuevas firmas de canciones. Corre el riesgo de dejar de funcionar por problemas de hosting, lo que sería una gran pérdida para la World Wide Web.

  • La intuición del proceso de reconocimiento musical

    Este sistema identifica fragmentos de melodía y los empareja en orden de una forma muy parecida a nuestro propio proceso de percepción, coincidiendo con cómo reconocemos una canción después de escuchar unas cuantas notas.

  • La transformada de Fourier utilizada en el reconocimiento musical

    Se menciona la transformada de Fourier, que se usa con frecuencia en el reconocimiento musical y que también se utilizó en una versión de código abierto llamada Echoprint, aunque el servicio se descontinuó después de ser adquirido por Spotify.