Voltar ao Blog

Como criar um ficheiro LRC — 3 métodos e o formato

Lacuna.fm Research Team
Como criar um ficheiro LRC — 3 métodos e o formato

Um ficheiro LRC é um ficheiro de texto simples em que cada linha da letra começa com uma marcação de tempo. Guarda-o com o mesmo nome do ficheiro de áudio, na mesma pasta, e um leitor compatível destaca cada linha no momento em que a música lá chega.

Há três maneiras de criar um: escrever as marcações de tempo num editor de texto, marcar o tempo ao ritmo da música numa ferramenta no navegador, ou deixar que um programa alinhe a letra com o áudio. A escolha depende do que tens à partida. Se já tens a letra e só queres sincronização linha a linha, uma ferramenta de marcação manual resolve o assunto numa única passagem pela música. Para sincronização palavra a palavra, ou quando não há transcrição, o alinhamento automático é o caminho prático: no nosso teste, o erro mediano no início das palavras foi de 36 a 69 ms. Seja qual for o método, a letra só aparece se o leitor conseguir encontrar o ficheiro, que é o tema das duas últimas secções.

Formato do ficheiro LRC: o que contém um ficheiro LRC

Um ficheiro mínimo tem este aspeto:

[ti:Paper Boats]
[ar:Example Artist]

[00:12.00]Paper boats on a morning tide
[00:15.30]Carry what I could not say
[00:19.84]
[00:41.20][01:32.60]Let it go, let it go

O ficheiro tem quatro tipos de linha:

  • Etiquetas de tempo. A forma padrão é [mm:ss.xx]: minutos, segundos e centésimos de segundo. A etiqueta indica quando a linha começa. O LRC não tem tempo de fim; uma linha fica no ecrã até começar a seguinte.
  • Etiquetas de identificação. Metadados opcionais no topo, escritos como [type:value]. As mais comuns são ti (título), ar (artista), al (álbum), by (quem criou o ficheiro LRC) e offset. Em geral, os leitores leem-nas como metadados ou ignoram-nas, pelo que não aparecem como linhas da letra.
  • Linhas repetidas. Uma linha cantada mais de uma vez, como um refrão, pode ter várias etiquetas de tempo, como na última linha do exemplo acima.
  • Linhas vazias. Uma etiqueta de tempo sem texto limpa o ecrã, o que é útil durante uma passagem instrumental.

Os analisadores são mais tolerantes do que a definição dá a entender. O leitor de LRC do FFmpeg aceita qualquer número de casas decimais, pelo que os milissegundos com três dígitos costumam funcionar. As ferramentas que escrevem LRC continuam a usar dois dígitos por omissão, que é a escolha segura.

O LRC não tem especificação formal nem codificação obrigatória. O UTF-8 é a escolha prática para letras que não estejam em inglês, e o guia do Walkman da Sony exige-o explicitamente.

Onde descarregar ficheiros LRC que já existem

Para uma música já editada, muitas vezes podes descarregar um ficheiro LRC pronto em vez de o criares. A LRCLIB é uma biblioteca gratuita de letras sincronizadas, alimentada pela comunidade, e o seu cliente para computador, o LRCGET, analisa uma pasta de música e guarda um .lrc correspondente ao lado de cada faixa.

A correspondência depende da gravação exata. A documentação da API da LRCLIB indica que, quando um cliente procura uma faixa por título, artista e duração, a letra só é devolvida se a duração estiver a ±2 segundos do registo guardado. A Apple faz o mesmo aviso às editoras nas suas diretrizes de entrega de letras: «Versões diferentes das mesmas canções terão uma sincronização de tempo diferente.»

Tens de criar o ficheiro por tua conta quando se trata de uma música que escreveste ou geraste, de uma versão, de uma gravação ao vivo, de um remix ou de uma edição cuja introdução difere da versão do álbum.

Três maneiras de criar um ficheiro LRC

