WER jednako boduje pogrešno ime, pogrešan broj i izostavljeno „ne” kao i izostavljeno „hm”. Sustav procjenjujte prema tome koje pogreške hvata i možete li vidjeti njegove ispravke, a ne prema glavnoj brojci.
Stopa pogrešnih riječi (WER) standardna je mjera za prepoznavanje govora. Uzmite referentni transkript koji je čovjek provjerio, poredajte izlaz stroja uz njega riječ po riječ i prebrojite tri vrste pogrešaka: zamjene (pogrešna riječ), umetanja (riječ koja nije izgovorena) i brisanja (riječ koja nedostaje). Zbrojite ih i podijelite s brojem riječi u referentnom tekstu.
WER = (zamjene + umetanja + brisanja) / broj riječi u referentnom tekstu
Poravnavanje se ne radi na oko. Dva se transkripta poravnavaju minimalnom udaljenošću uređivanja (Levenshteinova udaljenost, primijenjena na riječi, a ne na slova): od svih načina da se izlaz upari s referencom, ocjenjivač odabere onaj s najmanje uređivanja i prebroji ih. Budući da se umetanja broje, a nazivnik je duljina reference, WER može premašiti 100 posto: model koji tihu minutu ispuni tekstom ocijenjen je lošije od onoga koji ne napiše ništa.
Pretpostavimo da je referenca „Sastajemo se s doktorom Okaforom u devet u četvrtak”, devet riječi, a stroj napiše „Sastajemo se s doktoricom Okoforom u devet u utorak”. To su tri zamjene (doktoricom, Okoforom, utorak) na devet riječi: WER od 33 posto. Dvije trećine riječi su točne, a vi ste i dalje na pogrešnom sastanku pogrešnog dana. Da je pogrešan bio samo „utorak”, rezultat bi bio 11 posto. Verzija u kojoj je svaka riječ točna, ali je dodan „hm” koji nitko nije izgovorio, također dobiva 11 posto, jer se umetanje broji jednako kao zamjena.
Prije brojanja oba se teksta obično normaliziraju, a izbori napravljeni u tom koraku pomiču rezultat koliko i sam model. Je li „dr.” ista riječ kao „doktor”? Je li „devet” isto što i „9”? Računaju li se velika slova i interpunkcija? Stroga usporedba označila bi „dr.” naspram „doktor” kao zamjenu. Većina objavljenih rezultata pretvara sve u mala slova, uklanja interpunkciju i sve brojeve zapisuje na jedan način, riječima ili brojkama, prije usporedbe. Dobavljačeva brojka stoga tiho ovisi o normalizatoru koji ne možete vidjeti. Jezici koji se pišu bez razmaka između riječi, poput kineskog, japanskog i tajlandskog, nemaju čistu granicu riječi za brojanje, pa se boduju stopom pogrešnih znakova (CER): ista formula, primijenjena na znakove.
Dva su zaključka. Prvo, WER od 5 posto znači jednu riječ od dvadeset, što je nekoliko stotina riječi u jednosatnom govoru. Za usporedbu, ljudski transkriptori često se navode s otprilike 4 do 5 posto u razgovornom govoru, a često citirani rezultat iz 2017. na telefonskom korpusu Switchboard pokazao je da je stroj imao oko 5,1 posto, iako obje brojke ovise o zvuku i pravilima bodovanja. Drugo, broj ovisi u potpunosti o testnom zvuku: čist čitani govor daje jednu brojku, a bučna panel-rasprava s naglascima i preklapanjem daje sasvim drugu. Glavni WER opisuje testni skup dobavljača jednako koliko i sustav dobavljača.
To je brojanje. Ono što izostavlja jest cijena svake pogreške za čitatelja.
WER tretira svaku riječ jednako. Čitatelji ne:
Svaka od ovih stavki jedna je ili dvije pogreške u stupcu WER-a. U stupcu čitatelja kreću se od ničega do drugog sastanka drugog dana. Zato pitanje nije samo „kolika je stopa pogrešaka”, nego i „koje vrste pogrešaka, i što ih hvata”.
Nekoliko slojeva hvata ono što prepoznavanje pogriješi, a svaka se promjena bilježi kako bi se mogla pregledati i poništiti. Pri transkripciji uživo to se događa dok tekst još pristiže: svaki se redak prvo pojavljuje kao nacrt koji se još može promijeniti, a zatim postaje konačan (Kašnjenje prijevoda uživo, objašnjeno objašnjava zašto).
Neke pogreške odgovaraju zvuku, ali ne i rečenici: „kosa” umjesto „kose” tamo gdje rečenica traži drugi padež. Te se pogreške mogu uhvatiti iz konteksta, a ispravak stiže čitateljima kao vidljivo ažuriranje (transcript.amended u API-ju), a ne kao tiho prepisivanje. Kontekst je dobar za riječi koje rečenica može predvidjeti. Nemoćan je pred onima koje ne može.
Imena i stručni pojmovi pogreške su koje kontekst ne može popraviti, jer se ime često pojavi samo jednom, bez ičega oko sebe iz čega bi se moglo predvidjeti. Referentna skripta to rješava: prije početka sustavu dajte govor, slajdove ili popis imena i pojmova, a njegove će riječi imati prednost nad onim što je motor krivo čuo. Tijekom snimanja skripta prati transkript kao teleprompter, pa domaćin vidi koliko je motor odmakao. Skripta pokriva riječi koje možete predvidjeti; šum i naglasci proizvode one koje ne možete.
Neke pogreške može vidjeti samo osoba u prostoriji. Ručni ispravci omogućuju domaćinu da prepiše bilo koju riječ ili redak dok je transkripcija još uživo, a svaki slušatelj prijenosa vidi promjenu. Sustav upućuje domaćina na vjerojatne kandidate: riječi o kojima je motor bio nesiguran mogu se obojiti i podcrtati, a domaćin može prolaziti kroz nesigurne dijelove jedan po jedan umjesto da ponovno čita cijeli transkript. Kroz API, GET /v1/recordings/{id}/corrections prikazuje ispravke snimke, a POST /v1/corrections/{id}/revert poništava jedan; pogledajte referencu API-ja. Ali ni osoba u prostoriji ne može ispraviti redak koji nitko nije mogao čuti.
Posljednji sloj prihvaća da se neki zvuk ne može vratiti. Kad redak ima ocjenu ispod praga pouzdanosti transkripcije (confidence.hideBelow, prema zadanim postavkama 0,60), slušatelji umjesto njega vide „Zvuk nejasan”, a redak se nikad ne čita naglas. Čitatelji izgube redak; ne dobiju izmišljeni.
Ista pitanja koja su oblikovala ove slojeve vrijede za tvrdnju o točnosti bilo kojeg dobavljača, uključujući i našu.
Kratak popis za čitanje svake tvrdnje o točnosti:
VocalStack ne objavljuje interni WER iz prvog razloga navedenog gore: opisivao bi naš testni skup, a ne vaš zvuk. Točnost mjerimo neprekidno. Kad uspoređujemo druge sustave, koristimo objavljene neovisne mjerne rezultate i brojke koje objavljuju sami dobavljači, nikada privatne testove. Ostalo neka odluči vaš vlastiti zvuk.