Saltar para o conteúdo
kenjtecJournal
Pesquisar no Journal

Legendas sem nuvem: converter fala em texto localmente com o whisper.cpp

Uma transcrição local ainda não é uma faixa de legendas acabada. Uma gravação curta feita por ti e um exemplo em WebVTT mostram como a formulação, a tradução e a temporização se articulam.

A Lena coloca pequenos pedaços de papel, como legendas, por baixo de uma tira de papel com uma onda sonora; tem uns auscultadores pendurados ao pescoço. Ilustração criada com IA.

«Levamos quatro, não, seis pastas.» Um sistema de reconhecimento pode transcrever a frase corretamente. Para uma legenda fácil de ler, talvez queiras encurtar a repetição. Ao fazê-lo, o seis não pode voltar a ser quatro. O percurso técnico do som até ao ficheiro de texto é, por isso, apenas o início do trabalho editorial.

whisper.cpp documenta o reconhecimento de fala local, incluindo suporte para CPU. Os ficheiros de modelo e de execução adequados têm de ser preparados. As variantes só em inglês e multilingues, bem como a transcrição e a tradução, são decisões distintas; um programa iniciado localmente não executa automaticamente a tarefa que pretendes.

Definir a língua de origem e o objetivo

Decide primeiro se o que é dito deve ser mantido na sua própria língua ou passado para inglês. Uma gravação em alemão com uma transcrição em alemão é um trabalho diferente de uma tradução para inglês. Um texto fluente em inglês continuaria a ser o resultado errado para o primeiro propósito.

As instruções do servidor usam –translate para a tradução da língua de origem para inglês; –language descreve a língua falada. Para a tua chamada real, retira as opções da ajuda correspondente, em vez de misturares definições de exemplos diferentes.

Preparar uma gravação curta feita por ti

Grava tu próprio algumas frases não sensíveis: uma alteração de quantidade, um nome próprio inventado e uma restrição como «só depois de confirmar». Anota previamente a formulação conhecida. Uma pausa deliberadamente curta também ajuda a distinguir o reconhecimento de palavras da segmentação temporal.

Utiliza um ambiente local preparado e um formato de áudio adequado. Produz primeiro uma base de texto que se mantenha próxima das palavras faladas. Volta a ouvir as passagens com o número e o nome e assinala tudo o que não estiver claro. Uma grafia esperada da tua lista de nomes não pode substituir discretamente uma passagem que é efetivamente pouco nítida.

Mantém esta base separada da versão posterior, encurtada, das legendas. Assim, consegues rastrear que alteração vem do reconhecimento e qual vem do teu trabalho editorial. Este artigo fornece o método, não uma transcrição aqui realizada.

O tempo passa a fazer parte do formato de ficheiro

Uma faixa de legendas associa texto ao início e ao fim de um intervalo de tempo. O formato WebVTT da especificação do W3C descreve esses segmentos de texto alinhados no tempo. Um exemplo de formato simples, da nossa autoria, tem este aspeto; os tempos são valores didáticos e têm de ser ajustados para uma gravação real:

WEBVTT

00:00:00.000 --> 00:00:04.000
We need six folders for the course.

00:00:04.500 --> 00:00:07.000
Open sealed material only after checking back.

Guarda um texto efetivamente editado para se ajustar como ficheiro UTF-8 e verifica-o com a gravação correspondente num leitor ou numa ferramenta de legendagem adequados. Texto, temporização e legibilidade são três observações distintas. Uma linha correta pode aparecer demasiado cedo ou ficar visível durante demasiado pouco tempo.

Coloca as quebras de linha em unidades com sentido. Um «não» isolado pode ser mal interpretado numa leitura rápida. Uma condição de aprovação também deve permanecer reconhecível no seu contexto, em vez de desaparecer devido a um corte inadequado.

Dá ao áudio original, à transcrição e às legendas o mesmo nome base de ficheiro, mas extensões diferentes. Uma breve nota sobre a língua e o estado da edição evita que uma versão traduzida antiga acabe por engano ao lado da nova gravação original.

O que um fluxo de trabalho local demonstra

Com esta amostra, podes examinar se a tua configuração preparada produz o texto pretendido e de quanta edição as legendas precisam. Não te diz nada de geral sobre a qualidade do reconhecimento em todas as línguas, sotaques ou ruídos de fundo.

Uma passagem de tradução é, então, um teste separado. Exige uma comparação do sentido e não apenas da grafia. Se houver várias línguas na mesma gravação, deves incluir explicitamente as passagens em causa na verificação auditiva.

A vantagem do processamento local reside num percurso de trabalho próprio que consegues identificar. Legendas utilizáveis resultam quando ligas este percurso à gravação real: escolher a tarefa certa, verificar a formulação, editar de forma deliberada e rever o texto face às suas marcas temporais.

Fontes e estado

Fontes à data de 25 de outubro de 2026. README do whisper.cpp · opções do exemplo de servidor do whisper.cpp.

W3C: WebVTT como fonte complementar sobre o formato.

Hamburgo é o nosso ponto de partida.

O que é útil viaja contigo.

IA prática de Hamburgo, explicada para todos.

Artigos guardados