MétodoO que é precisoEsforçoSincronização ao nível da palavra
Editor de textoA letra e um leitor que mostre centésimos de segundoPausar e escrever em cada linhaPossível, mas lenta
Ferramenta de marcação manual no navegadorA letra em textoUma passagem pela música em tempo real, mais as correçõesDepende da ferramenta
Alinhamento automáticoO ficheiro de áudio; a letra é opcionalCarregar e depois reverSim

Método 1: escrever as marcações de tempo num editor de texto

Cola a letra em qualquer editor de texto simples, com uma linha da letra por linha do ficheiro. Reproduz a música num leitor que mostre frações de segundo, pausa no início de cada linha e escreve o tempo antes dela. Guarda o ficheiro com a extensão .lrc e codificação UTF-8.

Não exige ferramentas adicionais e é o mais lento dos três métodos, porque a música para em cada linha.

Método 2: marcar o tempo numa ferramenta no navegador

As ferramentas de marcação manual reproduzem a música e registam uma marcação de tempo cada vez que carregas numa tecla. O Akari's LRC Maker é de código aberto e corre no navegador: larga o ficheiro de áudio na página, seleciona uma linha com as teclas de seta e carrega em Espaço para a marcar. O lrcgenerator.com funciona da mesma maneira com um botão «Next Line / Next Word» e tem um modo palavra a palavra.

Continuas a precisar da letra em texto antes de começares, e a precisão dos tempos depende dos teus reflexos. A sincronização linha a linha exige uma passagem pela música. A sincronização palavra a palavra por marcação manual significa carregar numa tecla por cada palavra, à velocidade normal da música.

Método 3: alinhar automaticamente a letra com o áudio

As ferramentas automáticas ouvem a gravação e calculam as marcações de tempo. O gerador de LRC do Lacuna funciona em dois modos:

  1. Colar a tua letra (converter texto para LRC). Se já tens a letra em texto simples, é assim que a convertes para LRC: a ferramenta mantém o teu texto e as tuas quebras de linha exatos e calcula apenas os tempos. Usa este modo sempre que tiveres a letra.
  2. Deixar a caixa da letra vazia. A ferramenta transcreve primeiro a voz e depois alinha a transcrição.

Em ambos os modos, separa a voz do acompanhamento antes de alinhar e atribui a cada palavra o seu próprio tempo de início. Os ficheiros carregados podem ser MP3, WAV, FLAC, M4A ou OGG, até 10 MB e 10 minutos. São suportados dez idiomas: inglês, chinês, japonês, coreano, espanhol, português, francês, alemão, italiano e russo.

Editor do gerador de LRC do Lacuna com uma forma de onda por cima das linhas da letra com tempos, e controlos de tempo na primeira linha
O resultado abre num editor que reproduz a música e destaca a linha atual, para que os tempos possam ser confirmados de ouvido antes da exportação.

No editor, podes deslocar uma linha 0,1 segundos para trás ou para a frente, encaixá-la na posição de reprodução, ajustar uma única palavra em 50 ms, dividir ou juntar linhas e corrigir uma palavra mal percebida. As opções de exportação são LRC, LRC palavra a palavra, SRT, VTT e texto simples.

A ferramenta exige início de sessão e custa atualmente 50 créditos por música. A visualização, a reprodução e a edição estão disponíveis em todos os planos, e descarregar ou copiar o ficheiro final faz parte dos planos pagos. A página indica as condições atuais.

Qual é a precisão do alinhamento automático

Quando escolhemos o sistema de alinhamento, testámo-lo em 10 músicas em 8 idiomas e comparámos as suas marcações de tempo com os tempos de referência que acompanhavam cada música. Foi possível avaliar os tempos em nove delas; a referência de uma faixa de rap rápido em inglês cobria apenas parte da música.

36–69 ms
erro mediano no início das palavras
4 músicas com tempos de referência ao nível da palavra
3–17%
das palavras com desvio superior a 200 ms
as mesmas 4 músicas
2.35%
das palavras da letra em falta ou mal percebidas
10 músicas, sem letra fornecida

