Omicrono, la tecnología de El Español

Estás una noche en tu garito habitual tomando unas copas con los de siempre, y de repente suena una canción que te distrae levemente de la conversación, no sabes qué canción es, pero suena tan bien que darías la mitad de tu copa por conocer el título y el artista. Entonces sacas tu smartphone, y con dos toques en la pantalla tienes toda la información que necesitas de esa canción, media copa que no has tenido que sacrificar, y una nueva conversación sobre el temazo que acaba de sonar.

Hay varios buscadores de canciones disponibles para cualquier smartphone en la actualidad: SoundHound, Shazam o el propio Google Music son algunos ejemplos. ¿Te has preguntado alguna vez cómo funciona esta tecnología? Pues todos utilizan un procedimiento muy parecido y es relativamente sencillo, así que vamos a tratar de comprender cómo funciona, pero antes, debemos conocer lo que es un espectrograma.

El espectrograma

Un espectrograma es una representación visual del espectro de frecuencias que comprende un sonido. Es un registro que indica qué frecuencia es emitida en cada instante durante la producción de un sonido, de manera que a cada momento en el tiempo le corresponde una única frecuencia. En ocasiones también puede introducirse una tercera variable como la amplitud del sonido, aunque no es nuestro caso. Los espectrogramas son excelentes herramientas que se utilizan para resolver muchos problemas, se usan espectrogramas para reconocer la llamada de determinados animales (en la naturaleza, no en los garitos), son la base de tecnologías como el sonar, y sirven incluso para resolver problemas de sismología.

Buscadores_canciones_05

Espectrograma de la dicción de las palabras “nineteenth century”

¿Cómo funciona?

Familiarizados con el concepto de espectrograma, es fácil comprender el funcionamiento de este tipo de software. Estos son los pasos básicos:

1. La compañía desarrolladora del software realiza los espectrogramas de un gran catálogo de música, canción a canción, etiquetando estos con los respectivos datos de cada pista (título, artista, álbum, etc) generando una gran base de datos.
2. El usuario activa el reconocimiento de canción desde su smartphone, grabando un determinado fragmento de la canción.
3. El software de reconocimiento utiliza este fragmento para generar un espectrograma que representa la canción que queremos identificar, y lo envía a los servidores para compararlo con los espectrogramas registrados anteriormente en la base de datos.
4. Si nuestro espectrograma, tras ser examinado, coincide con alguno de los registrados en la base de datos, el software devuelve los datos asociados al mismo, de lo contrario, nos mostrará un error.

¿Cómo se comparan los espectrogramas?

En los servidores de la compañía desarrolladora, nuestro espectrograma es analizado intensivamente para encontrar ciertos puntos de referencia, los cuales sirven para facilitar la comparación con los espectrogramas almacenados en la base de datos. El objetivo es encontrar un espectrograma en la base de datos que contenga un patrón idéntico al que estamos estudiando, con los mismos valores de frecuencia en las proporciones de tiempo determinadas. Una vez encontrado ese patrón, ya está localizada la canción y tan solo hay que devolver todos los datos disponibles al cliente: título, artista, álbum, biografía del artista, próximos conciertos, etc.

Buscadores_canciones_06

