Implementación de un Identificador de Sonido en Python

Cameron MacLeod

@notexactlyawe

notexactlyawe/abracadabra

Recuperación de la Información Musical

Porqué Python?

ehh... Dejé mi demo en casa y el perro se lo comió

Teoría necesaria

Señales

Trasformadas de Fourier

Estructura

Tomar Huellas

Normalizar

Almacenar

Normalizar

Audio

Identificador

MP3

AAC

Ogg

Huellas

Metas

  • Tamaño pequeño
  • Velocidad de búsqueda
  • Resistencia a la interferencia
  • Identificación con grabaciones pequeñas

Huellas

Metas

ID de canción Hash
1 data
1 data
... ...
4839482 data
4839482 data
4839482 data

Huellas

Audio

Cortar en partes de n ms

Al dominio de frecuencia

Unir en regiones

Encontrar máximos

Emparejar puntos

Hacer hash

Unicornios

Frecuencia

Audio

Cortar en partes de n ms

Al dominio de frecuencia

Frecuencia

Audio

Cortar en partes de n ms

Al dominio de frecuencia

Frecuencia

Audio

Cortar en partes de n ms

Al dominio de frecuencia

Máximos

Unir en regiones

Encontrar máximos

Spectrograma

Máximos

10 7 8 4 7 12 7 3 2 1
9 6 5 4 3 4 5 8 9 10
5 3 3 3 2 4 5 4 4 4
3 5 7 9 11 13 9 5 3 1
7 6 7 6 8 8 6 5 4 3

Unir en regiones

Encontrar máximos

Spectrograma

Hash

Emparejar puntos

Hacer hash

Unicornios

Hash

f1:f2:dt

t1:id

Emparejar puntos

Hacer hash

Unicornios

Almacenamiento

f1 - 12b

f2 - 12b

dt - 10b

t1 - 22b

56b total

Emparejar puntos

Hacer hash

Unicornios

En resumen

¿Pero si que solo quiero algo que funciona?

worldveil/dejavu

Will Drevo

Una cosa más

¿Preguntas?

@notexactlyawe

notexactlyawe/abracadabra

abracadabra EuroPython 2016 (Español)

By Cameron Macleod

abracadabra EuroPython 2016 (Español)

Presentación sobre el proyecto "abracadabra" de EuroPython 2016 en Bilbao. https://github.com/notexactlyawe/abracadabra

  • 939