Skip to content

Reconhecimento de fala

Uma reunião, uma aula e um treinamento chegam à Agora como voz e nada mais: a faixa de legendas que o sinal de um difusor traz consigo aqui não existe e não tem de onde vir. E são justamente essas gravações que depois se procuram no arquivo e se assistem gravadas. O reconhecimento de fala fecha essa lacuna: o servidor lê ele mesmo o áudio da transmissão gravada e acrescenta a ela uma faixa de legendas.

A transmissão ao vivo não é tocada em nada. O reconhecimento trabalha sobre o arquivo: lê o áudio gravado e escreve ali mesmo as legendas. Daí decorrem duas consequências que vale saber de antemão.

  • A transmissão precisa de arquivo. Sem gravação o reconhecimento não tem de onde pegar o áudio nem onde escrever o resultado.
  • Ficar para trás é inofensivo. Se o reconhecimento não acompanha o ao vivo, as legendas atrasam e depois alcançam; a transmissão em si não é afetada de modo algum.

Como ativar

O reconhecimento vive na aba Processamento da ficha da transmissão — a mesma das legendas, do teletexto e das miniaturas —, na seção Reconhecimento de fala. Quem o liga é a chave Reconhecer fala em legendas.

A seção de reconhecimento de fala na aba de processamento

São quatro campos e nenhum é obrigatório: os valores padrão bastam para ligar o reconhecimento com uma única chave.

Campo O que define
Modelo O tamanho do reconhecedor. Um modelo maior é mais preciso, porém mais lento e exige mais memória.
Idioma Um código ISO-639-1, por exemplo pt. Vazio significa detectar pelo áudio.
Fonte de áudio A faixa do sinal a ser ouvida. Por padrão, a primeira.
Janela de reconhecimento, s Até 120 segundos. Uma janela longa entende melhor o sentido, mas a frase aparece mais tarde.

Indique o idioma se ele for conhecido. A detecção decide pelos primeiros segundos de áudio e erra em uma gravação que começa com música ou com silêncio — e um idioma errado estraga a faixa inteira, não uma frase só.

A fonte de áudio importa quando o sinal traz vários idiomas: o reconhecimento ouve exatamente uma faixa. Se a faixa escolhida não estiver no ar, o estado diz isso: «A faixa de áudio escolhida não está no ar».

Sem gravação não inicia

Se você ligar o reconhecimento em uma transmissão sem gravação, o painel responde na hora, sem esperar o salvamento:

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

Isso não proíbe salvar a configuração; avisa que ela não vai funcionar. Dê à transmissão um arquivo — ele vive na aba vizinha DVR da mesma ficha — e o reconhecimento sobe sozinho.

Estado do reconhecimento

Abaixo do formulário o painel mostra o que está realmente acontecendo. É o único lugar onde se vê o trabalho vivo do reconhecimento: a ficha da transmissão pega o estado do nó em que a transmissão é gravada.

Estado do reconhecimento: em execução, atraso, áudio reconhecido, frases

  • Em execução / Parado — se o reconhecimento está de pé. «Parado» vem sempre com um motivo em palavras.
  • Atraso — o quanto o já reconhecido está atrás do momento atual. No ao vivo são segundos; em um arquivo que o reconhecimento alcança desde o início, horas, e esse é um modo de trabalho normal, não uma falha.
  • Áudio reconhecido — quanto áudio já passou pelo reconhecedor.
  • Frases — quantas linhas de legenda foram escritas.
  • Erros — falhas de leitura do arquivo e de reconhecimento. Zero aqui é o estado habitual.
  • Última frase — quando o reconhecimento escreveu algo pela última vez.

O painel nomeia diretamente os motivos pelos quais o reconhecimento não sobe:

O que está escrito O que fazer
O stream não tem gravação de arquivo Ligar o arquivo na aba DVR.
O arquivo do modelo não foi encontrado ou não carregou Colocar o arquivo do modelo no servidor (abaixo).
A faixa de áudio escolhida não está no ar Escolher outra fonte de áudio ou deixar o padrão.
O reconhecedor não conhece esse idioma Conferir o código do idioma ou limpar o campo.
Compilação do servidor sem reconhecimento de fala Falar com o suporte: o equipamento foi compilado sem o motor.

Um reconhecimento em execução com um erro recente é um aviso, não uma pane: um pedaço não lido não interrompe o trabalho, o reconhecimento segue do próximo.

O arquivo do modelo

O modelo em si não vem com o servidor: um utilizável pesa mais de um gigabyte, e qual é o necessário quem decide é o dono do equipamento. O servidor o procura no diretório de estado do produto — /var/lib/agora/whisper-models — e espera ali um arquivo ggml-<modelo>.bin, ou seja, ggml-medium.bin para o modelo medium.

Enquanto o arquivo não está lá, o estado do reconhecimento diz honestamente «O arquivo do modelo não foi encontrado ou não carregou», e a transmissão continua no ar e gravando como se nada fosse.

Um único arquivo serve a todas as transmissões do equipamento: o modelo é lido na memória uma vez por processo, por mais transmissões que o peçam.

O que o espectador recebe

O que foi reconhecido vira uma faixa de legendas comum da transmissão: aparece nas informações de mídia, viaja em HLS e DASH e é ativada no player como qualquer outra.

Faz sentido assisti-la no arquivo. No ao vivo as legendas ainda não estão lá — elas aparecem com aquele mesmo atraso que o estado mostra —, enquanto a gravação de uma reunião já abre com o texto.

O que vem depois