Grai · Studiu

Cum se măsoară
agenții vocali

Și de ce cifrele publicate de furnizori nu se pot compara între ele — nici măcar când poartă același nume.

Teza

Același nume, mărimi diferite

Un furnizor publică „sub 300 ms". În același articol dă și măsurătoarea proprie: 0,9–1,4 secunde. Nu e o contradicție. Sunt două mărimi diferite, cu același nume.

„Sub 300 ms" măsoară inferența modelului pe hardware ideal — de la ultimul eșantion intrat în rețea până la primul ieșit. Cealaltă cifră pornește cronometrul de la server, uneori fără rețea, aproape niciodată cu tamponul de redare inclus. Niciuna nu e greșită. Doar că nu măsoară același lucru, iar diferența e mai mare decât întreaga diferență dintre furnizori.

Confirmare externă, august 2026

Hume, companie de voce AI, a publicat pe 21 august 2026 analiza „Measuring benchmark optimization in speech recognition”, care ajunge la aceeași concluzie pe partea de recunoaștere: modelele nu devin doar mai bune, ci și optimizate pentru testele în sine. După analiza lor, 6 din 11 modele deschise reproduc erorile din transcrierile de referință VoxPopuli, chiar și când audio-ul spune altceva — adică au văzut testul, nu doar au învățat sarcina.

Una din metodele lor de detecție e elegantă: taie numerele din audio și verifică dacă modelul le scrie oricum. Pe LibriSpeech, unele modele o fac în 30–40% din cazuri. Dacă da, nu a auzit — și-a amintit. Cifrele sunt declarate de Hume, pe engleză; nu le-am reprodus.

Capcane

Șase feluri de a măsura greșit

Primele cinci sunt greșeli pe care le-am făcut noi, în propriile măsurători, și le-am prins ulterior; a șasea e una la care suntem expuși chiar acum. De aceea sunt scrise aici cu exemplu, nu ca listă abstractă.

Capcana 1

Unde pornește cronometrul

Am publicat intern „455 ms până la răspuns". Cifra pornea cronometrul după recunoaștere. Măsurat la client, de la ultimul sunet pe care îl scoate omul — singurul punct pe care îl simte omul — cifra reală era 1235 ms până la primul sunet și 2667 ms până la primul sunet al răspunsului (p50, n=29, cu umplutura pornită). Până la răspuns, de aproape șase ori mai mult.

Întrebarea care sparge orice comunicat: include decizia de sfârșit de tură? Într-o a doua rulare, cu umplutura oprită (p50, n=17), acea decizie singură e 586 ms din 3172 ms până la primul sunet — mai mult decât întreaga cifră pe care o publicasem. Cele două rulări răspund la întrebări diferite și nu se adună între ele.

Capcana 2

Primul sunet nu e răspunsul

Multe sisteme scot un „îhî" sau o punte de umplere care acoperă așteptarea. Dacă cronometrul se oprește la primul sunet, cifra măsoară cât de repede sistemul scoate un zgomot, nu cât de repede răspunde. Diferența poate depăși o secundă.

Capcana 3

Normalizarea care ascunde exact defectul care contează

Standardul de facto pe seturile publice scrie numerele în litere înainte de comparație. Un model care aude „două mii douăzeci și șase" în loc de „2026" nu e penalizat.

La noi, diferența e măsurabilă: enunțurile cu cifre dau 29,65% normalizat și 36,94% brut — 7,3 puncte ascunse de normalizare. Pentru un agent care ia ore, prețuri și numere de telefon, aia e fix partea care contează. De aceea publicăm ambele coloane.

Capcana 4

Aceeași denumire de set, alt set

Două pagini de furnizor publică cifre pentru aceleași două modele terțe și nu coincid: 12,31% față de 13,0% pe unul, 33,89% față de 35,4% pe celălalt. Între două „FLEURS română" publicate există 0,7–1,5 puncte de diferență doar din partiție și normalizare. O lucrare (arXiv 2509.14128, Tab. 11) dă pentru Whisper large-v3 chiar 8,24%.

Consecința practică: orice diferență sub două puncte între doi furnizori nu înseamnă nimic fără rularea pe același material.

Capcana 5

Compararea a două sarcini diferite

Un model care primește fișierul întreg, offline, cu 1,5 miliarde de parametri, într-un centru de date, nu rezolvă aceeași problemă ca unul care scoate text parțial în timp ce omul încă vorbește, pe un Mac de birou, cu 0,6 miliarde.

Am făcut greșeala asta pe propriul nostru site: am pus cele două cifre alături fără condițiile de măsurare. Comparația ieșea împotriva noastră, și era la fel de nevalidă ca una care ar fi ieșit în favoarea noastră. Tot aici intră o limbă pusă în clasamentul alteia: rusa nu stă în tabelul FLEURS română.

Capcana 6

Testul e în datele de antrenare — și noi suntem expuși

Un model care a văzut setul de test la antrenare scoate o cifră mai bună pe acel set decât pe audio nou. Modelul nostru de recunoaștere, Nemotron, are FLEURS declarat în datele lui de antrenare, iar cifra noastră de titlu, 26,15%, e tot pe FLEURS. Nu știm dacă a văzut și partiția de test; cifra poate fi optimistă. Răspunsul nostru e o probă de memorare pe română: tăcem numerele din audio și căutăm erorile din referință reproduse de model. Până la rezultat, FLEURS rămâne punte de comparație cu cifrele publicate, nu judecător; judecătorul va fi un set românesc înregistrat de noi, pe care modelul nu l-a văzut.

Ce lipsește

Ce nu măsoară nimeni

Etaloanele existente măsoară recunoașterea și, mai rar, latența. Aproape nimic din ce face un agent vocal să fie utilizabil nu are un etalon public.

Calitatea deciziei de tură

Cât de des taie omul la mijlocul frazei, și cât de mult îl face să aștepte degeaba. Două erori opuse, care nu se pot optimiza simultan — deci o singură cifră nu spune nimic fără cealaltă.

Comportamentul la întrerupere

Cât durează oprirea, și — mult mai important — ce rămâne în memoria modelului după. Nimeni nu publică asta.

Recuperarea din neînțelegere

Ce face sistemul când n-a înțeles a doua oară la rând. Un etalon de WER nu vede diferența dintre un sistem care cere reformularea și unul care inventează.

Cifrele, separat de restul

Ore, prețuri, numere de telefon, date. Sunt sub 20% din cuvinte și peste jumătate din valoarea practică a unei conversații de afaceri.

Comportamentul la suprapunere

Când doi oameni vorbesc deodată, intenționat sau nu. Toate seturile publice sunt monolog.

Româna, deloc

Din etaloanele de conversație existente, niciunul nu are română. Cifrele pe care le citim despre română vin toate din seturi de recunoaștere pe enunțuri citite.

Propunere

Cum ar arăta un etalon corect pentru română

Ce facem noi în lipsa lui

Publicăm toate măsurătorile cu eșantionul, geometria, intervalul de încredere și comanda de reproducere. Marcăm ce e măsurat de noi și ce e declarat de alții. Punem condițiile lângă fiecare cifră. Și publicăm cifrele care ne fac să arătăm rău — pentru că un etalon din care lipsesc rezultatele proaste nu e un etalon, e o broșură.

Cifrele noastre, cu metodologia

Toate măsurătorile, cu eșantion, geometrie și interval de încredere — inclusiv cele în care pierdem.