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.

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:

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.

- 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¶
- Arquivo — sem o que o reconhecimento não inicia.
- Transmissões — a ficha em cujas abas tudo isso vive.
- Reprodução e acesso — como o espectador abre uma gravação.