11 pontos por GN⁺ 2026-03-19 | 1 comentários | Compartilhar no WhatsApp
  • Um aplicativo open source que converte arquivos de música pessoais em formato de karaokê, oferecendo separação de voz, sincronização de letras e pontuação em tempo real
  • Usa o modelo UVR Karaoke ou o Demucs para separar vocais e acompanhamento, e o WhisperX para transcrever automaticamente letras no nível de palavra
  • Com pontuação de afinação baseada na entrada do microfone e recursos de avaliação por estrelas e histórico por música, mede a habilidade de canto como se fosse um jogo
  • Suporta várias interações, como múltiplos perfis de usuário, reprodução de arquivos de vídeo em segundo plano, fundos dinâmicos baseados em shaders de GPU e controle por gamepad
  • Funciona em Linux, macOS e Windows e tem uma estrutura autônoma que roda como um único executável, sem necessidade de instalação

Principais recursos

  • O recurso de separação vocal (Stem separation) usa o UVR Karaoke ou o Demucs para separar voz e acompanhamento
    • É possível ajustar o volume do vocal guia
  • O recurso de letras no nível de palavra (Word-level lyrics) usa o WhisperX para alinhar cada palavra ao áudio
    • Se já houver letras no LRCLIB, elas serão usadas com prioridade
  • O recurso de pontuação de afinação (Pitch scoring) calcula a pontuação em tempo real enquanto você canta no microfone
    • Acompanhe seu progresso com avaliação por estrelas e placar por música

Usuário e interface

  • O recurso de perfis de jogador (Player profiles) permite que vários usuários mantenham seus próprios registros de pontuação
    • Sem perda de dados ao trocar de cantor
  • O recurso de suporte a arquivos de vídeo (Video file support) permite carregar arquivos .mp4 ou .mkv e reproduzir o vídeo original como fundo
    • Os vocais são separados automaticamente do áudio
  • O recurso de fundos dinâmicos (Dynamic backgrounds) usa efeitos de shader de GPU (plasma, aurora, nebulosa etc.), loops de vídeo do Pixabay ou o vídeo original como plano de fundo
  • O suporte a gamepad (Gamepad) permite usar o controle para navegar nos menus, escolher músicas e controlar a reprodução

Como funciona

  • Na etapa Separate, o UVR Karaoke ou o Demucs separa a faixa em vocais e acompanhamento
    • O áudio é extraído automaticamente de arquivos de vídeo
  • Na etapa Transcribe, ele busca letras sincronizadas no LRCLIB e, se não houver, faz a transcrição palavra por palavra com o WhisperX
  • Na etapa Play, reproduz o acompanhamento exibindo ao mesmo tempo letras destacadas, pontuação de afinação, fundo dinâmico e entrada do gamepad

Plataforma e distribuição

  • Pode ser executado em Linux(x86_64, aarch64), macOS(ARM, Intel) e Windows(x86_64)
  • Suporta aceleração por GPU via CUDA ou Metal; em ambientes sem suporte, roda na CPU
  • ffmpeg, Python, PyTorch e modelos de ML são inicializados automaticamente na primeira execução, formando uma estrutura de binário único que não exige processo de instalação separado

Aviso de atualizações

  • É possível receber por e-mail notícias sobre novos lançamentos e atualizações, com opção de cancelar a inscrição a qualquer momento

