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
- Aproxime o celular da fonte do som, como a caixa de som ou a TV.
- Espere a parte mais marcante da música, como o refrão, que costuma ter uma melodia mais clara.
- Se não reconhecer de primeira, tente de novo em outro trecho.
- Para músicas de vídeos com narração por cima, tente num momento em que a narração pare.
- 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.