Skip to content

Reconhecimento de fala

A estação não inventa teletexto nem legendas ocultas: transporta o texto que a imagem trouxe consigo. Um canal que não leva texto nenhum não obtém legendas por essa via — e é precisamente esse canal que costuma precisar delas: uma desconexão regional, uma emissão corporativa, uma fonte externa sem dados de serviço.

O reconhecimento de fala cobre esse caso: a estação lê o áudio do canal gravado e acrescenta-lhe uma faixa de legendas.

O sinal em direto não é tocado de todo. O reconhecimento trabalha sobre o arquivo: lê o áudio gravado e escreve ali mesmo as legendas. Daí duas consequências que convém conhecer de antemão.

  • O canal precisa de gravação de arquivo. Sem ela o reconhecimento não tem de onde tirar o áudio nem onde escrever o resultado.
  • O atraso é inofensivo. Se o reconhecimento não acompanhar o direto, as legendas atrasam-se e depois recuperam; a saída do canal não é afetada.

Como activar

O reconhecimento vive no separador Processamento da ficha do canal, na secção Reconhecimento de fala. Activa-o o interruptor Reconhecer fala em legendas.

A secção de reconhecimento de fala no separador de processamento

São quatro campos e nenhum é obrigatório — os valores por omissão bastam para activar o reconhecimento com um único interruptor.

Campo O que define
Modelo O tamanho do reconhecedor. Um modelo maior é mais preciso, mas mais lento e exige mais memória.
Idioma Código ISO-639-1, por exemplo pt. Vazio significa detetar pelo áudio.
Fonte de áudio A faixa da emissão que se escuta. A primeira por omissão.
Janela de reconhecimento, s Até 120 segundos. Uma janela longa entende melhor o sentido, mas a fala aparece mais tarde.

Vale a pena indicar o idioma quando se conhece. A deteção decide pelos primeiros segundos de áudio e engana-se num canal que começa com um separador musical — e um idioma errado estraga a faixa inteira, não uma única fala.

A fonte de áudio é assunto corrente numa cabeça de rede: o canal leva várias faixas de idioma e o reconhecimento escuta exactamente uma. Se a faixa escolhida não estiver no ar, o estado di-lo: «A faixa de áudio escolhida não está no ar».

Sem gravação não arranca

Se activar o reconhecimento num canal sem gravação, o painel responde de imediato, sem esperar pela gravação da configuração:

O aviso de que o reconhecimento precisa de gravação de arquivo

Isto não impede guardar a definição: avisa que ela não vai funcionar. Active a gravação do canal e o reconhecimento arranca sozinho.

Estado do reconhecimento

Por baixo do formulário o painel mostra o que se passa na realidade. É o único sítio onde se vê o trabalho vivo do reconhecimento: a ficha do canal tira o estado do nó onde o canal é gravado.

Estado do reconhecimento: a funcionar, atraso, áudio reconhecido, falas

  • A funcionar / Parado — se o reconhecimento está de pé. «Parado» vem sempre acompanhado do motivo por palavras.
  • Atraso — quanto o reconhecido fica atrás do momento actual. No bordo em direto são segundos; num arquivo que o reconhecimento recupera desde o início são horas, e isso é um modo de trabalho normal, não uma falha.
  • Áudio reconhecido — quanto áudio já passou pelo reconhecedor.
  • Falas — quantas linhas de legendas foram escritas.
  • Erros — falhas de leitura do arquivo e de reconhecimento. Zero aqui é o estado habitual.
  • Última fala — quando o reconhecimento escreveu alguma coisa pela última vez.

O painel nomeia diretamente os motivos por que o reconhecimento não arranca:

O que diz O que fazer
O stream não tem gravação de arquivo Activar a gravação.
Falta o ficheiro do modelo ou não carregou Colocar o ficheiro do modelo no servidor (abaixo).
A faixa de áudio escolhida não está no ar Escolher outra fonte de áudio ou deixar a omissão.
O reconhecedor não conhece esse idioma Verificar o código do idioma ou limpar o campo.
Esta compilação do servidor não tem reconhecimento de fala Contactar o suporte: o servidor foi compilado sem o motor.

Um reconhecimento que funciona e tem um erro recente é um aviso, não uma avaria: um trecho não lido não pára o trabalho, o reconhecimento continua no seguinte.

O ficheiro do modelo

O modelo não é entregue com o servidor: um utilizável pesa mais de um gigabyte e qual é preciso decide o dono da estação. O servidor procura-o no directório de estado do produto — /var/lib/mcaster/whisper-models — e espera ali um ficheiro ggml-<modelo>.bin, ou seja ggml-medium.bin para o modelo medium.

Enquanto o ficheiro não existir, o estado do reconhecimento diz honestamente «Falta o ficheiro do modelo ou não carregou», e o canal continua a funcionar e a gravar como se nada fosse.

Um único ficheiro serve todos os canais da estação: o modelo é lido para memória uma vez por processo, por muitos canais que o peçam.

O que vai para a saída

O reconhecido torna-se uma faixa de legendas normal do canal: aparece na informação de media e viaja para a cópia OTT como WebVTT — exactamente onde uma faixa de texto é precisa, porque nenhum leitor OTT descodifica teletexto.

O fluxo de transporte não levará o texto reconhecido: uma faixa de legendas não tem em que viajar dentro do MPEG-TS — a mesma limitação da extração de teletexto.

Faz sentido ver a faixa sobre o arquivo. No bordo em direto as legendas ainda não estão lá: aparecem com o mesmo atraso que o estado mostra.

O que se segue