Glossário / Como ele ouve você
Alucinação
Atualizado em
Definição
Em reconhecimento de fala, alucinação é texto que o modelo produz e ninguém disse: uma frase plausível inventada a partir de silêncio, ruído ou um trecho curto demais para transcrever. É o erro de inserção ao extremo.
Todo modelo de fala é treinado para produzir texto, então, quando recebe um áudio sem fala, ele tenta mesmo assim. Os modelos em lote como o Whisper são o caso conhecido: diante de alguns segundos de som ambiente, às vezes eles emitem “Thank you for watching” ou uma frase inteira em outro idioma, porque essas sequências eram comuns nos dados de treino, no fim das gravações. A saída é fluente e está errada com toda a confiança.
A mesma palavra é usada para modelos de linguagem que inventam fatos, e o mecanismo é parecido: um sistema otimizado para produzir uma saída provável vai produzi-la mesmo que a entrada não justifique. Numa ferramenta de ditado, uma alucinação significa que um texto que você nunca falou aparece no seu documento.
Quando acontece
Silêncio no começo ou no fim de uma gravação, e é por isso que a captura até soltar a tecla e a detecção de atividade de voz importam. Falas muito curtas, uma única palavra ou uma tosse, em que o modelo tem pouco demais em que se apoiar. Fala de fundo vinda de um vídeo ou de um colega, que é fala de verdade, mas não é sua. Gravações longas, em que alguns modelos se perdem e repetem um trecho. Cada caso tem uma forma conhecida de mitigação, e uma ferramenta que não as aplicou vai surpreender você um dia.
Como as boas ferramentas evitam isso
Rode um detector de atividade de voz primeiro e nunca envie o que não é fala ao reconhecedor. Corte o silêncio nas duas pontas. Descarte resultados de trechos abaixo de uma duração mínima. Fique de olho no modelo emitindo texto sem energia de áudio correspondente e descarte esse texto. No lado da formatação, recuse qualquer reescrita que acrescente uma palavra de conteúdo que a transcrição não tinha, para que um modelo de formatação também não possa alucinar. Uma ferramenta que faz tudo isso ainda vai entender você errado de vez em quando; ela nunca deveria inventar uma frase.
Como reduzir alucinações do Whisper na linha de comando
Se você usa a ferramenta de linha de comando de código aberto do Whisper em gravações e ela inventa ou repete texto, a ferramenta tem opções documentadas justamente para isso. Elas não eliminam o problema, mas atacam as duas formas mais comuns: texto inventado sobre silêncio e um trecho repetido em loop.
Os autores do Whisper descrevem essas verificações como um paliativo para previsões ruidosas, não como uma cura, então compare o resultado com o áudio depois de alterá-las.
- Abra o Terminal e processe o arquivo uma vez com os ajustes padrão, por exemplo: whisper recording.wav --model turbo. Anote onde aparece o texto inventado ou repetido.
- Se um trecho se repetir, execute de novo com --condition_on_previous_text False. A documentação diz que isso pode deixar o texto menos consistente entre janelas, mas o modelo fica menos propenso a travar num loop de falha.
- Se aparecer texto sobre silêncio, adicione --word_timestamps True --hallucination_silence_threshold 2. Com as marcas de tempo por palavra ativadas, isso pula períodos de silêncio mais longos que o número de segundos indicado quando uma possível alucinação é detectada.
- Deixe --no_speech_threshold no padrão de 0.6 e --logprob_threshold no padrão de -1.0, a menos que tenha um motivo para mudá-los. Juntos, eles decidem quando um segmento é tratado como silêncio.
- Corte os silêncios longos do início e do fim da gravação em qualquer editor de áudio e execute de novo, para que o modelo tenha menos trechos sem fala para processar.
- Compare a nova transcrição com o áudio nos pontos que você anotou no primeiro passo.
Alucinação vs. erro de audição: como diferenciar
Um erro de audição é uma palavra errada no lugar em que você disse outra. Ela soa como o que você disse, e dá para entender por que o modelo a escolheu. Uma alucinação não tem nenhuma origem no áudio. O artigo do Whisper descreve o caso extremo como uma transcrição sem nenhuma relação com o áudio real.
A diferença importa porque as soluções são diferentes. Um erro de audição melhora com um microfone melhor, uma fala mais clara ou uma entrada no dicionário. Uma alucinação se evita mantendo o silêncio e o ruído longe do modelo, ou rejeitando a saída sobre a qual o próprio modelo estava inseguro.
- Texto que aparece onde você estava em silêncio ou já tinha parado de falar é uma alucinação.
- A mesma expressão ou frase repetida várias vezes seguidas é um loop de repetição, que o artigo do Whisper lista como uma falha diferente da alucinação.
- Uma palavra errada que soa como a certa é um erro de audição.
- Sumirem as primeiras ou as últimas palavras de uma gravação é uma terceira falha citada no artigo do Whisper, e é uma omissão, não uma alucinação.
Como o Whisper decide que a própria saída falhou
O código aberto do Whisper verifica cada janela de 30 segundos depois de decodificá-la. Se a probabilidade logarítmica média dos tokens gerados ficar abaixo de -1,0, ou se a taxa de compressão gzip do texto passar de 2,4, a janela é tratada como falha e decodificada de novo com uma temperatura mais alta. Texto muito repetitivo se comprime bem, e é por isso que a taxa de compressão pega os loops.
Para o silêncio, o artigo observa que a probabilidade do token de ausência de fala, sozinha, não basta para detectar uma janela sem fala. Combinar um limiar de ausência de fala de 0,6 com o limiar de probabilidade logarítmica de -1 torna a detecção mais confiável. O model card ainda lista a alucinação e o texto repetitivo como limitações conhecidas.
Perguntas que as pessoas fazem.
Por que meu app de ditado escreveu algo que eu nunca disse?
O mais provável é que o reconhecedor tenha recebido um áudio sem fala, como silêncio no fim de uma gravação, ou um trecho muito curto, e produzido uma frase plausível mesmo assim. Esse é um comportamento conhecido dos modelos em lote, e dá para evitá-lo com detecção de atividade de voz e corte de silêncio.
A etapa de formatação também pode alucinar?
Sim, se for um modelo de linguagem reescrevendo a sua transcrição livremente. A proteção é uma regra: a saída pode remover vícios de fala e corrigir a pontuação, mas nunca pode acrescentar uma palavra de conteúdo que você não disse, e uma reescrita que quebra essa regra é descartada.
Por que o Whisper repete a mesma frase sem parar?
O model card do Whisper diz que a sua arquitetura sequence-to-sequence o deixa propenso a gerar texto repetitivo. Na ferramenta de linha de comando de código aberto, definir --condition_on_previous_text False deixa o modelo menos propenso a travar nesse tipo de loop.
Um modelo Whisper maior acaba com as alucinações?
Não de forma confiável. O artigo do Whisper diz que os modelos maiores avançaram de forma constante nos erros de percepção, como confundir palavras de som parecido, mas que os loops de repetição e as alucinações são mais teimosos e são um problema de decodificação.
Uma alucinação é o mesmo que um erro de transcrição?
É um tipo de erro de transcrição. A maioria dos erros é algo que você disse e foi ouvido errado, enquanto uma alucinação é um texto sem nenhuma origem falada, e conta como uma inserção no cálculo da WER.