Word error rate
Anche: WER
Aggiornato il
Definizione
Il word error rate (WER), o tasso di errore sulle parole, è la misura standard della precisione del riconoscimento vocale: il numero di parole che un modello ha sbagliato, diviso per il numero di parole effettivamente pronunciate. Un WER del 5% significa che circa una parola su venti è stata sostituita, persa o inventata.
Il WER conta tre tipi di errore. Una sostituzione è la parola sbagliata al posto giusto («anno» al posto di «hanno»). Una cancellazione è una parola pronunciata che non è mai comparsa. Un’inserzione è una parola comparsa che non è mai stata pronunciata. Sommali, dividi per il numero di parole della trascrizione corretta e ottieni il tasso. Può superare il 100% su un audio pessimo, perché le inserzioni non hanno limite.
Il numero ha senso solo accanto all’audio su cui è stato misurato. Un modello che ottiene il 3% su un inglese pulito e letto, registrato con un microfono da podcast, può ottenere il 15% sulla stessa persona in un bar, e ancora peggio su una lingua che ha visto meno durante l’addestramento. I valori di WER pubblicati sono quasi sempre misurati su set di benchmark standard, che sono più puliti della tua scrivania.
Cosa non coglie il WER
Ogni errore conta allo stesso modo, e non sono uguali. Un «ehm» eliminato è un miglioramento; un «non» eliminato ribalta il significato. Un cognome scritto male ti costa una correzione; un articolo scritto male non ti costa niente perché non lo noti nemmeno. La formattazione è del tutto invisibile al WER: «1030 am» e «10:30 AM» sono le stesse parole. Così uno strumento con un WER grezzo un po’ peggiore e un passaggio di formattazione molto migliore può produrre un testo che richiede molte meno correzioni.
Ecco perché il numero che ti interessa davvero è più vicino alle «correzioni ogni cento parole dopo la formattazione», che nessun benchmark riporta e che puoi misurare solo dettando il tuo lavoro per una settimana.
Come leggere le dichiarazioni di precisione di un produttore
Chiedi quale benchmark, quale lingua e quale microfono. «Preciso al 99%» senza un dataset indicato è una frase di marketing. Chiedi se il valore è prima o dopo un eventuale passaggio di correzione, e se era in uso un dizionario personale. E confrontalo con le cose che il WER non vede: nomi, numeri e se il testo arriva come scrittura o come trascrizione.
Migliorare il tuo tasso di errore
Un microfono migliore, più vicino alla bocca, aiuta più di qualsiasi cambio di modello. Finire le frasi prima di rilasciare il tasto dà al modello il contesto per risolvere le ambiguità. E un dizionario personale per i nomi e i termini che dici davvero corregge gli errori che si ripetono, che sono quelli che contano, perché un errore che capita una volta al mese è un fastidio, mentre uno che capita ogni giorno è un motivo per smettere di dettare.
Come misurare il tuo word error rate sul Mac
Puoi misurare il WER sulla tua voce e con il tuo microfono con uno strumento open source gratuito chiamato jiwer. Calcola la distanza di modifica minima tra una trascrizione corretta e ciò che ha prodotto il riconoscitore, che è lo stesso calcolo usato dai benchmark.
Il risultato descrive la tua scrivania, il tuo microfono e il brano che hai letto. È un campione piccolo, quindi consideralo una misura approssimativa e ripeti la prova con un testo diverso prima di trarre conclusioni.
- Scegli un brano di qualche centinaio di parole e salvalo come file di testo semplice chiamato ref.txt, con una frase per riga. Questo è il tuo riferimento.
- Detta lo stesso brano con lo strumento che vuoi provare e salva il risultato come hyp.txt, con le stesse frasi sulle stesse righe.
- Decidi come trattare maiuscole, punteggiatura e numeri, poi applica la stessa pulizia a entrambi i file. Una scelta semplice è mettere tutto in minuscolo e togliere la punteggiatura in tutti e due.
- Apri Terminale e installa lo strumento con: pip install jiwer (serve Python 3.8 o successivo).
- Esegui: jiwer -r ref.txt -h hyp.txt per stampare il word error rate.
- Aggiungi -a al comando per stampare l’allineamento di ogni frase, così vedi quali parole sono state sostituite, omesse o inserite.
- Aggiungi -c se invece vuoi il character error rate.
Perché due valori di WER per lo stesso modello non coincidono?
Di solito perché il testo è stato ripulito in modo diverso prima del calcolo. Il WER si basa sulla distanza di modifica tra stringhe, quindi penalizza ogni differenza tra le due trascrizioni, comprese quelle che una persona considererebbe corrette, come una forma contratta scritta per intero o un numero scritto in cifre.
L’articolo su Whisper descrive questo problema e lo risolve con un normalizzatore del testo applicato a entrambe le trascrizioni prima di contare gli errori. Gli autori riportano che, per diversi dataset, questo solo passaggio ha abbassato il WER fino al 50 per cento. Un valore di WER senza la descrizione della normalizzazione usata non si può confrontare con un altro.
- Il normalizzatore di Whisper elimina le parole hmm, mm, mhm, mmm, uh e um prima del calcolo.
- Elimina qualsiasi frase tra parentesi quadre o tonde.
- Scioglie le forme contratte nella loro forma completa.
- Riscrive in cifre i numeri e gli importi scritti in lettere, così «ten thousand dollars» diventa «$10000».
- Converte l’ortografia britannica in quella americana ed elimina la maggior parte della punteggiatura e dei simboli.
WER e CER: parole o caratteri
Il character error rate (CER, tasso di errore sui caratteri) è lo stesso calcolo fatto sui caratteri invece che sulle parole. Una lettera sbagliata in una parola lunga è un errore intero nel WER e una piccola frazione di errore nel CER, quindi il CER è il numero più indulgente, e i due non si possono confrontare tra loro.
Chi pubblica i modelli sceglie l’unità per ogni lingua. Il progetto Whisper, per esempio, riporta il WER o il CER per ciascuna lingua sui dataset Common Voice 15 e Fleurs. Quando leggi una tabella di accuratezza, controlla quale dei due usa una riga prima di confrontarla con un’altra.
Le domande più frequenti.
Qual è un buon word error rate?
Su audio di benchmark in inglese pulito, i migliori modelli attuali stanno sotto il 5%. Nell’uso reale, con il microfono di un portatile e un parlato normale, un valore tra il 5 e il 10% è tipico e resta molto utilizzabile se lo strumento ha un buon passaggio di formattazione e un dizionario per i tuoi nomi.
Come si calcola il word error rate?
Sostituzioni più cancellazioni più inserzioni, diviso il numero di parole della trascrizione corretta. Un modello che in un passaggio di cento parole ne cambia una, ne perde una e ne aggiunge una ha un WER del 3%.
Un WER più basso indica sempre lo strumento migliore?
No. Il WER ignora la formattazione, la punteggiatura e quali parole erano sbagliate. Uno strumento che scrive correttamente orari, prezzi e nomi e rimuove gli intercalari può richiedere meno correzioni di uno con un WER grezzo più basso e nessun passaggio di formattazione.
Come calcolo il WER da solo?
Salva il testo corretto e il risultato del riconoscimento in due file di testo, installa lo strumento open source jiwer con pip install jiwer ed esegui jiwer -r ref.txt -h hyp.txt in Terminale. Prima applica a entrambi i file la stessa pulizia di maiuscole e punteggiatura, altrimenti le differenze di formattazione verranno contate come errori.
Qual è la differenza tra WER e CER?
Il WER conta le parole sbagliate e il CER i caratteri sbagliati, ciascuno diviso per la lunghezza della trascrizione corretta. Per lo stesso risultato il CER è più basso, perché una parola con una lettera sbagliata è quasi giusta a livello di caratteri.
La punteggiatura conta nel word error rate?
Dipende dalla normalizzazione del testo usata. La maggior parte dei benchmark elimina punteggiatura e maiuscole da entrambe le trascrizioni prima del calcolo, come fa il normalizzatore dell’articolo su Whisper, quindi il numero pubblicato non dice nulla su quanto bene un modello metta la punteggiatura.