Glossário / Como ele ouve você

Word error rate

Também: WER

Atualizado em

Pergunte a uma IA ChatGPT Claude Perplexity Grok

Definição

Word error rate (WER), ou taxa de erro de palavras, é a medida padrão de precisão no reconhecimento de fala: palavras erradas divididas pelas palavras faladas. Com WER de 5%, cerca de uma palavra em vinte foi trocada, omitida ou inventada.

A WER conta três tipos de erro. Uma substituição é a palavra errada no lugar certo (“sessão” no lugar de “seção”). Uma omissão é uma palavra falada que nunca apareceu. Uma inserção é uma palavra que apareceu e nunca foi falada. Some tudo, divida pelo número de palavras da transcrição correta e você tem a taxa. Ela pode passar de 100% com áudio ruim, porque as inserções não têm limite.

O número só tem sentido ao lado do áudio em que foi medido. Um modelo que marca 3% em inglês limpo, lido num microfone de podcast, pode marcar 15% com a mesma pessoa num café, e ainda pior num idioma que viu menos no treino. Os números de WER publicados quase sempre são medidos em conjuntos de benchmark padrão, que são mais limpos do que a sua mesa.

O que a WER não capta

Todo erro conta igual, e eles não são iguais. Perder um “hã” é uma melhoria; perder um “não” inverte o sentido. Um sobrenome escrito errado custa uma correção; um “o” escrito errado não custa nada, porque você nem vê. A formatação é totalmente invisível para a WER: “1030 am” e “10:30 AM” são as mesmas palavras. Então uma ferramenta com uma WER bruta um pouco pior e uma etapa de formatação muito melhor pode produzir um texto que precisa de bem menos correções.

É por isso que o número que realmente importa para você está mais perto de “correções a cada cem palavras depois da formatação”, que nenhum benchmark informa e que você só consegue medir ditando o seu próprio trabalho por uma semana.

Como ler uma promessa de precisão de um fornecedor

Pergunte qual benchmark, qual idioma e qual microfone. “99% de precisão” sem nenhum conjunto de dados citado é uma frase de marketing. Pergunte se o número é de antes ou de depois de alguma etapa de correção, e se havia um dicionário pessoal em uso. E pese isso contra o que a WER não enxerga: nomes, números e se o texto chega como escrita ou como transcrição.

Como melhorar a sua própria taxa de erro

Um microfone melhor, mais perto da boca, ajuda mais do que qualquer troca de modelo. Terminar as frases antes de soltar a tecla dá ao modelo contexto para desfazer ambiguidades. E um dicionário pessoal com os nomes e termos que você realmente fala corrige os erros que se repetem, que são os que importam, porque um erro que acontece uma vez por mês é um incômodo e um que acontece todo dia é um motivo para parar de ditar.

Como medir sua própria WER (word error rate) no Mac

Você pode medir a WER com a sua própria voz e o seu próprio microfone usando uma ferramenta gratuita e de código aberto chamada jiwer. Ela calcula a distância mínima de edição entre uma transcrição correta e o que o reconhecedor produziu, que é o mesmo cálculo que os benchmarks usam.

O resultado descreve a sua mesa, o seu microfone e o trecho que você leu. É uma amostra pequena, então trate o número como uma leitura aproximada e repita o teste com outro texto antes de tirar conclusões.

  1. Escolha um trecho de algumas centenas de palavras e salve-o como um arquivo de texto simples chamado ref.txt, com uma frase por linha. Essa é a sua referência.
  2. Dite o mesmo trecho com a ferramenta que você quer testar e salve o resultado como hyp.txt, com as mesmas frases nas mesmas linhas.
  3. Decida como vai tratar maiúsculas, pontuação e números e aplique a mesma limpeza aos dois arquivos. Uma escolha simples é passar tudo para minúsculas e tirar a pontuação dos dois.
  4. Abra o Terminal e instale a ferramenta com: pip install jiwer (ela exige Python 3.8 ou posterior).
  5. Execute: jiwer -r ref.txt -h hyp.txt para mostrar a WER (word error rate).
  6. Adicione -a ao comando para mostrar o alinhamento de cada frase e ver quais palavras foram substituídas, omitidas ou inseridas.
  7. Adicione -c se preferir a taxa de erro por caractere (CER).