1 comentários

 
GN⁺ 2026-03-19
Comentários do Hacker News
  • Acabei de baixar o código-fonte, compilar e executar, e me surpreendi porque, logo na primeira execução, ele começou a baixar binários da internet
    Mesmo com FFMpeg e Python já instalados, ele tentou instalar tudo de novo
    A execução falhou porque o app procurou o Python instalado dentro da pasta lib
    É surpreendente que um erro tão básico tenha ido parar no código de release
    Além disso, quando executei o script de build do tarball, ele tentou instalar um container Docker, o que também me pegou de surpresa. Não faz sentido usar Docker para compilar um app desktop

    • Muitos apps incluem seu próprio runtime Python. Blender, Houdini, Bitwig e Krita também fazem isso
      O Krita usa o Python do sistema durante o build, mas inclui seu próprio Python no artefato final
      Ainda assim, neste app talvez tivesse sido melhor empacotar tudo em vez de baixar depois
      Em termos de segurança, npm e pip também têm riscos parecidos, então isso não é exatamente uma exceção
    • A resposta para a pergunta “por que fizeram desse jeito?” provavelmente é: “na minha máquina funcionou
    • O ecossistema de instalação do Python é extremamente caótico. Cada sistema operacional tem caminhos e métodos diferentes, e ainda há Conda e vários gerenciadores de pacotes misturados
      Então dá para entender por que o desenvolvedor quis criar um ambiente único no qual o app pudesse confiar
    • Hoje em dia está aumentando o número de apps que tentam fazer instalações sem permissão no sistema
      Recentemente executei um app em Python e fiquei chocado quando ele tentou instalar Node/NPM
      Meu computador é meu espaço de trabalho, então acho que um app instalar coisas por conta própria é um risco de ataque à cadeia de suprimentos e uma falta de respeito com o usuário
    • No fim, isso talvez seja só o começo de mais uma discussão interminável do tipo linkagem estática vs dinâmica ou vim vs emacs
  • O Nightingale que eu criei é um app que, ao apontar uma pasta de músicas, converte automaticamente as faixas em trilhas de karaokê
    Ele oferece separação de vocais, sincronização de letras, pontuação de afinação, suporte a gamepad, aceleração por GPU e mais
    Todo o processamento acontece localmente, sem conta, assinatura nem telemetria
    Na primeira execução, ele configura automaticamente os modelos de ML e o ambiente Python necessários
    Foi escrito em Rust com a engine Bevy e é um projeto totalmente open source

    • Estudei processamento de sinais no passado, e antigamente separar trilhas era difícil
      Achei interessante ver isso sendo resolvido hoje com redes neurais como o Demucs
      Fico curioso se uma abordagem puramente matemática ainda conseguiria competir
    • Testei com B.E.D - Walk Away, mas depois de 30 segundos a sincronização da letra saiu do lugar
      Seria bom ter um recurso de pular para frente e para trás durante a reprodução, além de tratamento de pontuação e edição do resultado
      Ainda assim, obrigado por lançar isso como FOSS
    • Projeto realmente muito legal. Quase não existem apps de karaokê no mundo FOSS, então isso é um grande avanço
      Fiquei curioso sobre os requisitos mínimos de CUDA e se há planos para suporte a aceleração em iGPU da AMD/Intel
      Estou ansioso para ver minha família usando isso
    • Queria entender a diferença em relação ao UltraSinger. Alguém já comparou a qualidade?
    • Fiquei curioso se o WhisperX lida bem com letras em chinês (hanzi)
    • Testei com músicas em japonês e o alinhamento da letra simplesmente não funcionou
      No código, as palavras são separadas com line_text.split(), mas japonês não usa espaços, então isso não funciona
      Acho que seria preciso usar um analisador morfológico como o fugashi
  • Isso me fez lembrar do antigo Nightingale media player baseado em Firefox
    Ele foi desenvolvido como alternativa ao iTunes/Winamp, mas está inativo há mais de 10 anos
    Ainda dá para ver vestígios antigos em getnightingale.com

    • Pelo que eu lembro, ele era o projeto sucessor do Songbird
  • Já fiz no passado um projeto parecido de rastreamento de afinação
    Fiquei curioso se a linha de afinação no app atual mostra a próxima nota que deve ser cantada

    • No momento ele só tem uma função simples de pontuação de afinação; a previsão da próxima nota ainda não foi implementada
      Vou considerar isso como uma boa sugestão de recurso
  • Execução local, open source, projeto feito por paixão — realmente emocionante
    Notícias assim restauram minha fé na humanidade

  • Pelo histórico de commits, o ritmo de desenvolvimento foi muito rápido
    Parece que houve uso de desenvolvimento assistido por IA
    Ao contrário da ideia de que “a IA vai substituir desenvolvedores”, acho que a IA aumentou a viabilidade de pequenos projetos

    • Já existia software parecido na época do Windows 95. Rodava até em um Pentium 2
  • Eu não tinha entendido exatamente o que o app fazia e achei que ele removesse a letra da música
    Tentei várias faixas, mas os vocais ainda eram audíveis. Não entendi como ajustar a remoção de vocais

  • Projeto realmente muito legal.
    Fiquei curioso se é possível processar a música em um dispositivo e reproduzi-la em outro, ou se ele pode funcionar em modo servidor/cliente

    • Há uma resposta sobre isso na issue #7
  • Como músico, sempre pensei que seria bom ter um app que mostrasse a letra acompanhando a música durante apresentações da banda
    Hoje eu prendo o celular no pedestal do microfone, mas ele logo sai do lugar

    • Sim, esse tipo de sincronização em tempo real costuma falhar até no Spotify