Legendas automáticas dessincronizadas: porque acontece e como corrigir
O sintoma
O clip abre bem. As primeiras legendas acompanham a voz. A meio, algo desliza: a palavra aparece no ecrã antes de ser dita, e no fim já está uma frase inteira à frente.
Isto é a queixa mais frequente sobre legendagem automática, e quase sempre é diagnosticada mal. Não é falta de precisão do reconhecimento de voz — o texto até costuma estar correto. É um problema de tempos.
A causa: estimar em vez de medir
A maior parte das ferramentas de transcrição devolve o texto agrupado em frases, com um tempo de início e um de fim para cada frase. Não devolve o tempo de cada palavra.
Para mostrar legendas palavra a palavra, é preciso inventar esses tempos. A forma habitual é dividir a duração da frase pelo número de palavras, ou proporcionalmente pelo número de caracteres.
O problema é que ninguém fala assim. Numa frase real há palavras longas e curtas, pausas antes das que interessam, hesitações a meio. A divisão proporcional está errada em quase todas as palavras, e os erros acumulam-se: a quinta palavra herda o erro das quatro anteriores.
É exatamente por isso que o desfasamento cresce ao longo do clip em vez de se manter constante. Se fosse um atraso fixo, bastava um ajuste global. Como é um erro cumulativo, não há ajuste que o resolva.
A correção: alinhamento forçado
A solução é medir em vez de estimar.
O alinhamento forçado parte de uma vantagem: o texto já é conhecido. Não é preciso adivinhar o que foi dito, só onde. O áudio é percorrido à procura da posição de cada palavra do texto conhecido, e o resultado são tempos medidos, não calculados.
Medimos a diferença num lote de clips reais:
| Desvio mediano | |
|---|---|
| Tempos estimados a partir da frase | 1,92 s |
| Alinhamento forçado palavra a palavra | 0,04 s |
Um desvio mediano de 1,92 segundos significa que, em metade das legendas, o espetador está a ler algo que ainda não ouviu. Quatro centésimos de segundo é indistinguível de perfeito.
O segundo erro: filtrar demais
Há um defeito relacionado que aparece com frequência: frases inteiras que não têm legenda nenhuma.
A causa costuma ser o filtro de deteção de voz. Estes filtros existem para poupar processamento, saltando os trechos sem fala. Quando estão demasiado agressivos, classificam como silêncio a fala baixa, hesitante ou sobreposta a ruído — e essa fala desaparece da transcrição.
Na nossa medição, ligar o filtro de voz na transcrição de origem custou cerca de dez por cento do texto: 13 703 palavras contra 15 242 sem filtro, na mesma gravação.
A conclusão prática é que os dois passos querem coisas opostas. A transcrição de origem quer recolher tudo, e por isso o filtro deve estar desligado. O alinhamento por clip quer precisão de tempos, e aí um filtro moderado ajuda. Usar a mesma configuração nos dois é escolher entre perder texto ou perder precisão.
Como verificar os teus clips
Não é preciso confiar em ninguém. Dá para medir:
1. Pega no clip já montado, com as legendas queimadas. 2. Transcreve-o de novo, com uma ferramenta que devolva tempos por palavra. 3. Compara o tempo em que cada palavra é dita com o tempo em que a legenda correspondente aparece. 4. Calcula a mediana das diferenças.
Abaixo de 100 ms está bem. Acima de 300 ms nota-se. Acima de 500 ms é o defeito que descrevemos no início.
Vale a pena medir também a fala sem legenda: quantos segundos de voz não têm texto por baixo. Uma pausa natural sem legenda é normal; uma frase dita sem legenda é o filtro a comer conteúdo.
Porque é que isto importa mais em vertical
Num vídeo horizontal visto com som, uma legenda ligeiramente à frente é um detalhe.
Em vertical, no feed, sem som nos primeiros segundos, a legenda é o conteúdo. É por ela que o espetador decide se fica. Uma legenda dessincronizada nos primeiros três segundos custa o clip inteiro.
No Lanoar AI Clips medimos o desvio de cada clip antes de entregar, e um clip que não passe no limiar não é publicado. Não porque o alinhamento seja um argumento de venda, mas porque é a diferença entre um clip que se vê e um clip de que se sai.
Se quiseres perceber onde isto entra no processo completo, escrevemos este guia.