WER notează la fel un nume greșit, un număr greșit și un „nu” lipsă ca un articol scăpat. Judecă un sistem de transcriere după erorile pe care le prinde și după faptul că îi poți vedea corecturile, nu după cifra principală.
Rata erorilor de cuvinte (WER) este etalonul standard pentru recunoașterea vorbirii. Iei o transcriere de referință, verificată de o persoană, aliniezi rezultatul mașinii cu ea cuvânt cu cuvânt și numeri trei tipuri de greșeli: substituții (un cuvânt greșit), inserări (un cuvânt care nu a fost rostit) și omisiuni (un cuvânt lipsă). Le aduni și împarți la numărul de cuvinte din referință.
WER = (substituții + inserări + omisiuni) / cuvinte în referință
Alinierea nu se face cu ochiul. Cele două transcrieri sunt aliniate după distanța minimă de editare (distanța Levenshtein, aplicată pe cuvinte, nu pe litere): dintre toate modurile de a asocia rezultatul cu referința, scorul alege pe cel cu cele mai puține editări și le numără. Pentru că inserările se numără, iar numitorul este lungimea referinței, WER poate depăși 100%: un model care umple cu text un minut de liniște are un scor mai slab decât unul care nu scrie nimic.
Să presupunem că referința este „ne vedem cu dr. Okafor la ora nouă joi”, nouă cuvinte, iar mașina scrie „ne vedem cu doctorul Ocafor la ora nouă marți”. Sunt trei substituții (dr., Okafor, joi) la nouă cuvinte: un WER de 33%. Două treimi din cuvinte sunt corecte, și totuși ai ajuns la întâlnirea greșită, în ziua greșită. Dacă doar „joi” ar fi greșit, scorul ar fi 11%. O versiune cu toate cuvintele corecte, dar cu un „ăă” adăugat, pe care nimeni nu l-a rostit, tot ar avea 11%, pentru că o inserare contează la fel ca o substituție.
Înainte de numărare, ambele texte sunt de obicei normalizate, iar alegerile făcute aici mișcă scorul la fel de mult ca modelul. Este „dr.” același cuvânt cu „doctor”? Este „nouă” același lucru cu „9”? Contează majusculele și semnele de punctuație? Un scor strict ar marca „dr.” față de „doctor” drept substituție. Majoritatea scorurilor publicate scriu totul cu litere mici, elimină semnele de punctuație și scriu fiecare număr într-un singur fel, fie ca cuvânt, fie ca cifră, înainte de comparație. Cifra unui furnizor depinde, deci, discret de un normalizator pe care nu-l poți vedea. Limbile scrise fără spații între cuvinte, precum chineza, japoneza și thai, nu au o limită clară de cuvânt pe care s-o numeri, așa că sunt evaluate prin rata erorilor de caractere (CER): aceeași formulă, aplicată pe caractere.
Din asta rezultă două lucruri. În primul rând, un WER de 5% înseamnă un cuvânt din douăzeci, adică câteva sute de cuvinte într-o oră de vorbire. Ca reper, transcriptorii umani sunt citați de obicei în jur de 4 până la 5% pentru vorbirea conversațională, iar un rezultat foarte citat din 2017, pe corpusul telefonic Switchboard, a plasat o mașină la aproximativ 5,1%, deși ambele cifre depind de audio și de regulile de notare. În al doilea rând, cifra depinde în întregime de audioul de test: vorbirea citită, curată, dă o cifră, iar o discuție în panel zgomotoasă, cu accente și vorbire simultană, dă una cu totul diferită. Un WER afișat descrie setul de test al furnizorului la fel de mult cât descrie sistemul furnizorului.
Asta este numărătoarea. Ce lasă de-o parte este costul fiecărei erori pentru cel care citește.
WER tratează fiecare cuvânt în mod egal. Cititorii nu.
Fiecare dintre acestea este una sau două erori în coloana WER. În coloana cititorului, variază de la nimic până la o întâlnire diferită, într-o altă zi. Așadar, întrebarea nu este doar „care este rata erorilor”, ci și „ce fel de erori sunt și ce le prinde”.
Mai multe straturi prind ceea ce recunoașterea greșește, iar fiecare modificare este înregistrată, ca să poată fi inspectată și anulată. La o transcriere live, asta se întâmplă în timp ce textul încă sosește: fiecare rând apare mai întâi ca o ciornă care se poate schimba încă, apoi devine final (Latența traducerii live, explicată explică de ce).
Unele greșeli se potrivesc cu sunetul, dar nu cu propoziția: „their” acolo unde propoziția cere „there”. Acestea pot fi prinse din context, iar o corectură ajunge la cititori ca o actualizare vizibilă (transcript.amended în API), nu ca o rescriere tacită. Contextul este bun la cuvintele pe care propoziția le poate prezice. Este neajutorat în fața celor pe care nu le poate.
Numele și termenii tehnici sunt erorile pe care contextul nu le poate repara, pentru că un nume apare adesea o singură dată, fără nimic în jur din care să poată fi prezis. Un scenariu de referință rezolvă asta: dai sistemului vorbirea, slide-urile sau o listă de nume și termeni înainte de a începe, iar cuvintele lor au prioritate față de ce a auzit greșit motorul. În timpul înregistrării, scenariul urmărește transcrierea ca un teleprompter, astfel încât gazda vede cât de departe a ajuns motorul. Un scenariu acoperă cuvintele pe care le poți prevedea; audioul zgomotos și accentele produc pe cele pe care nu le poți.
Unele erori le poate vedea doar o persoană din sală. Corecturile manuale îi permit gazdei să rescrie orice cuvânt sau rând cât timp transcrierea este încă live, iar fiecare ascultător din transmisiune vede schimbarea. Sistemul îi indică gazdei candidații probabili: cuvintele despre care motorul nu a fost sigur pot fi colorate și subliniate, iar gazda poate parcurge segmentele incerte unul câte unul, în loc să recitească întreaga transcriere. Prin API, GET /v1/recordings/{id}/corrections listează corecturile unei înregistrări, iar POST /v1/corrections/{id}/revert anulează una; vezi referința API. Chiar și o persoană din sală, totuși, nu poate corecta un rând pe care nimeni nu l-a putut auzi.
Ultimul strat acceptă că unele audio nu pot fi recuperate. Când un rând are un scor sub pragul de încredere al transcrierii (confidence.hideBelow, implicit 0,60), ascultătorii văd „Audio unclear” în locul lui, în loc de o presupunere, iar rândul nu este niciodată citit cu voce tare. Cititorii pierd un rând; nu câștigă unul inventat.
Aceleași întrebări care au modelat aceste straturi se aplică oricărei afirmații de acuratețe a unui furnizor, inclusiv a noastre.
O listă scurtă de verificare pentru orice afirmație de acuratețe:
VocalStack nu publică o cifră WER internă, din primul motiv de mai sus: ar descrie setul nostru de test, nu audioul tău. Măsurăm acuratețea continuu. Când comparăm alte sisteme, folosim benchmark-uri independente publicate și cifre publicate de furnizori, niciodată teste private. Restul îl hotărăște audioul tău.