Contenido

Listas Genius de canciones similares con PHP

16 sep

+ 15

Hace unos días Apple lanzó el Firmware 2.1 para el iPhone/iTouch y la verdad es que las mejoras han sido sustanciales, no solo en cuanto a consumo de batería, velocidad del dispositivo, o mejoras visuales. Sinó que  han añadido un nuevo sistema llamado Genius.

Genius es un algoritmo que dado una canción el te sugiere canciones similares a las que tienes incluidas en el iPhone/iTouch (o tambien mediante iTunes 8 en tu equipo).

A mi personalmente me ha encantado la idea. Y he estado pensando en como deberían tener montado el tinglado para obtener esas similitudes. Evidentemente no creo que tenga los datos relacionados en su poder, deben usar una aplicación externa para sacar esas similitudes. Supongo que Last.fm es la mejor opción, pero no he leido nada y no sé exactamente si lo han sacado de ahi…. YO SI!!:D

He hecho una prueba con la API de Last.fm, que es muy sencilla de usar y he montado un buscador de similitudes de canciones, para ello tendremos que introducir un artísta y una canción, entonces Last.fm nos devuelve las canciones similares que sus millones de usuarios sabiamente han relacionado :D

Echarle un vistazo a phpGenius (a veces me asusto con lo ingenioso que soy con los nombres xDD) y el código (no controlo muchas carácteres especiales, así que acentos o comillas harán que la aplicación cause error).

  • Lo explicaron en la conferencia. para obtener los datos que Genius necesita recopilan los datos de lo que la gente tiene en iTunes.

    Cuando activas por primera vez la función Genius, comprueba tu bases de datos con tus canciones, calificaciones, estilos, y los envía a Apple. Según Steve Jobs de forma totalmente anónima.

    Así poco a poco irá mejorando. El problema que le veo es que mucha gente no tiene bien ordenada su música y no va a funcionar bien.

  • Andrés, ¡Muy bueno tu script! La verdad es que estuve pensando en hacer una cosa parecida cuando actualice al iTunes 8, ya que como tu has dicho trabajar con el API de Last.fm es muy fácil.
    Una sugerencia, en vez de tener que escribir la canción, podrías dar otra opción que usase directamente la ultima canción escuchada por un usuario de Last.fm, para dar la información.

  • pues a mi no me ha funcionado en ninguna de las busquedas que hice.

    y si no encuentra ni a “britney spears” …. ya no sabia con que mas probar que fuera con exito .
    Saludos

  • @alejandro: A mi si me ha encontrado canciones de Britney Spears, ¿Estás buscando Artista y Canción o solo Artista?

  • Hola Andrés te sigo desde hace una buena temporada me encanta el tema de la programación aunque solo hago mis pequeños pinitos sobretodo por falta de tiempo (mi trabajo no tiene anda que ver con esto).
    Así que lo primero felicitarte por el blog. Me parece muy interesante lo que escribes aunque haya cosas que no entiendo del todo ;).
    Y luego agradecerte que des acceso al código, porque a los que tenemos curiosidad por estas cosas, nos viene que ni pintado.

    Un saludo.

  • La técnica fundamental para recomendaciones es cruzar las valoraciones de diferentes usuarios sobre algo, en este caso canciones, de esta forma tendriamos una tabla que se podrian considerar como vectores de valoraciones, de esta forma podrimaos calcular usuarios similares calculando una covarianza (en realidad implica algun calculo mas para normalizar los datos).

    Pues bien, si invertimos la matriz (tabla) podremos calcular los mismo pero con canciones. Solo era para quien tenga curiosidad del proceso que hai detras de las detecciones de similitud.

  • Al principio me ha pasado lo mismo, que alejandro hasta que he ido preguntando a mi compañero por canciones y artistas y la verdad que funciona.

    Las pruebas y funciona con solo poner artistas….

    Macaco
    Lhasa
    The cure
    Einsteurzende Neubauten
    Cocteau Twins
    Peter Murphy

    y sus canciones no las pondré pero cualquiera, lo que he visto y me han sugerido es que lo que hace es cojer la temática…

  • Se me olvido decir, esta fenomenal echo anieto2K

  • No es algo tan raro. El winamp lo lleva incorporado desde un tiempo. Se llama Predixis MusicMagic. Creo que no realiza ninguna petición, simplemente procesa todas las canciones y te sugiere las que se parecen, tienen un ritmo similar, etc.

  • Es un buen comienzo. El poder de last.fm es mucho superior al de la mierda de Genius, que es eso, una puta mierda (con todos mis respetos, pero si no escuchas música mainstream sirve para lo mismo que un boli sin tinta).
    La verdad es que con el api de last.fm, traerte el xml es sencillo, pero yo incorporaría algunas cosas:
    – Cambiara el orden de manera aleatoria del array. Luego escogería 10 o 15 canciones, en un for, y para cada una haría una pequeña inteligencia “aleatoria”, basada, eso, en azar y en popularidad del grupo, para que salieran grupos conocidos pero tambien desconocidos.
    – Cruzar las canciones de cada grupo de la lista con las últimas escuchas por el artísta y de nuevo usar el azar para que sea posible escoger otras de entre todas las que se han escuchado.
    – Habría que pensar algo para escoger un pequeño porcentaje de temas de estilos muy similares.
    Con eso consigues listas más aleatorias y nunca iguales.

  • esto me viene de maravilla ya que necesitaba algo así muy buen trabajo Andrés veré haber que adaptaciones le hago a mis necesidades

  • Hola andrés, pudiste ‘jailbreckear’ el firmware 2.1 o solamente lo has instalado como lo da apple?

    Saludos

  • Listen también trae algo así hace tiempo, utilizando Last.fm

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.