Así que cada vez que vuelvas a intentar identificar una canción con tu smartphone, recuerda que en realidad estás comparando espectrogramas de diferentes sonidos, de esta manera tendrás no una, sino dos conversaciones interesantes que tratar con tus colegas, lo cual probablemente se merezca otra ronda más…

  • ZimoKapino

    ¿El google music puede hacer eso? ¿¡¿Cómo?!? :-S

  • Jorge

    Muy interesante, gracias por compartirlo.

    Un pequeño matiz en cuanto a la definición de espectrograma: creo que no es del todo correcto eso de que “a cada momento en el tiempo le corresponde una única frecuencia”. Para evaluar una frequencia se requiere un cierto intervalo (puede ser muy corto) de tiempo, y en dicho intervalo podemos tener (y será lo más común) una mezcla de frequencias en distintas intensidades (es decir, un espectro de frequencias). El propio espectrograma del artículo muestra que, para un momento dado (eje X) existe todo un conjunto de frequencias (eje Y) con diferentes intensidades (escala de colores).

    Pequeños detalles aparte, me ha parecido muy buen artículo. Y me ha surgido una pregunta: ¿qué tipo de sistema emplearán los programas tipo Midomi, donde en lugar de presentar al programa la canción original, se canta el tono de la canción directamente en el dispositivo? Me imagino que deben de usar algoritmos algo diferentes para poder comparar, por ejemplo, una melodía silbada con el tema original y ser capaces de identificarlo.

    Y supongo que discutirlo daría para otra ronda de copas más 😀

    • Pedro Mepal

      Muchas gracias por el pequeño matiz Jorge 😀

  • Ruriko

    Lo interesante seria poder usar esta aplicación en la pc, yo se que hoy en dia es raro quien no tenga un telefono, pero los smartphone son algo caros, ademas de lo que implica el servicio de internet etc.

    • IvanD3

      Generalmente estas apps surgen del tipico “Cual es esa cancion que suena”. Generalmente esta incognita sucede fuera de casa e igual el nicho de usuarios que lo usarian en PC es muy inferior

    • Johann

      En windows 8 podes encontrar Shazam… yo lo uso muy seguido buena app

  • Jorge

    Relacionado con este tema, aquí dejo un post (en inglés) sobre imágenes ocultas en el espectrograma de algunas canciones. Supongo que nadie se esperaría esto al escuchar los temas xD

    http://twistedsifter.com/2013/01/hidden-images-embedded-into-songs-spectrographs/

  • Pingback: Idazketa (weekly) | Klaserako tresnak()

  • Muchacho necio

    Ahora, hasta ahora todo está claro y lógico, pero ¿qué decir cuando el espectrograma que se envía no es idéntico a ninguno en base de datos?. Cuando instalé el SoudHound en mi Y210, dediqué una tarde a ponerlo a prueba, quería saber hasta qué punto podía trabajar, en otras palabras, me puse a jugar con el SoundHound y los resultados hicieron que me rompiera el coco.
    -Puede identificar con exactitud covers y remixes.
    -puede identificar una canción habiendo personas hablando en el entorno
    -Puede identificar canciones con ruidos de tráfico
    -Puede identificar canciones con tempo acelerado, relentizado y con el pitch subido o bajado, es decir, desafinados.
    -Puede identificar alguna de dos canciones sonando simultáneamente. No 3.
    -puede identificar canciones con fase invertida
    -Puede identificar canciones con filtros pasabajos, pasaband y pasaaltos aplicados, es decir, con trozos de espectros suprimidos.
    -Puede idementificar canciones cantadas a capella, pero es muy limitado, nunca identificó cuando canté yo, pero sí cuando cantaba una amiga que respetaba la entonación original (cantaba bien).
    -No puede identificar canciones reproducidas alrevés
    -no puede identificar canciones con distorsión excesiva o grabadas muy cerca de altavoces con altísimo volúmen.
    -Con respecto a la base de datos, no identificó bandas sonoras de varios vídeojuegos.
    -No identificó algunas canciones de Katya Chehova (cantante rusa) como Noch na nule ni oblakami, tampoco algunas africanas ni varias israelíes, entre otras muy poco conocidas.
    -Por lo general devuelve una única respuesta y exacta, sólo un par de veces me devolvió varias opciones de la misma canción.
    Creo que además de comparar los espectros, debe haber algo más. A veces, de verdad se me da por pensar que hay gente del otro lado escuchando lo que uno les manda para identificar, es muy preciso.

  • oscar a.

    todavia le faltan muchiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiisimos espectogramas a la chusta esa. hasta el punto de ponerle una cancion con vocal y decirme que no podia sacar el titulo al no haber nadie cantando….WTF?. lo unico que caza eso es la musica mainstream. rihana-pit bull-beyoncee-shakira-iglesias-baute. soulseek caza bastante mas que eso.XD

1 de 5