2 pontos por GN⁺ 2023-12-06 | 1 comentários | Compartilhar no WhatsApp

Título resumido: O princípio da tecnologia de reconhecimento musical do Shazam

O que é o Shazam?

  • O Shazam é um aplicativo que identifica músicas tocando ao redor.
  • Você abre o app e grava alguns segundos de áudio enquanto a música está tocando para pesquisar no banco de dados.
  • No passado, o serviço era oferecido por número de telefone, e o reconhecimento musical era uma tarefa difícil devido às limitações da qualidade das chamadas.

Por que o reconhecimento musical é difícil

  • Para quem não está familiarizado com processamento de sinais, o reconhecimento musical é um problema difícil por causa da complexidade dos sinais de áudio.
  • Uma abordagem de força bruta para encontrar uma parte específica da música na faixa inteira é muito lenta, e a forma do sinal pode mudar bastante por causa de ruído de fundo e efeitos de frequência.

Visão geral do sistema

  • O Shazam é dividido em dois fluxos, cadastro da música e reconhecimento, e ambos compartilham etapas comuns como cálculo do espectrograma, busca de picos no espectrograma e hashing dos picos.
  • O fluxo de cadastro armazena os hashes no banco de dados, e o fluxo de reconhecimento os compara com os hashes no banco para identificar a música em reprodução.

Cálculo do espectrograma

  • Para obter o espectrograma do áudio, é preciso entender a transformada de Fourier.
  • A transformada de Fourier informa quais frequências estão presentes no áudio, e com isso é possível gerar um espectrograma que mostra a variação das frequências ao longo do tempo.

Espectrograma

  • Para representar melhor as frequências variando ao longo do tempo, a música é dividida em pequenas partes e a transformada de Fourier é aplicada.
  • O espectrograma é um gráfico 3D com tempo (eixo X), frequência (eixo Y) e intensidade (eixo Z/cor).

Geração da impressão digital

  • A impressão digital única do áudio é extraída encontrando os picos que representam as frequências mais fortes no espectrograma.
  • Esses picos conseguem resistir a ruído e outras distorções, o que os torna adequados para gerar a impressão digital.

Encontrando picos

  • Os picos do espectrograma representam as frequências mais fortes do sinal e precisam estar distribuídos de forma uniforme para uso na impressão digital de áudio.
  • Uma técnica de filtro máximo é usada para destacar os picos do espectrograma e localizar suas posições.

Hashing

  • Hashes são gerados criando pares de picos do espectrograma, o que aumenta a unicidade.
  • O hash inclui as frequências dos dois picos e a diferença de tempo entre eles, e é armazenado no banco de dados.

Correspondência

  • Explica o processo de encontrar, na coleção de impressões digitais do banco de dados, as que correspondem a uma determinada amostra de áudio.
  • Os hashes são pesquisados, agrupados por música e então verificados para confirmar correspondências, selecionando a faixa com o maior número de acertos.

Conclusão

  • O Shazam passa por etapas como cálculo do espectrograma, extração de picos, geração de pares de hash e armazenamento da impressão digital para cadastrar e reconhecer músicas.

A opinião do GN⁺

  • O mais importante neste artigo é que ele explica de forma fácil de entender o processo complexo pelo qual o Shazam reconhece músicas.
  • É interessante e atraente como os detalhes técnicos são divididos passo a passo para que até engenheiros de software iniciantes consigam entender.

1 comentários

 
GN⁺ 2023-12-06
Comentários do Hacker News
  • A abordagem eficiente do Shazam baseada em hash

    Quando o Shazam foi lançado em 2008, desenvolver uma forma computacionalmente eficiente de converter músicas em hashes foi uma abordagem inteligente. Se um serviço como esse fosse lançado hoje, a abordagem de P&D de treinar um modelo seria o caminho padrão, mas isso pode ser ineficiente e caro. Como o número de músicas é finito, uma abordagem baseada em hash pode ter desempenho muito melhor.

  • O apelo mágico e duradouro do Shazam

    O Shazam é um dos raros produtos que parecem mágicos há mais de 20 anos, e isso é algo que engenheiros deveriam almejar.

  • Vídeo do Wall Street Journal explicando como o Shazam funciona

    Há um belo vídeo produzido pelo Wall Street Journal explicando como o Shazam cria sua impressão digital de áudio única.

  • Explicação sobre Chromaprint e AcoustID

    O Chromaprint funciona com base em padrões de mudança de tonalidade, em vez dos valores máximos do espectro, e é usado em um grande banco de dados aberto chamado AcoustID para conectar gravações do MusicBrainz a impressões digitais de áudio. É surpreendente que, mesmo sem tanto apoio comercial quanto o Shazam, o banco de dados inclua tanta música.

  • Um texto interessante sobre o Shazam e processamento digital de sinais

    É uma excelente introdução sobre como o Shazam funciona e sobre processamento digital de sinais, leitura obrigatória para quem quer entender como funciona o reconhecimento por impressão digital de áudio.

  • Algoritmos semelhantes aplicáveis a outras mídias

    Existem algoritmos aproximados semelhantes aplicáveis não só ao reconhecimento por impressão digital de áudio, mas também a outras mídias, e quem quiser entender hashing no mundo real deveria estudar este texto com calma.

  • A importância do site Every Noise At Once

    Every Noise At Once é um site extraordinário que aplica correspondência algorítmica à classificação de gêneros musicais e aos subgêneros ramificados introduzidos por novas assinaturas de músicas. Ele corre o risco de sair do ar por problemas de hospedagem, o que seria uma grande perda para a World Wide Web.

  • A intuitividade do processo de reconhecimento musical

    Esse sistema identifica fragmentos de melodia e os associa em sequência de forma muito semelhante ao nosso próprio processo de percepção, o que combina com a maneira como reconhecemos uma música ao ouvir apenas algumas notas.

  • A transformada de Fourier usada no reconhecimento musical

    Há uma menção à transformada de Fourier, frequentemente usada no reconhecimento musical. Ela também foi usada em uma versão open source chamada Echoprint, mas o serviço foi encerrado depois que a empresa foi adquirida pelo Spotify.