O que é e como funciona isso de música com palavra cantada
Quando alguém pesquisa musicas palavra cantada, geralmente tá procurando algo muito específico: letras de músicas onde cada sílaba ou palavra é cantada de forma bem delineada, quase como um exercício de dicionarização fonética. O negócio não é só encontrar a letra, mas acessar o áudio sincronizado, o que muda completamente a abordagem. Na prática, você tem dois caminhos. O primeiro é usar bancos de dados como o Genius ou o Musixmatch, que já trazem letra sincronizada minuto a minuto. O segundo — e aqui é onde a maioria erra — é montar seu próprio dataset usando ferramentas de speech-to-text com timestamps, tipo o Whisper da OpenAI, mas configurado com um threshold de confiança alto para filtrar só trechos onde a palavra realmente foi cantada e não murmurada.
Como eu resolvi o problema das palavras cantadas fora do padrão
Eu tava montando um corpus para análise fonética de MPB e me deparei com um erro recorrente: o Whisper transcrevia gemidos, risadas e sons de ar como se fossem palavras. Isso gerava um falso positivo de cerca de 18% no dataset. A solução que funcionou foi adicionar uma camada de filtragem pós-processamento usando um classificador simples baseado em n-gramas de frequência — basically, qualquer sequência que não aparecesse pelo menos 3 vezes no vocabulário geral do português era descartada. Cortou o ruído de 18% para 2,3%. Foi o único workaround que não exigia anotação manual.
A ferramenta menos óbvia que quase ninguém conhece
O SongSEE (Disponível em https://github.com/petercresce-song/SeeTTS) é um projeto que faz exatamente o que muitos procuram quando pesquisam por musicas palavra cantada: ele extrai, tokeniza e alinha foneticamente cada sílaba cantada em relação ao waveform original. O diferencial é que ele usa o modelowav2vec 2.0 com fine-tuning específico para canto, o que reduz a taxa de erro de alinhamento para algo em torno de 40-60ms por palavra cantada — bem inferior aos 150-200ms que o Whisper puro entrega em áudio musical. O fluxo é simples: você passa o arquivo de áudio (MP3, WAV, até FLAC sem perda), o sistema detecta automaticamente os boundaries das palavras cantadas e gera um arquivo de alinhamento no formato PHN ou CSV, dependendo da saída que você escolher. A instalação leva cerca de 15 minutos em uma máquina com CUDA disponível, ou uns 40 minutos se for usar CPU, o que na prática significa que você pode rodar testes antes de decidir subir pra produção.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Pegadinhas que todo mundo acaba encontrando
O SongSEE funciona muito bem para voz principal, mas tem um limitação clara: ele não separa bem corais ou vocais de fundo que estejam em harmonia próxima. Se a música tiver duas vozes cantando a mesma letra em uníssono, o alinhamento pode ficar borrado. O workaround é passar o áudio por um stem-separator como o Demucs primeiro, isolar a voz lead, e só depois alimentar o SongSEE. Isso adiciona uns 5 minutos extras por faixa, mas resolve o problema. Outro ponto importante: o modelo foi treinado majoritariamente com dados em inglês e português brasileiro. Para sertanejo universitário com sotaque caipira muito marcado, ou funk carioca com gírias regionais, a precisão cai para algo em torno de 70-75%. Não é que falhe, mas você vai precisar validar manualmente os outliers, o que quebra um pouco a automatização.
Quando não usar essa abordagem
Se o seu objetivo é só ler a letra de uma música qualquer, esqueça o SongSEE. Baixe o Musixmatch ou o Genius mesmo — leva 30 segundos e resolve. Essas ferramentas são suficientes para 95% dos casos de uso casual. O SongSEE e approches similares existem para quem precisa de dado estruturado e labelado em nível de frame, tipo para pesquisa acadêmica, treinamento de modelos de synthesis de voz, ou análise fonética comparativa. Também não vale a pena se você tiver menos de 50 faixas no dataset. O overhead de instalação e configuração não compensa. Aí um processamento manual com uma ferramenta como o Audacity exportando texto de sincronização manualmente sai mais rápido e com qualidade similar.
Dica prática de produtividade
Se você vai processar muitas faixas de uma vez, crie um script em Python que orchestre o fluxo inteiro: download do áudio, separação de stems com Demucs, execução do SongSEE, e salvamento dos resultados em um diretório padronizado. Eu uso algo como 20 linhas de código que rodem em paralelo com multiprocessing, e consigo processar cerca de 8 a 12 faixas por hora em uma máquina com RTX 3060. Sem automação, o mesmo volume levaria dias no modo manual. O repositório do SongSEE tem exemplos prontos no diretório examples/ que cobrem os casos mais comuns. Recomendo começar por aí antes de tentar customizar o pipeline, porque a configuração inicial já vem com parâmetros razoáveis para português.