As quatro músicas com tempos de referência ao nível da palavra estavam em inglês, português, francês e alemão. O valor da transcrição conta as palavras da letra escrita que ficaram em falta ou foram mal percebidas, por palavra, ou por carácter no caso do chinês, do japonês e do coreano. Quatro das dez músicas foram transcritas sem nenhum erro desse tipo. As palavras a mais não são contadas: as gravações repetiam refrões e acrescentavam improvisos vocais que a letra escrita não continha.

Estes números têm limites. Todas as músicas de teste foram geradas por IA, os próprios tempos de referência foram produzidos por máquina, e cada idioma teve uma ou duas músicas. Ainda não fizemos o mesmo teste com gravações editadas comercialmente e cantadas por pessoas.

O maior erro veio de uma balada japonesa lenta, com notas longas e prolongadas: um erro mediano no início das linhas de 210 ms, medido por linha e não por palavra. É nas palavras estendidas por várias notas que o alinhamento se desvia, e são essas as linhas a confirmar no editor. Um erro de 200 ms é difícil de notar na apresentação linha a linha e fácil de notar no destaque palavra a palavra.

LRC padrão vs. LRC melhorado (palavra a palavra)

O LRC melhorado é o LRC padrão com uma etiqueta de tempo adicional, entre parênteses angulares, antes de cada palavra, o que permite ao leitor destacar a letra palavra a palavra:

[00:12.00]<00:12.00>Paper <00:12.41>boats <00:12.90>on <00:13.05>a <00:13.20>morning <00:13.78>tide <00:14.60>

Esta variante também não tem especificação formal, e os exemplos publicados divergem em pequenos pormenores, como os espaços. A linha acima é o que o exportador do Lacuna escreve.

O suporte nos leitores é mais limitado do que para o LRC padrão. A propósito das letras sincronizadas incorporadas nas etiquetas de ficheiros MP3, o manual do kid3 refere que «a maioria dos leitores só suporta a granularidade de uma linha ou frase», e o mesmo se aplica aos ficheiros LRC. Entre os leitores que verificámos, o Symfonium tem um modo de karaoke e o Rockbox interpreta as etiquetas de palavra, enquanto a apresentação palavra a palavra no OpenLyrics do foobar2000 continua a ser um pedido de funcionalidade em aberto. Se não tens a certeza do que o teu leitor faz com as etiquetas de palavra, exporta também o ficheiro padrão.

O destino determina o formato:

O que queresExportar
Letra linha a linha num leitor de música ou num servidor multimédiaLRC padrão
Destaque palavra a palavra num leitor que o suporteLRC melhorado (palavra a palavra)
Legendas num editor de vídeo ou no YouTubeSRT
Legendas para um leitor de vídeo ou áudio na webVTT

Como abrir um ficheiro LRC num leitor de música

Um ficheiro LRC é texto simples, por isso qualquer editor de texto o abre para leitura ou edição. Para veres a letra a correr com a música, reproduz a música num leitor que suporte LRC. Em quase todos esses leitores, o ficheiro .lrc tem de estar na mesma pasta do áudio e ter o mesmo nome, exceto a extensão: Paper Boats.mp3 precisa de Paper Boats.lrc.

LeitorLê um ficheiro .lrc com o mesmo nomeNotas
PlexSimNão suporta letras incorporadas nas etiquetas
JellyfinSimTambém aceita .elrc e .txt
NavidromeSimTambém lê letras incorporadas
MusicBee, AIMPSimO MusicBee guarda as letras dentro do ficheiro de áudio por omissão e usa um .lrc com o mesmo nome quando as letras estão definidas para um ficheiro externo; o AIMP precisa de um tema que mostre letras
foobar2000Com um componente e uma alteração nas definiçõesO OpenLyrics procura por omissão Artist - Title.lrc na pasta de configuração do foobar2000; define a localização dos ficheiros locais para «Same directory as the track» e o formato do nome de ficheiro para o nome do ficheiro da faixa
KodiCom um add-onCU LRC Lyrics
Poweramp, Musicolet, SymfoniumSimOs três também leem letras incorporadas
Retro MusicRegra diferenteEspera song - artist.lrc na sua própria pasta de letras
Sony Walkman, FiiO, RockboxSimA Sony exige UTF-8 e um ficheiro de 512 KB no máximo; o Rockbox espera que um ficheiro UTF-8 tenha a extensão .lrc8, ou que a sua definição Encoding corresponda
VLC 3.xNão.lrc não está entre os tipos de legendas que carrega
Apple MusicNãoA única via documentada é escrever ou colar texto em Custom Lyrics
SpotifyNãoAs letras sincronizadas são fornecidas através da Musixmatch

