top of page

Gestão de base de dados

A base de dados precisa de ter capacidade suficiente para indexar todos os registros de referência, da ordem estimada de milhões, e ter velocidade de computação suficiente para servir centenas de milhares de buscas por segundo. Como o modelo inicialmente não tinha performance suficiente na busca, por apresentar baixa autenticidade para cada registro, uma nova etapa de processamento foi adicionada para reduzir os tempos de correspondência: gerar um gráfico de cruzamento combinatório (combinatorial hashing). Neste novo gráfico, alguns picos do espectrograma são escolhidos como “pontos de âncora”.

A informação de dois ou mais Hash, pertencentes a uma zona alvo da constelação, são combinadas num único Hash chamado de âncora. A informação nesse Hash constituirá na sua respectiva frequência, nas frequências dos Hash pertencentes à sua zona alvo e na distância temporal dos outros Hash a ele mesmo, significando isso que correspondências entre Hash de uma amostra recolhida e Hash de uma amostra na base de dados terão muito maior probabilidade de pertencer a uma mesma música pois agora os Hash contêm muito mais informação. Esta técnica não vem sem um problema, sendo ele aumentar as probabilidades de se perderem Hash na transmissão. A forma de contornar o problema é aumentar a zona alvo das âncoras, pois isso cria redundância e diminui a probabilidade de haver erros na transmissão. No entanto, ao aumentar a área alvo aumenta-se quadraticamente a quantidade de Hash, aumentando o tempo dispensado na procura. Ao escolher uma área alvo suficientemente grande para diminuir os erros nas transmissões e suficientemente pequena para reduzir a quantidade de Hashes, o Shazam consegue minimizar os tempos dispensados a procurar correspondências.    

Além do desenvolvimento do reconhecimento de conteúdo, é notável o avanço da disponibilidade de dados armazenados em larga escala e processamento de dados que se deu no desenvolvimento da aplicação.

Guedes corrigido.png
bottom of page