WER ohodnotí špatné jméno, špatné číslo i vynechané „ne“ stejně jako vynechané „a“. Hodnoťte systém přepisu podle toho, jaké chyby zachytí a zda vidíte jeho opravy, ne podle hlavního čísla.
Míra chybovosti slov (WER) je standardní měřítko pro rozpoznávání řeči. Vezměte referenční přepis, který člověk zkontroloval, a porovnejte s ním výstup stroje slovo po slovu. Počítejte tři druhy chyb: záměny (špatné slovo), vložení (slovo, které nikdo neřekl) a vynechání (chybějící slovo). Sečtěte je a vydělte počtem slov v referenčním přepisu.
WER = (záměny + vložení + vynechání) / počet slov v referenčním přepisu
Zarovnání se neděje od oka. Oba texty se zarovnají podle minimální editační vzdálenosti (Levenshteinovy vzdálenosti, použité na slova místo na písmena): ze všech možných způsobů, jak spárovat výstup s referencí, hodnotitel vybere ten s nejmenším počtem editací a ty spočítá. Protože se vložení počítají a jmenovatelem je délka reference, může WER překročit 100 procent: model, který naplní tichou minutu textem, dopadne hůř než ten, který nenapíše nic.
Předpokládejme, že referenční věta je „Sejdeme se s Dr Okaforem v devět ve čtvrtek“, devět slov, a stroj napíše „Sejdeme se s doktorem Vokalem v devět ve úterý“. To jsou tři záměny (Dr, Okafor, čtvrtek) z devíti slov: WER 33 procent. Dvě třetiny slov jsou správně, a přesto jste na špatné schůzce ve špatný den. Kdyby byl špatně jen čtvrtek, skóre by bylo 11 procent. Verze, kde jsou všechna slova správně, ale navíc je slyšet „ehm“, které nikdo neřekl, také dostane 11 procent, protože vložení se počítá stejně jako záměna.
Před počítáním se oba texty obvykle normalizují a volby provedené v tomto kroku posouvají skóre stejně jako samotný model. Je „Dr“ totéž slovo jako „doktor“? Je „devět“ totéž co „9“? Záleží na velkých písmenech a interpunkci? Přísné hodnocení by označilo „Dr“ proti „doktor“ jako záměnu. Většina zveřejněných skóre převádí vše na malá písmena, odstraňuje interpunkci a všechna čísla zapisuje jednotně, buď slovy, nebo číslicemi, dříve než texty porovná. Udávaná hodnota dodavatele proto tiše závisí na normalizátoru, který nevidíte. Jazyky psané bez mezer mezi slovy, jako čínština, japonština a thajština, nemají čistou hranici slov, takže se místo toho hodnotí mírou chybovosti znaků (CER): stejným vzorcem, ale aplikovaným na znaky.
Z toho plynou dvě věci. Za prvé, WER 5 procent znamená jedno slovo z dvaceti, což je v hodinové přednášce několik stovek slov. Pro srovnání: lidští přepisovatelé bývají uváděni zhruba na 4 až 5 procent u konverzační řeči a často citovaný výsledek z roku 2017 na telefonním korpusu Switchboard udává stroj přibližně na 5.1 procenta, ačkoli obě čísla závisí na zvuku a pravidlech hodnocení. Za druhé, číslo zcela závisí na testovacím zvuku: čistě čtená řeč dá jednu hodnotu, hlučný panel s přízvuky a překřikováním úplně jinou. Udávaná WER popisuje testovací sadu dodavatele stejně jako jeho systém.
To je počítání. Co nechává stranou, je cena každé chyby pro čtenáře.
WER považuje každé slovo za rovnocenné. Čtenáři ne:
Každá z těchto chyb je v sloupci WER jedna nebo dvě chyby. Ve sloupci čtenáře sahají od ničeho až po jinou schůzku v jiný den. Otázka tedy není jen „jaká je míra chyb“, ale také „jaké druhy chyb to jsou a co je zachytí“.
Několik vrstev zachytí to, co rozpoznávání splete, a každá změna se zaznamenává, aby ji šlo zkontrolovat a vrátit. U živého přepisu se to děje, zatímco text ještě přichází: každý řádek se nejprve zobrazí jako koncept, který se ještě může změnit, a pak se stane konečným (Latence živého překladu vysvětlena vysvětluje proč).
Některé chyby odpovídají zvuku, ale ne větě: „dobré“ tam, kde věta potřebuje „dobře“. Ty lze zachytit podle kontextu a oprava se čtenářům zobrazí jako viditelná aktualizace (transcript.amended v API), ne jako tiché přepsání. Kontext pomáhá u slov, která věta dokáže předpovědět. U těch, která předpovědět nelze, nepomáhá.
Jména a odborné termíny jsou chyby, které kontext neopraví, protože jméno se často objeví jen jednou a kolem něj není nic, z čeho by se dalo předpovědět. Referenční podklad to řeší: systému dáte před začátkem řeč, prezentaci nebo seznam jmen a termínů, a jeho slova mají přednost před tím, co motor špatně přeslechl. Během nahrávání podklad sleduje přepis jako teleprompter, takže moderátor vidí, jak daleko motor došel. Podklad pokryje slova, která lze předpokládat; hlučný zvuk a přízvuky vytvoří ta, která předpokládat nelze.
Některé chyby vidí jen člověk v místnosti. Ruční opravy umožní moderátorovi přepsat libovolné slovo nebo řádek, zatímco přepis ještě běží, a každý posluchač vysílání vidí změnu. Systém ukazuje moderátorovi pravděpodobné kandidáty: slova, u kterých si motor nebyl jistý, lze obarvit a podtrhnout, a moderátor může procházet nejistými úseky jeden po druhém, místo aby znovu četl celý přepis. Přes API GET /v1/recordings/{id}/corrections vypíše opravy nahrávky a POST /v1/corrections/{id}/revert jednu z nich vrátí zpět; viz referenci API. I člověk v místnosti ale nemůže opravit řádek, který nikdo neslyšel.
Poslední vrstva připouští, že některý zvuk nelze obnovit. Když řádek skóruje pod prahem jistoty přepisu (confidence.hideBelow, výchozí hodnota 0.60), posluchači místo něj uvidí „Nejasný zvuk“ a řádek se nikdy nepřečte nahlas. Čtenáři přijdou o řádek, ale nedostanou vymyšlený.
Stejné otázky, které formovaly tyto vrstvy, platí pro tvrzení o přesnosti kteréhokoli dodavatele, včetně nás.
Krátký kontrolní seznam pro čtení každého tvrzení o přesnosti:
VocalStack nezveřejňuje interní hodnotu WER z prvního důvodu výše: popisovala by naši testovací sadu, ne váš zvuk. Přesnost měříme průběžně. Když srovnáváme jiné systémy, používáme zveřejněné nezávislé benchmarky a čísla zveřejněná dodavateli, nikdy soukromé testy. Zbytek ať rozhodne váš vlastní zvuk.