WER jednako boduje pogrešno ime, pogrešan broj i izostavljeno „not”, kao i izostavljeno „the”. Procjenjujte sistem za transkripciju po tome koje greške hvata i da li možete vidjeti njegove ispravke, a ne po glavnom broju.
Stopa greške riječi (word error rate, WER) je standardna mjera za prepoznavanje govora. Uzmite referentni transkript koji je čovjek provjerio, poredajte izlaz mašine uz njega riječ po riječ i prebrojte tri vrste grešaka: zamjene (pogrešna riječ), umetanja (riječ koja nikad nije izgovorena) i izostavljanja (riječ koja nedostaje). Saberite ih i podijelite brojem riječi u referentnom tekstu.
WER = (zamjene + umetanja + izostavljanja) / broj riječi u referentnom tekstu
Poravnanje se ne radi na oko. Dva transkripta se poravnavaju minimalnom udaljenošću editovanja (Levenshteinova udaljenost, primijenjena na riječi, a ne na slova): od svih načina da se izlaz upari s referencom, alat za bodovanje bira onaj s najmanje izmjena i broji njih. Pošto se umetanja broje, a nazivnik je dužina reference, WER može preći 100 posto: model koji tihi minut popuni tekstom bodovaće se lošije od onoga koji ne napiše ništa.
Pretpostavimo da je referenca „we will meet Dr Okafor at nine on Thursday”, devet riječi, a mašina napiše „we will meet the doctor at nine on Tuesday”. To su tri zamjene (Dr, Okafor, Thursday) na devet riječi: WER od 33 posto. Dvije trećine riječi su tačne, a vi ste i dalje na pogrešnom sastanku, na pogrešan dan. Da je pogrešan samo „Thursday”, rezultat bi bio 11 posto. Verzija u kojoj je svaka riječ tačna, ali je dodan „um” koji niko nije izgovorio, takođe dobija 11 posto, jer se umetanje računa isto kao i zamjena.
Prije brojanja oba teksta se obično normalizuju, a izbori napravljeni tu pomjeraju rezultat jednako koliko i sam model. Je li „Dr” isto što i „Doctor”? Je li „nine” isto što i „9”? Važe li velika i mala slova i interpunkcija? Strogo poređenje bi „Dr” protiv „Doctor” označilo kao zamjenu. Većina objavljenih rezultata prije poređenja sve pretvara u mala slova, skida interpunkciju i sve brojeve piše na jedan način, kao riječi ili kao cifre. Zato je brojka dobavljača tiho zavisna od normalizatora koji ne možete vidjeti. Jezici koji se pišu bez razmaka između riječi, kao kineski, japanski i tajlandski, nemaju čistu granicu riječi za brojanje, pa se boduju stopom greške znakova (character error rate, CER): ista formula, primijenjena na znakove.
Iz ovoga slijede dvije stvari. Prvo, WER od 5 posto znači jednu riječ na dvadeset, što je nekoliko stotina riječi u jednosatnom govoru. Za poređenje, ljudski transkriptori se često navode na otprilike 4 do 5 posto u razgovornom govoru, a često citiran rezultat iz 2017. na korpusu telefonskih razgovora Switchboard stavio je mašinu na oko 5.1 posto, iako obje brojke zavise od zvuka i pravila bodovanja. Drugo, broj zavisi potpuno od testnog zvuka: čist čitani govor daje jednu brojku, a bučan panel s naglascima i preklapanjem govora daje sasvim drugu. Glavni WER opisuje testni skup dobavljača jednako koliko i sam sistem dobavljača.
To je brojanje. Ono što ne uključuje jeste cijena svake greške za osobu koja čita.
WER tretira svaku riječ jednako. Čitaoci ne:
Svaka od ovih stvari je jedna ili dvije greške u koloni WER. U koloni čitaoca kreću se od ničega do drugog sastanka drugog dana. Zato pitanje nije samo „kolika je stopa greške”, nego i „kakve greške, i šta ih hvata”.
Nekoliko slojeva hvata ono što prepoznavanje pogriješi, a svaka promjena se bilježi tako da se može pregledati i poništiti. Na transkripciji uživo to se dešava dok tekst još pristiže: svaka linija se prvo pojavljuje kao nacrt koji se još može mijenjati, a zatim postaje konačna (Kašnjenje prijevoda uživo, objašnjeno objašnjava zašto).
Neke greške odgovaraju zvuku, ali ne rečenici: „their” tamo gdje rečenica treba „there”. Takve se mogu uhvatiti iz konteksta, a ispravka dopire do čitalaca 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 za one koje ne može.
Imena i tehnički pojmovi su greške 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 sistemu dajete govor, slajdove ili spisak imena i pojmova, a njegove riječi imaju prednost nad onim što je motor pogrešno čuo. Tokom snimanja skripta prati transkript kao teleprompter, pa domaćin vidi koliko je motor stigao. Skripta pokriva riječi koje možete predvidjeti; bučan zvuk i naglasci proizvode one koje ne možete.
Neke greške može vidjeti samo osoba u prostoriji. Ručne ispravke omogućavaju domaćinu da prepiše bilo koju riječ ili liniju dok je transkripcija još uživo, a svaki slušalac na prijenosu vidi promjenu. Sistem upućuje domaćina na vjerovatne kandidate: riječi o kojima je motor bio nesiguran mogu se obojiti i podvući, a domaćin može prolaziti kroz nesigurne segmente jedan po jedan, umjesto da iznova čita cijeli transkript. Preko API-ja, GET /v1/recordings/{id}/corrections izlistava ispravke snimka, a POST /v1/corrections/{id}/revert poništava jednu; pogledajte API referencu. Ni osoba u prostoriji, međutim, ne može ispraviti liniju koju niko nije mogao čuti.
Posljednji sloj prihvata da se neki zvuk ne može povratiti. Kada linija ne dostigne prag pouzdanosti transkripcije (confidence.hideBelow, podrazumijevano 0.60), slušaoci umjesto nje vide „Audio unclear”, a linija se nikad ne čita naglas. Čitaoci izgube jednu liniju; ne dobiju izmišljenu.
Ista pitanja koja su oblikovala ove slojeve važe za svaku tvrdnju o tačnosti bilo kojeg dobavljača, uključujući i našu.
Kratak spisak za čitanje svake tvrdnje o tačnosti:
VocalStack ne objavljuje interni WER iz prvog razloga navedenog gore: opisivao bi naš testni skup, a ne vaš zvuk. Tačnost mjerimo kontinuirano. Kada upoređujemo druge sisteme, koristimo objavljene nezavisne benchmarke i brojke koje objavljuju sami dobavljači, nikad privatne testove. Ostalo neka odluči vaš vlastiti zvuk.