Vibuko

Como o celular reconhece uma música em poucos segundos

A ideia por trás do Shazam, do SoundHound e da busca por cantarolar do Google: impressões digitais de áudio, picos de frequência e por que funciona mesmo num bar barulhento. E os casos em que o reconhecimento falha.

Uma música toca na loja, no carro de alguém ou no fundo de um vídeo, e você quer saber o nome. Aponta o celular, espera alguns segundos, e o app responde com o título, o artista e o álbum. Parece mágica, principalmente quando o ambiente está barulhento e o trecho captado é curto.

Não é mágica, mas a ideia por trás é engenhosa. Este artigo explica como o reconhecimento de músicas funciona, por que ele resiste ao barulho, como a busca por cantarolar é diferente e em que situações os apps não conseguem responder.

O problema: comparar um trecho com milhões de músicas

Imagine a tarefa. O celular grava dez segundos de áudio cheio de ruído, com conversas, pratos batendo e o motor de um carro. Esse trecho precisa ser comparado com um catálogo de milhões de músicas, e a resposta tem de chegar em segundos.

Comparar o som bruto, amostra por amostra, seria lento demais e falharia com qualquer ruído. A solução encontrada pelos serviços de reconhecimento foi comparar algo muito menor e mais resistente: uma espécie de impressão digital da música.

A impressão digital de áudio

A técnica mais conhecida foi descrita publicamente por um dos criadores do Shazam, num artigo técnico do começo dos anos 2000. A ideia geral funciona em três etapas.

1. Transformar o som num mapa de frequências

O áudio é convertido num espectrograma, um gráfico que mostra, a cada instante, quais frequências estão presentes e com que intensidade. Graves ficam embaixo, agudos em cima, e o tempo corre da esquerda para a direita. Uma música vira uma paisagem de pontos mais fortes e mais fracos.

2. Guardar só os picos

Em vez de guardar a paisagem inteira, o sistema marca apenas os picos: os pontos em que uma frequência está muito mais forte do que as vizinhas. O resultado parece um céu estrelado, com pontos espalhados no tempo e na frequência.

Aqui está o segredo da resistência ao barulho. Os picos mais fortes de uma música tendem a continuar sendo os mais fortes mesmo com ruído por cima. A conversa ao lado acrescenta pontos novos, mas não apaga os principais picos da música.

3. Formar pares e procurar

O sistema junta os picos em pares, anotando as duas frequências e a distância de tempo entre eles. Cada par vira um código curto, como uma palavra. Uma música inteira gera milhares desses códigos, guardados num índice gigante, com a indicação da música e do momento em que cada um aparece.

Quando você grava um trecho, o celular faz o mesmo processo e envia os códigos. O servidor procura quais músicas têm muitos desses códigos em comum e, mais importante, na mesma ordem e com o mesmo espaçamento de tempo. Uma música que bate em muitos pares, alinhados no tempo, é a resposta.

Antes dos apps: um número de telefone

O reconhecimento de músicas é mais antigo que os smartphones. O Shazam começou no Reino Unido, em 2002, como um serviço por ligação: você discava um número curto, aproximava o telefone da música e, depois de alguns segundos, recebia uma mensagem de texto com o nome da música e do artista.

A técnica de impressão digital já funcionava naquela época, mesmo com o áudio de baixa qualidade de uma ligação de celular. Foi justamente essa resistência a sons ruins que permitiu o serviço existir. Com a chegada das lojas de aplicativos, o serviço virou app, e a identificação passou a mostrar também a capa do álbum, a letra e links para ouvir.

Hoje o recurso está espalhado por muitos lugares: no próprio sistema de alguns celulares, nos assistentes de voz, em caixas de som inteligentes e em apps de música. A ideia central, porém, continua parecida com a descrita acima.

Os apps

Shazam

O Shazam é o app mais associado ao reconhecimento de músicas e hoje pertence à Apple. Além de identificar, mostra letras, clipes e links para ouvir nos serviços de streaming. Tem um modo automático que identifica músicas tocando ao redor enquanto o app está ativo. O cartão mostra que não tem anúncios nem compras no app.

SoundHound

O SoundHound também identifica músicas tocando e ficou conhecido por aceitar que você cante ou cantarole a melodia. Mostra letras sincronizadas e links para os serviços de música.

Google: pesquisa por música e cantarolar

O app Google tem um recurso de pesquisa de música. Tocando no ícone de microfone e escolhendo a opção de pesquisar uma música, você pode deixar o celular ouvir a música tocando ou cantarolar, assobiar ou cantar a melodia por alguns segundos. Em muitos celulares, o assistente de voz também responde a pedidos como “que música é essa?”.

Por que cantarolar é outro problema

A impressão digital funciona muito bem para a gravação original, mas não para a sua voz. Quando você cantarola, não há os mesmos instrumentos, o mesmo timbre nem o mesmo tom. Os picos de frequência são completamente diferentes.

Para cantarolar, os sistemas se concentram na melodia, ou seja, no desenho da sequência de notas: sobe, desce, repete, sobe mais. Esse desenho é comparado com as melodias das músicas do catálogo, sem se importar muito com o tom exato ou a afinação. Por isso dá para cantar mais grave ou mais agudo do que o original e ainda assim acertar.

Isso também explica por que cantarolar erra mais. Muitas músicas têm trechos de melodia parecidos, e uma pequena diferença de ritmo ou de nota pode levar a outra canção.

Quando o reconhecimento falha

Versões ao vivo e covers. A impressão digital é da gravação específica. Uma banda tocando ao vivo, um cover num bar ou um artista de rua geram picos diferentes da gravação de estúdio. Às vezes o app acerta porque a versão ao vivo também está no catálogo. Muitas vezes, não.

Músicas fora do catálogo. Artistas independentes que nunca distribuíram a música para os serviços de reconhecimento não aparecem.

Música muito baixa sob muito barulho. A técnica resiste ao ruído, mas tem limite. Se a conversa ao lado é bem mais alta que a música, os picos da música somem.

Remixes e versões aceleradas. Versões aceleradas ou com o tom alterado, comuns em vídeos curtos, mudam o espaçamento e as frequências dos picos. Alguns serviços lidam melhor com isso do que outros.

Trechos muito curtos. Dois segundos às vezes bastam, mas dar ao app dez segundos aumenta a chance de acerto.

Dicas para acertar mais

  1. Aproxime o celular da fonte do som, como a caixa de som ou a TV.
  2. Espere a parte mais marcante da música, como o refrão, que costuma ter uma melodia mais clara.
  3. Se não reconhecer de primeira, tente de novo em outro trecho.
  4. Para músicas de vídeos com narração por cima, tente num momento em que a narração pare.
  5. Para cantarolar, escolha a parte da música que você lembra melhor e cante por pelo menos dez segundos.

Perguntas frequentes

O app fica ouvindo tudo o tempo todo?

Não, a menos que você ative um modo automático. No uso normal, o app só ouve depois que você toca no botão, e para quando identifica a música ou quando o tempo acaba.

Precisa de internet?

Para identificar na hora, sim, porque a comparação é feita nos servidores. Alguns apps guardam a gravação quando não há conexão e identificam quando a internet voltar.

Por que o app às vezes erra e mostra outra música?

Quando o trecho é curto, tem muito ruído ou é uma versão diferente, os códigos podem coincidir mais com outra gravação. Tentar de novo, com um trecho mais longo e mais limpo, costuma resolver.