Ir para o conteúdo principal
SubtitleMatrix

Ressincronizar legendas com o áudio

Entrada de mídiaRessincronizar com o áudio

A primeira execução baixa o motor de vídeo — cerca de 31 MB, servidos por este site e em cache no navegador depois disso. Ele é usado só para ler a faixa de áudio; as legendas são comparadas com o som em si, sem modelo de fala e sem nada enviado.

Opções

O quanto as legendas podem estar longe de onde deveriam estar, em qualquer direção. É um ajuste de custo e risco, não de precisão: uma janela mais ampla encontra um desvio maior, mas também dá à busca mais chances de se firmar em uma coincidência que por acaso pontua bem. Nada além de cerca de um minuto vem de um corte ou de um logotipo — tanta diferença normalmente significa outra montagem do filme, ou uma incompatibilidade de taxa de quadros, que esta página resolve separadamente. Escolha a menor janela que cobre seu palpite.

Esta página conserta legendas que estão na ordem certa mas nos tempos errados. Você entrega duas coisas — o arquivo de legendas e o vídeo ou áudio a que ele pertence — e ela descobre o quanto o texto derivou e reescreve o arquivo com cada bloco deslocado. Uma deriva de alguns segundos vem de cortes e logotipos; uma deriva que cresce ao longo do filme vem de uma incompatibilidade de taxa de quadros, quando um master de 23,976 fps foi pareado com legendas cronometradas para 25 fps e o erro já é de um minuto e meio ao fim da primeira hora.

A medição é feita a partir do próprio áudio. A página extrai uma faixa mono, dobra-a em quadros de vinte milissegundos de intensidade sonora e marca quais quadros contêm fala. Depois faz uma única pergunta repetidas vezes: para este deslocamento e esta mudança de velocidade, quanto do texto das legendas cai sobre fala em vez de sobre silêncio? A resposta é pontuada por bloco e tem a média calculada, e o par vencedor é o que se aplica. Não há reconhecimento de fala envolvido, e é por isso que roda em alguns segundos e funciona quando as legendas estão em um idioma para o qual você não tem modelo.

Como a pontuação é uma medição e não uma garantia, a página foi feita para não fazer nada quando a medição é fraca. Cinco blocos ou menos, uma faixa de áudio sem fala detectável, uma melhor pontuação que ainda cai majoritariamente sobre silêncio ou dois alinhamentos muito diferentes pontuando quase igual — cada um desses casos termina com um relatório e nenhum arquivo de legendas reescrito. Uma falha discreta é muito melhor aqui do que uma confiante: legendas empurradas cinco segundos para o lado ficam feias, mas legendas empurradas cinco segundos por uma ferramenta que declarou sucesso são difíceis de notar e difíceis de explicar.

Quando o alinhamento é bom você recebe dois arquivos, porque os dois respondem a perguntas diferentes. A legenda corrigida mantém o formato em que veio, chamada film.synced.srt ou qualquer que fosse a extensão, pronta para tocar. O relatório é um pequeno arquivo de texto com o deslocamento em milissegundos, a razão efetivamente aplicada, a pontuação, a confiança e uma linha dizendo se o arquivo foi tocado ou não. Os dois saem da mesma execução, então um lote de episódios produz um par correspondente para cada um.

O trabalho é local. O áudio é decodificado pelo ffmpeg compilado para WebAssembly, baixado uma vez deste site e guardado em cache depois; a legenda é analisada na aba. Nada sobre o seu filme ou as suas legendas é enviado a lugar nenhum — não há etapa de upload a pular, o que importa para material que não pode sair da máquina.

Perguntas frequentes

Como o deslocamento medido pelo ressincronizar difere do deslocamento fixo que eu digito na página de deslocar?

A página de deslocar aplica um número que você já conhece, então continua correta quer o áudio concorde ou não. Esta página parte do lado oposto: assume que você não sabe o número, lê a atividade de fala do áudio e resolve o deslocamento e a mudança de velocidade juntos. É também por isso que ela consegue consertar um problema de taxa de quadros, que nenhum deslocamento único consegue expressar — a 25 contra 23,976 o erro é zero no começo e cresce cerca de 3,6 segundos por hora, então um deslocamento que conserta o início piora o fim.

Por que o ressincronizar às vezes se recusa a escrever um novo arquivo de legendas?

Porque uma correção errada é mais difícil de detectar do que uma ausente. A busca reporta quatro coisas: com quantos blocos teve de trabalhar, se o áudio continha alguma fala, que fração do tempo das legendas caiu sobre fala e quanto a vencedora foi melhor que a melhor alternativa genuinamente diferente. Se qualquer uma delas for fraca, a execução produz só o relatório, cuja linha de estado diz not-found junto com o motivo. Você não perde nada — o arquivo original fica intacto — e recebe um número que pode conferir antes de fazer qualquer coisa à mão.

O que a razão no relatório do ressincronizar significa para uma incompatibilidade de 23,976 para 25 fps?

Os tempos dos blocos são multiplicados pela razão e depois deslocados pelo offset, então uma razão de 1,0427 significa que as legendas foram cronometradas para uma base de quadros mais rápida e cada bloco precisa ser esticado para mais tarde. A página tenta os dois sentidos de cada par comum, porque o sentido depende de qual arquivo você tem em mãos: 1,0427 e 0,9590 são a mesma incompatibilidade vista de uma ponta ou da outra. Se a razão reportada for 1,000000 e o deslocamento for menor que um quadro, o arquivo já está alinhado e é deixado como está.

O arquivo corrigido pelo ressincronizar mantém o meu estilo ou só os tempos?

Os tempos mudam e mais nada. A legenda é analisada na mesma representação interna que todas as outras páginas deste site usam, o início e o fim de cada bloco são reescritos e ela é serializada de volta no formato em que chegou. Estilo, posicionamento e tags embutidas do ASS sobrevivem; a estrutura própria do arquivo também, e é por isso que um .ass entra e um .ass sai em vez de um .srt achatado. A única exceção visível é um bloco espremido para menos de um milissegundo por uma razão grande, que é mantido em um milissegundo e contado na lista de perdas.

O ressincronizar funciona quando as legendas estão em um idioma diferente do áudio?

Sim, e é justamente o sentido de medir intensidade sonora em vez de reconhecer palavras. A atividade de fala é uma forma — uma frase é uma rajada de energia seguida de uma lacuna — e essa forma é a mesma quer a voz esteja falando alemão ou espanhol. Uma dublagem alemã sob legendas espanholas alinha tão bem quanto um par casado. O que ela não consegue é distinguir uma linha dublada de uma original, então se a dublagem insere diálogo extra o alinhamento ainda encontra o encaixe geral, mas blocos individuais nas passagens inseridas podem cair sobre a linha errada.

Ferramentas relacionadas