Como o Shazam identifica músicas em segundos

Você está em um café e uma música toca. Ela está na ponta da língua, mas você não lembra o nome. Em instantes, pega o celular, toca um botão e, em poucos segundos, descobre a canção. Mas como um aplicativo consegue ouvir alguns segundos de música em um ambiente barulhento e identificar a faixa entre milhões de opções? A resposta está em uma combinação de ciência acústica, processamento de sinais e algoritmos inteligentes.

O Shazam não reconhece canções pela melodia ou pelas letras, como muitas pessoas imaginam. Na verdade, o processo é bem mais complexo e engenhoso. Tudo começa no microfone do celular, que captura as vibrações no ar causadas pelo som. Essas vibrações são convertidas em um sinal elétrico e, depois, digitalizadas em uma forma de onda: uma sequência de números que representa a pressão do ar em cada instante. É como se o aparelho fizesse uma “fotografia” digital do som, mas em vez de transformá-lo em áudio como o cérebro humano, ele o converte em dados numéricos.

A forma de onda bruta, no entanto, não é útil para a identificação. Se a música for tocada mais alta, a forma de onda muda completamente, mesmo que seja a mesma faixa. Além disso, canções diferentes podem produzir padrões semelhantes, e o mesmo áudio em ambientes distintos resulta em ondas distintas. Por isso, o Shazam não trabalha diretamente com a forma de onda. Em vez disso, ele aplica uma transformação matemática chamada Transformada Rápida de Fourier (FFT, na sigla em inglês).

A FFT decompõe pequenos trechos do áudio em uma lista de frequências individuais presentes naquele momento. Imagine que você está tentando entender uma música: a FFT faz algo semelhante a perguntar “quais tons puros precisamos somar para reproduzir esse trecho?”. Ao empilhar todos esses trechos lado a lado, obtemos um espectrograma, que representa o som em três dimensões: o tempo no eixo X, a frequência no eixo Y e a intensidade (volume) em cada ponto. Qualquer som, por mais complexo que seja, pode ser descrito como uma soma de ondas senoidais em diferentes frequências e amplitudes. A FFT é o algoritmo que faz essa decomposição de forma eficiente.

O aplicativo analisa cerca de 1.024 amostras de áudio por vez (cerca de 23 milissegundos em qualidade de CD). Para cada trecho, a FFT calcula quanta energia existe em cada frequência. A fórmula por trás disso é a Transformada Discreta de Fourier: para cada faixa de frequência, o algoritmo multiplica cada amostra por uma onda senoidal naquela frequência e soma os resultados. Se o sinal contiver aquela frequência, o resultado será grande; caso contrário, ele se cancela. Essa matemática, apesar de parecer complicada, é executada em questão de milissegundos graças à eficiência da FFT.

O “Rápido” na FFT faz toda a diferença. Uma decomposição ingênua exigiria milhões de operações por trecho, mas o algoritmo explora simetrias matemáticas para realizar o mesmo trabalho com apenas cerca de N log N operações (onde N é o número de amostras). Isso permite que o celular processe centenas de trechos por segundo. O dispositivo então desliza essa “janela” sobre o áudio, aplica a FFT em cada pedaço e empilha os espectros resultantes, criando o espectrograma. Embora os exemplos iniciais usem tons puros e sintéticos para ilustrar, músicas reais são muito mais complexas, com camadas de instrumentos e vozes.

Se você já tentou cantarolar uma música para o Shazam, sabe que o aplicativo nem sempre acerta. Isso acontece porque cantar é diferente de reproduzir o áudio original. Enquanto o espectrograma de uma canção gravada é rico em picos de frequência bem definidos, uma voz humana pode não atingir os mesmos padrões acústicos. O Shazam funciona melhor com gravações originais, pois o algoritmo busca por “marcos” sonoros — pontos onde a energia é mais forte e clara o suficiente para ser identificada mesmo em ambientes ruidosos.

Por fim, o sistema não armazena todos os dados do espectrograma, o que seria inviável. Em vez disso, ele descarta a maior parte das informações e mantém apenas os picos mais significativos. Esses pontos formam uma “assinatura digital” única da canção, resistente a ruídos e variações de volume. É como conectar os pontos mais brilhantes em um desenho: mesmo que haja interferências, a imagem principal permanece reconhecível. Essa é a magia por trás do Shazam: transformar som em dados, filtrar o relevante e comparar com um banco de milhões de canções em milissegundos.