23 oct. 2010

LDK 49: Como recoñece as cancións Shazam

Hai algún tempo na sección Mallando no Android analizabamos Shazam, unha aplicación que recoñece as cancións a partir dunha mostra duns segundos dun xeito máis que aceptábel, mesmo con ruído de fondo.

O principio do seu funcionamento é sinxelo:
  1. Antes de nada, Shazam analiza as cancións dun completo catálogo musical e garda a información nunha base de datos.
  2. O usuario da aplicación grava 10 segundos dunha canción, extraéndolle as caracterísicas.
  3. A aplicación sube esas características ao servizo de Shazam, onde se buscan e comparan coa base de datos.
  4. Se a mostra coincide coa base, devólvese a información da canción, noutro caso hai erro.
E isto como se fai?

Se pensamos nunha canción como un espectograma, nun dos eixos teremos o tempo, noutro a frecuencia e noutro a intensidade. Cada punto no gráfico representa a intensidade dunha frecuencia determinada nun punto temporal. Supondo que a liña de tempo está no eixo X e a frecuencia no eixo Y, unha liña horizontal representa un ton puro e unha vertical unha explosión de ruído branco.
Shazam crea gráfico anterior, identificando os picos de intensidade. Para cada un destes picos garda a frecuencia e a cantidade de tempo transcorrida dende o comezo da gravación, creando unha táboa como a que segue:

Finalmente, compáranse estes datos co catálogo:

E dacordo aos resultados da comparación, temos a canción.

Bibliografía

No hay comentarios:

Publicar un comentario