Por que dois números de WER para o mesmo modelo não batem?

Normalmente porque o texto foi limpo de jeitos diferentes antes do cálculo. A WER se baseia na distância de edição entre strings, então penaliza cada diferença entre as duas transcrições, inclusive diferenças que uma pessoa consideraria corretas, como uma contração escrita por extenso ou um número escrito em algarismos.

O artigo do Whisper descreve esse problema e o resolve com um normalizador de texto aplicado às duas transcrições antes da contagem dos erros. Os autores relatam que, em vários conjuntos de dados, só essa etapa reduziu a WER em até 50%. Um número de WER sem a descrição da normalização por trás dele não pode ser comparado com outro.

  • O normalizador do Whisper remove as palavras hmm, mm, mhm, mmm, uh e um antes do cálculo.
  • Ele remove qualquer trecho entre colchetes ou parênteses.
  • Ele expande as contrações para a forma completa.
  • Ele reescreve com algarismos os números e valores em dinheiro escritos por extenso, de modo que “ten thousand dollars” vira “$10000”.
  • Ele converte grafias britânicas em americanas e remove a maior parte da pontuação e dos símbolos.

WER vs. CER: palavras ou caracteres

A taxa de erro por caractere (CER, de character error rate) é o mesmo cálculo feito sobre caracteres em vez de palavras. Uma letra errada numa palavra longa é um erro inteiro na WER e uma pequena fração de erro na CER, então a CER é o número mais brando, e as duas não podem ser comparadas entre si.

Quem publica os modelos escolhe a unidade para cada idioma. O projeto Whisper, por exemplo, informa WER ou CER para cada idioma nos conjuntos de dados Common Voice 15 e Fleurs. Ao ler uma tabela de precisão, confira qual das duas cada linha usa antes de compará-la com outra.

Perguntas que as pessoas fazem.

O que é uma boa word error rate?

Em áudio de benchmark com inglês limpo, os melhores modelos atuais ficam abaixo de 5%. No uso real, com o microfone de um notebook e fala comum, de 5 a 10% é o normal, e ainda é bem utilizável quando a ferramenta tem uma boa etapa de formatação e um dicionário para os seus nomes.

Como a word error rate é calculada?

Substituições mais omissões mais inserções, divididas pelo número de palavras da transcrição correta. Um modelo que troca uma palavra, omite uma e acrescenta uma num trecho de cem palavras tem uma WER de 3%.

Uma WER menor significa sempre uma ferramenta melhor?

Não. A WER ignora a formatação, a pontuação e quais palavras saíram erradas. Uma ferramenta que escreve horários, preços e nomes corretamente e remove vícios de fala pode exigir menos correções do que uma com WER bruta menor e sem etapa de formatação.

Como calculo a WER por conta própria?

Salve o texto correto e a saída do reconhecedor como dois arquivos de texto, instale a ferramenta de código aberto jiwer com pip install jiwer e execute jiwer -r ref.txt -h hyp.txt no Terminal. Antes, aplique a mesma limpeza de maiúsculas e pontuação aos dois arquivos, ou as diferenças de formatação serão contadas como erros.

Qual é a diferença entre WER e CER?

A WER conta palavras erradas e a CER conta caracteres errados, cada uma dividida pelo tamanho da transcrição correta. A CER é menor para a mesma saída porque uma palavra com uma letra errada está quase toda certa no nível dos caracteres.

A pontuação conta na WER (word error rate)?

Depende da normalização de texto usada. A maioria das configurações de benchmark tira a pontuação e as maiúsculas das duas transcrições antes do cálculo, como faz o normalizador do artigo do Whisper, então o número publicado não diz nada sobre como um modelo pontua.

Termos relacionados

Sua voz sempre foi mais rápida.

7 dias grátis, depois $19 USD em pagamento único. Sem conta, sem assinatura, sem enviar nada.

macOS 14 ou posterior · Apple silicon