 con a ponencia de implementación de un identificador resunido en Python. Nostro les presento a Cameron McLeod. Benvenido, Cameron. Hola, me pueden oir todos? Sí, gracias. Este charla es básicamente como funcionó Shazam. Aora no funciona ao mesmo porque han publicado un papel académico, así tienen algo mejor. Pero un descargo de responsabilidad, má rapido, non soy experto de cualquier manera, e así todo o contenido en esta presentación se debe oir con cuidad. Pero... La recuperación de la información musical. Imagínate en un coche, e una canción suena en la radio. Te gusta, pero no sabes el nombre. Este problema besco es que cree este campo. No es fácil buscar el áudio o música. La representación varía mucho e usualmente hay un tamaño muy grande de arquivo. Shazam lo soluciona con unión técnica de veia digital. E a pesar de ése, hay outros problemas dentro del campo como busqueda de partitura e busqueda con canto real. Hoy vamos hablar má como funciona Shazam, pero estas técnicas e teoria se podei usar a todos. E bueno, como funciona? Mágica, todo. E por que Python? Python tiene que ser unha lección manala, no? Bueno, eu digo que é unha lección buena, porque tiene bibliotecas fantásticas como nonpy, scipy e maplotlib para visualizar durante o desarrollo que haces en a pantalla. E o má intantivo de estas bibliotecas é escribi en C e puedes escribir cosas intensivas tú mismo en C. E así é bueno para procesar listas e listas de números que é todo de ESP. É o proceso de señales digitales. E para mí, o mejor idioma é o que o mejor se conoce. Eu não tenho um demo, pero o exercicio para eleoíente é que tú haces um demo, para mí. Sim? Não. Este é um problema muy interesante e eu aprendi muito atiéndolo, pero não é o que eu completo. Ao final, ponderé o link do GitHub e podeis ver todo o que eu he hecho, pero non é muito. Bueno, a teoria é necesaria. Sim, te digo señales e transformadas de Fourier. Quem é cómodo con todos estos conceptos? Aventar las manos. Bueno, para uma revisa muito rápido, um señal é justo de informação. Um señal é por ser eu dicéndote algo, por ser un gráfico así. Neste caso, queremos dicir gráficos así. E as transformadas de Fourier é uma maneira de extraer as frecuentias desde um señal como o da esquerda. Teoria é o termo FFT que é só um algoritmo para hacerlo. Bueno, o destructor da cación. Primeiro, vamos a normalizar o Oreo e depois tomaremos fueas e almazenamos os resultados. Primeiro, normalizar non é como a definición usual no Oreo e de SF porque usualmente quer dizer que todos os colúmenes são os mesmos. Agora, só queremos que o formato é o mesmo. Adiós teme desintos velocidades de mostras resoluciones no número de bits, o bit depth en inglês e formatos. E se só tenemos um formato é mucho mais fácil escribir um tomador de fueas porque podemos escribir só uno. Se pode usar algo como FFNPEG mas a última vez que se actualizou foi hace muchos, muchos años. Así, não queria usar o para este. E também podriamos usar LibAV codec con Ctaps mas não me gostar tanto de Ctaps. Não sei se lo habais usado mas não é muito bom. Bueno, fueas. As metas que queremos é o tomano é muito mais pequeno que o de um arquivo de música normal e a coisa é que comparando diretamente não funciona. Así queremos algo que faz que é muito mais fácil como a voluntidade de busquera cresce com o tomano quando se desminue e se há outros señales como um homem criando a tua direcha. Esta não queremos que interfera com o nosso señal, que é o áreo da música. E também queremos que as gravaciones que necessitamos para identificar uma canção são muy pequenas. Así, não queremos estar de pé com o móvil de ventalo até a música todo o tempo. E esta, se temos uma canção, um dia te áreo como o da esquerda queremos que ao final temos uma base de datos temos a identidade da canção e uns hashes que são relacionadas. E este é como vamos a hacerlo. É um diagrama un pouco inquietante mas vamos a dividirlo Este são os gráficos que te mostrei antes e se temos uma canção, se parecia así como a área da esquerda vamos cortar-la en partes más pequeños e convertirles ao domínio de frecuentia. Este hace que podemos tener este diagrama que é as frecuentias contra o tempo e podeis ver apesar de que o hecho que eu posto muito a enferentia no señal da esquerda aún se pode ver as frecuentias É muito claro porque é de uma ola de 50 Hz e uma ola de 80 e se pode ver a 50 e 80 há pontos e é o mesmo aqui Temos este gráfico da transformada Fourier e toda a información está na esquerda Ollemos frecuentias máis que as frecuentias altas e assim queremos fazer unha coisa diferente O que podemos colocar este gráfico a algo local técnico? Porque o nosso hoje é como uma escala logarítmica Há unha que existe que se chama Mel e este se pode convertir a frecuentia de linear algo logarítmica Há unha equación mas é muito sujo Bom, depois este é um espectro grama Temos nossas transformadas de Fourier na esquerda que são giraros 90 giraros e se pone muchos Assim con estos os puntos os curos são os que tienen a amplitude máis grande e os pontos máis garras são os que têm a amplitude menos Podemos extraer os pontos máximos de aqui Temos um gráfico como o lar a direcha Este ajuda con reducir o que temos que travar é muito máis fácil a fazer hashes con este e também os puntos que têm a amplitude máis grande são os máis probables a sobrevivir a interferencia Bom, se temos estos máximos parecen así ao ordenador este é como se vê Este é o nosso espectro grama em forma máis para os humanos e o hacemos para cada região Vou mostrar algumas regiões depois e queremos que os pontos todos não estão na mesma área porque sí temos muitos hashes mas estão todos de un solo tiempo Então não temos un oeio de todo o nosso canto só temos um oeio de un parte así dividimos en partes e temos que encontrar o anchor points que é como se dice o papel de se dan e estos anchor points eu he dicho como o máximo do máximo Temos um anchor point por cada região e depois vamos emperrejar o con todos os puntos a la região seguente Con este este é um hashe este vinculo entre os pontos e se ver ver de forma máis clara bom tomamos a frecuente a primeira e a frecuente a segunda e tomamos a diferencia en tiempo entre os dois así teros menos de 1 Con este a diferencia en frecuente no porque o almazán e tomamos en forma absoluta assim temos se temos una frecuente e temos 2 frecuentes se pode encontrar a diferencia neste pero se tomamos a diferencia en tiempo dá máis distinto a nossas canciones porque tienes ooops I did it again de Britney Spears wherever I made room de Metallica são canciones muy distintas pero se lo ves em spectrograma hay frecuenteas que se comparte assim con a diferencia en tiempo não os dois tienen os mesmos bom e depois vamos a almaz este usa na palavra difícil almazenarlos podemos hacerlo en sólo 56 bits que está un poquito oscur aqui é máis fácil buscar de las weas se son de un tamaño muy fijo assim vamos a ponerlos en un formato así a frecuente está en mels como dije antes e o tempo está en milisíndos não usamos ventanas para a frecuente como recordáis que hay ventanas de temporada de furia porque si cambiamos o tempo que dura uma ventana não vamos a tener compatibilidade entre os dois cosas bom com os mels há uma coisa que se chama a frecuente de náquist a frecuente de náquist é uma de tu frecuente máis grande bom para o áudio dos téris é 22.05 kilohertz porque os téris estão aos 44.1 e este traduce a 4 milis de mels bom e o tempo não vamos a marcar algo máis que bom, um segundo indiferente entre os pontos porque este nos está 500 de milisíndos em cada región que temos este já basta, ya sobre temos usualmente como 100 e o T1 não pode ser máis que 4194304 melisíndos que é 70 minutos este é já basta se tienes unha canción de prog máis bom, é diferente mas aqui já basta depois se pode ponerlo en una base de datos como react hablé con a gente de numbly e react funcionará para este também funcionará redis, se tienes para a velocidade máis grande bom, en resumen hemos tomado alguno áudio de frecuentias tomamos os pontos máis grandes deste e os emparajamos con estas parejas cada pareja é un hash e todos estos hashes forman un ovea digital de súa canción pero sí que queres algo que funcione agora há unha cosa que se llama deja vu e é exacto o mesmo é un proiecto impitón que intenta construir unha copia de shesham e a funciona, pois descargarlo é en github, este é o vinculo de github e pois descargarlo e intentarlo e todo funciona como é un proiecto o idrevo, lo hacio pero non lo conozco unha cosa máis esta charla foi inspirada por unha charla en fosden eu não acabei o proiecto pero aprendi muito haciéndolo e hay muchas charlas que tiene unha gama desde machine learning a go puedes encontrar algo que te interesa e puedes coquelo e hacer algo interesante se queres há un papel que intenta hacer sincronización de vídeos de conciertos este papel toma se estás en un concierto e hay mucha gente grabándolo se pode unir todos en un vídeo por causa de las weas digitales este é un proiecto que solo tiene unha implementación podras hacer o segundo hay mucho aqui que no inclui como pro parlo porque tengo máis tiempo se queres probar este toma algunas canciones que están de licencia gratis en o libre, licencia libre es libre como no como esta herbeza de licencia libre en el internet e después toma un grabación de tu microfono en el mobile e puedes hacer este como una prueba de tu tens cosas estaré aqui toda la semana se tienes outras perguntas se non explique nada en esta presentación vení para preguntarme por favor e ya está todo grácias Camerón Portuguesa Información alguien quisira hacer una pregunta o máis técnica posible no ok pues en unos 7 minutos daremos inicio a la siguiente ponencia 7 minutitos porque creo que terminamos antes en unos 7 minutos hagamos unha pequena pausa