Skip to content

Reconocimiento de Shazam

musica
Reconocimiento de Shazam
5 (100%) 1 vote[s]

Piensa en un reconocimiento de Shazam como este. Usted abre Shazam, la aplicación móvil, y “escucha” una pieza de música que se reproduce en segundo plano. Un reconocimiento es la identificación exitosa de la canción.

Datos de localización

Un usuario puede optar por compartir sus datos de ubicación con Shazam. Shazam luego pone a disposición de los empleados algunos de los datos de ubicación anonimizados (latitud y longitud), según su caso de uso.

Tener datos de ubicación anonimizados para visualizar fue una experiencia genial. Me enseñó mucho sobre el procesamiento de grandes conjuntos de datos, visualizaciones que cuentan una historia y visualizaciones que se ven bonitas pero que no hacen otra cosa.

La visualización

Una cosa que necesita saber, todas las visualizaciones siguen esta idea: un punto representa un reconocimiento exitoso. Los puntos se trazan en un sistema de coordenadas geográficas. Esto no es lo mismo que tomar un mapa de Google y luego trazar marcadores de ubicación sobre él.

Chicago, Londres, Nueva York, lleno
Zoomado en Nueva York
He usado el color para diferenciar entre Android e iOS. Puedes adivinar cual es cual? Sugerencia: mira las principales ciudades.

¿Qué tipo de dispositivo crees que prevalece allí?

Android: rojo
iOS: azul
Si observa detenidamente los mapas de puntos, puede observar definiciones claras para las carreteras. Esto puede ser explicado por los pasajeros que son música de Shazam tocando desde los altavoces del automóvil.

En total, creé más de 40 GB de datos de fichas. Esto se debe al nivel de zoom que había especificado. Un alto nivel de zoom significa que aquellos que ven el mapa pueden acercarse a un nivel mayor.

Al revisar las visualizaciones con colegas, seguimos preguntándonos: ¿Qué “lugar” estaba en la ubicación de grandes grupos? Por ejemplo, ¿era un lugar de música donde la gente frecuentemente usaba Shazam?

Para ayudar a responder esta pregunta, tuve una idea: ¿qué pasaría si utilizara un servicio de localización para determinar qué lugares están actualmente presentes? Para hacer esto, utilicé Google Maps Places API. Cada vez que se desplaza a una nueva ubicación, consulto la API de Google Maps para formular la pregunta: ¿Qué lugares hay dentro de esta ubicación?

Al utilizar esta función, comenzamos a darnos cuenta de que los clusters de puntos normalmente serían el resultado de: cafés, clubes nocturnos, centros comerciales, tiendas de conveniencia y otros.

También sincronicé un mapa de Mapbox (similar a Google Maps) para que al arrastrar y acercar el mapa de Shazam, el otro mapa “regular” se moviera también. Esto le permite identificar rápidamente qué ubicación geográfica está mirando actualmente

El código

Al igual que con todo lo que hago, solo me estoy beneficiando del trabajo duro realizado por otros en nuestra comunidad. Todo el mérito recae en Eric Fischer por su excelente trabajo en los mapas de datos. Si sigues las instrucciones en ese repositorio de Github, podrás hacer tus propias visualizaciones. Necesitarás un conjunto de datos que consta de puntos de latitud y longitud; es posible que encuentres algo en Github, por ejemplo, impresionantes conjuntos de datos públicos.

Si terminas probándolo: aquí hay algunas notas que hice para mí que pueden serle útiles.

Primero, necesitas una gran lista larga de latitudes y longitudes. Sin embargo, incluso para obtener esa información, es posible que tenga que hacer un trabajo extra. En mi caso, lo obtuve de una API de Shazam interna. Usé un módulo Node llamado fast-csv para analizar datos. Usar flujos de esta manera hace que el análisis de datos grandes (gigabytes valga la pena) sea simple.

https://www.youtube.com/watch?v=eAMf14eF2AI
shazam

Shazam