diumenge, 21 de febrer del 2010

SHAZAM ...la màgia d'endevinar cançons.

Estàs escoltant una cançó que t'agrada i no pots saber quina és?, doncs connectes Shazam i en 10 segons ja tens el nom de la cançó i el grup.




Tenia curiositat de saber com funcionava, i afortunadament hi ha un article escrit per u dels desenvolupadors per a explicar-ho. Per supost deixar de costat alguns dels detalls, però la idea bàsica és exactament el que es pot esperar: es basa en la presa d'empremtes dactilars de música basat en un espectrograma.
Pensem-ho per un moment, quan nosaltres escoltem una cançó ens és senzill saber quina és gràcies al nostre meravellosos cervell. Escoltant una fracció podem dir fàcilment quina cançó és la que sona (sempre que l'hàgem escoltant abans clar). Shazam fa una cosa semblant ja que només reconeix cançons que hi ha "escoltat" abans.

Estos són mes o menys els passos bàsics:

1. En principi Shazam té un ampli catàleg de música, i emmagatzema “les empremtes dactilars” en una base de dades.
2. L’usuari, “Taguea” (pren una mostra) una cançó que proporcionara les empremtes dactilars d'una mostra de 10 segons d'àudio.
3. L'aplicació Shazam puja l'empremta digital al servidor per a comparar-la, és a dir, fa la busca de l'empremta presa corresponent en la seua base de dades.
4. Si es troba una coincidència, la informació de la cançó es torna a l'usuari, en cas contrari torna una errada.

Aixina, és com funciona la presa d'empremtes dactilars:

Es pot pensar de qualsevol peça de música com un temps-freqüència, dit gràfic espectrograma . Be, un dels eixos és el temps (X), un altre la freqüència(Y), i el tercer és la intensitat (Z). Cada punt de la gràfica representa la intensitat d'una freqüència donada en un punt específic en el temps. Suposant que el temps està en l'eix X i la freqüència està en l'eix Y, una línia horitzontal contínua representaria un to pur i una línia vertical representaria una explosió instantània de soroll. Ací, veiem un exemple de com pot paréixer una cançó:



Espectrograma d'una mostra de cançó amb intensitats màximes marcades en roig.

S'interpreten les empremtes dactilars de l'algoritme Shazam d'una cançó de la generació d'este gràfic 3D, i la identificació de freqüències de "màxima intensitat". Per a cada u d'estos punts de pic es fa un seguiment de la freqüència i la quantitat de temps des del començament de la pista.
Per tant un exemple d'una empremta dactilar per a una mostra de 10 segons pot ser:


Shazam basa el seu catàleg d'empremtes dactilars com una taula hash, on la clau és la freqüència. Quan Shazam rep una empremta digital com l'anterior, usa la primera clau (en este cas 823.44), i busca totes les cançons que coincidisquen. La seua taula d'hash podria ser semblant al següent:



Alguns detalls extra: no sols marca un punt únic en l'espectrograma, sinó que marca un parell de punts, la "màxima intensitat", a més d'un segon "punt d'ancoratge". Pel que el seu clau no és només una freqüència única, és un hash de les freqüències d'abdós punts. Açò porta a menys col•lisions hash que alternativament acceleren la busca de catàleg en diverses ordes de magnitud pel que permet aprofitar millor les constants de la taula (O (1)).
Si un patró específic és trobat diverses vegades, llavors es comprova si estes freqüències corresponen en el temps. De fet, tenen una forma intel•ligent d'actuar creant un lot de mostres de freqüència, un eix és el temps des del començament de la pista de les freqüències que apareixen en la cançó, en l'altre eix estan les freqüències que apareixen en la mostra . Si hi ha una relació temporal entre els conjunts de punts, llavors els punts s'alineen al llarg d'una diagonal. A partir d'ací s'utilitza un altre mètode per al reconeixement del senyal i poder distingir-la en la base de dades.

Per a més informació us deixe el document PDF en perfecte anglés.

Enllaç de descàrrega:
shazam.pdf

Cap comentari:

Publica un comentari a l'entrada