Pantay ang marka ng WER sa maling pangalan, maling numero at nawawalang "not" at sa nalaktawang "the". Hatulan ang isang transcription system batay sa mga error na nahuhuli nito at kung nakikita mo ang mga ayos nito, hindi batay sa headline number.
Ang word error rate ang karaniwang panukat para sa speech recognition. Kumuha ng reference transcript na sinuri na ng isang tao, ihanay ang output ng makina dito salita-por-salita, at bilangin ang tatlong uri ng pagkakamali: substitutions (maling salita), insertions (salitang hindi naman sinabi) at deletions (salitang nawawala). Idagdag ang lahat at hatiin sa bilang ng mga salita sa reference.
WER = (substitutions + insertions + deletions) / words in the reference
Hindi ginagawa ang paghahanay nang basta-basta sa mata. Inihahanay ang dalawang transcript gamit ang minimum edit distance (ang Levenshtein distance, na inilapat sa mga salita sa halip na sa mga letra): sa lahat ng paraan ng pagpapares ng output sa reference, pinipili ng scorer ang may pinakakaunting edit at iyon ang binibilang. Dahil binibilang ang insertions at ang haba ng reference ang hati, maaaring lumampas sa 100 porsyento ang WER: mas masama ang score ng modelong pinupuno ng teksto ang tahimik na minuto kaysa sa modelong walang isinulat.
Ipagpalagay na ang reference ay "we will meet Dr Okafor at nine on Thursday", siyam na salita, at ang makina ay sumulat ng "we will meet the doctor at nine on Tuesday". Tatlong substitutions iyon (Dr, Okafor, Thursday) sa siyam na salita: WER na 33 porsyento. Dalawang-katlo ng mga salita ang tama, pero nasa maling meeting ka pa rin sa maling araw. Kung "Thursday" lang ang mali, 11 porsyento ang score. Ang bersyong tama ang bawat salita pero may dagdag na "um" na walang nagsabi ay 11 porsyento rin, dahil kasing bigat ng substitution ang insertion.
Bago bilangin, karaniwang ninonormalize ang dalawang teksto, at ang mga pagpiling ginagawa rito ay nakakaapekto sa score nang kasing-laki ng modelo. Pareho ba ang "Dr" at "Doctor"? Pareho ba ang "nine" at "9"? Binibilang ba ang capitalization at punctuation? Ang mahigpit na scoring ay magmamarka sa "Dr" laban sa "Doctor" bilang substitution. Karamihan sa mga nailathalang score ay ginagawang lowercase ang lahat, tinatanggal ang punctuation, at isinusulat ang bawat numero sa iisang anyo, bilang salita man o digit, bago ihambing. Kaya ang figure ng isang vendor ay tahimik na nakadepende sa normalizer na hindi mo nakikita. Ang mga wikang walang espasyo sa pagitan ng salita, gaya ng Chinese, Japanese at Thai, ay walang malinaw na hangganan ng salitang mabibilang, kaya sinusukat ang mga ito gamit ang character error rate (CER) sa halip: ang parehong formula, pero inilapat sa mga character.
Dalawang bagay ang kasunod nito. Una, ang WER na 5 porsyento ay isang salita sa bawat dalawampu, na katumbas ng ilang daang salita sa isang oras na talk. Para sa paghahambing, ang mga human transcriber ay madalas binabanggit sa humigit-kumulang 4 hanggang 5 porsyento sa conversational na speech, at isang madalas binabanggit na resulta noong 2017 sa Switchboard telephone corpus ang naglagay sa makina sa humigit-kumulang 5.1 porsyento, bagaman parehong nakadepende sa audio at sa mga patakaran ng scoring ang mga figure na ito. Ikalawa, ganap na nakadepende ang numero sa test audio: ang malinis na binasang speech ay may isang figure, at ang maingay na panel na may iba't ibang accent at sabay-sabay na pagsasalita ay may ibang-iba. Ang headline WER ay naglalarawan ng test set ng vendor kasing dami ng paglalarawan nito sa sistema ng vendor.
Iyon ang bilang. Ang hindi nito isinasama ay ang halaga ng bawat pagkakamali sa taong nagbabasa.
Pantay ang trato ng WER sa bawat salita. Hindi ganoon ang mga mambabasa:
Bawat isa sa mga ito ay isa o dalawang error sa WER column. Sa column ng mambabasa, mula sa wala hanggang sa ibang meeting sa ibang araw ang saklaw ng mga ito. Kaya ang tanong ay hindi lang "ano ang error rate" kundi "anong uri ng mga error, at ano ang humuhuli sa mga ito".
Maraming layer ang humuhuli sa mga pagkakamaling nagagawa ng recognition, at naitatala ang bawat pagbabago para masuri at maibalik. Sa live transcription, nangyayari ito habang dumarating pa ang teksto: lumalabas muna ang bawat linya bilang draft na maaari pang magbago, at saka nagiging final (Paliwanag sa latency ng live translation ang nagpapaliwanag kung bakit).
May mga maling tugma sa tunog pero hindi sa pangungusap, gaya ng "their" kung saan kailangan ang "there". Maaaring mahuli ang mga ito mula sa konteksto, at makararating ang correction sa mambabasa bilang nakikitang update (transcript.amended sa API), hindi bilang tahimik na pagsusulat-muli. Mahusay ang konteksto sa mga salitang kayang hulaan ng pangungusap. Wala itong magawa sa mga salitang hindi nito kayang hulaan.
Ang mga pangalan at teknikal na termino ang mga error na hindi kayang ayusin ng konteksto, dahil madalas lumitaw ang pangalan nang isang beses lang, at walang nakapaligid na magpapahula rito. Nalulutas ito ng isang reference script: bigyan ang sistema ng speech, mga slide o listahan ng mga pangalan at termino bago magsimula, at mas may prayoridad ang mga salita nito kaysa sa narinig ng engine na mali. Habang nagre-record, sinusundan ng script ang transcript na parang teleprompter, kaya nakikita ng host kung gaano na kalayo ang narating ng engine. Sakop ng script ang mga salitang kaya mong hulaan; ang maingay na audio at mga accent ang nagbubunga ng mga salitang hindi mo mahuhulaan.
May ilang error na tao lang sa kuwarto ang makakakita. Hinahayaan ng manual corrections ang host na isulat muli ang anumang salita o linya habang buhay pa ang transcription, at makikita ng bawat listener sa broadcast ang pagbabago. Itinuturo ng sistema sa host ang malamang na mga kandidato: maaaring kulayan at salungguhitan ang mga salitang hindi sigurado ang engine, at maaaring isa-isahin ng host ang mga hindi tiyak na segment sa halip na basahing muli ang buong transcript. Sa pamamagitan ng API, inililista ng GET /v1/recordings/{id}/corrections ang mga correction ng isang recording at inuundo ng POST /v1/corrections/{id}/revert ang isa; tingnan ang API reference. Pero kahit ang taong nasa kuwarto ay hindi kayang itama ang linyang walang nakarinig.
Tinatanggap ng huling layer na may audio na hindi na mababawi. Kapag mas mababa sa confidence threshold ng transcription ang score ng isang linya (confidence.hideBelow, 0.60 bilang default), ang nakikita ng mga listener ay "Audio unclear" sa halip na hula, at hindi kailanman binabasa nang malakas ang linya. Nawawalan ng linya ang mambabasa; hindi sila nakakakuha ng gawa-gawang linya.
Ang parehong mga tanong na humubog sa mga layer na ito ay gumagana rin sa anumang accuracy claim ng vendor, kasama na ang sa amin.
Maikling checklist para basahin ang anumang accuracy claim:
Hindi naglalathala ang VocalStack ng internal na WER figure, dahil sa unang dahilang nabanggit: ilalarawan lang nito ang test set namin, hindi ang audio mo. Patuloy naming sinusukat ang accuracy. Kapag inihahambing namin ang ibang sistema, ginagamit namin ang nailathalang independent na benchmark at mga figure na inilathala ng vendor, hindi kailanman pribadong test. Ang iba ay para sa sarili mong audio ang magpasya.