Os serviços de streaming não aceitam LRC dos ouvintes. A Apple recebe dos distribuidores as letras sincronizadas em ficheiros TTML, um formato de texto temporizado baseado em XML, e as do Spotify são fornecidas pela Musixmatch, onde os artistas verificados podem sincronizar as suas próprias músicas.

Como adicionar um ficheiro LRC a um MP3 (letras incorporadas)

Há duas maneiras de adicionar um ficheiro LRC a um MP3. A simples é o ficheiro separado descrito acima: mesma pasta, mesmo nome. A outra é incorporar a letra nas etiquetas do MP3, o que evita o risco de um ficheiro perder a letra ao mudar de nome, mas o suporte é fragmentado.

Os ficheiros MP3 guardam os metadados em etiquetas ID3, e o ID3 define dois campos de letra, chamados frames: o USLT contém texto simples, não sincronizado, e o SYLT contém texto com marcações de tempo. Os ficheiros FLAC levam, por convenção, o texto LRC numa etiqueta LYRICS. O Mp3tag escreve o seu campo UNSYNCEDLYRICS em USLT e não suporta SYLT; o seu autor afirmou que isto é intencional.

Colar texto LRC numa etiqueta de letra só funciona, portanto, nos leitores que interpretam o texto da etiqueta como LRC. O Poweramp fá-lo para qualquer etiqueta de letra, o Symfonium lê uma etiqueta LYRICS, e o foobar2000 fá-lo através de um componente de letras como o OpenLyrics. O Plex não lê de todo letras incorporadas. Para frames SYLT propriamente ditos, o kid3 consegue importar diretamente um ficheiro LRC. Se o objetivo é a compatibilidade entre dispositivos, um ficheiro .lrc separado ao lado do áudio é a via mais segura.

Resolver letras que não aparecem, estão dessincronizadas ou com caracteres estranhos

A letra não aparece. Verifica o nome do ficheiro carácter a carácter, incluindo a extensão: um editor de texto pode guardar o ficheiro como song.lrc.txt sem o mostrar. Depois, vê na tabela acima se o leitor precisa de um plugin ou de uma pasta diferente.

Todas as linhas estão adiantadas ou atrasadas no mesmo valor. O ficheiro foi provavelmente sincronizado com uma versão diferente da gravação. A etiqueta offset existe para isto. Na definição da Wikipédia e nos analisadores do FFmpeg e do OpenLyrics, um valor positivo mostra a letra mais cedo. Nem todos os leitores estão documentados como seguindo essa regra, pelo que deslocar as próprias marcações de tempo num editor é a correção mais fiável.

Os caracteres acentuados ou não latinos aparecem corrompidos. Volta a guardar o ficheiro em UTF-8. O Rockbox é a exceção indicada na tabela.

As etiquetas entre parênteses angulares aparecem como texto. O leitor não entende o LRC melhorado. Usa a exportação padrão.

Uma secção desvia-se enquanto o resto está certo. É típico depois do alinhamento automático de notas longas e prolongadas ou de passagens densas. Corrige essas linhas de ouvido em vez de voltares a processar a música inteira.

Se tens a letra em texto, cola-a no gerador de LRC do Lacuna juntamente com o áudio e confirma o resultado com a música antes de exportares. Se o destino for um vídeo e não um leitor, os mesmos tempos passam para o criador de vídeos de letras.