Aplicația de dictare care merge fără internet

Dictarea în cloud cade cu rețeaua. Keebye face speech-to-text on-device: fără internet, audio rămâne pe Mac, iar penele de rețea nu o opresc.

Teodor Deleanu10 iulie 20267 min de citit

Unele plângeri apar abia când lucrurile se strică, motiv pentru care e ușor să le subestimezi până ți se întâmplă ție: dictarea în cloud depinde de rețea. O pană la furnizor și tasta ta de dictare nu mai poate face nimic. Wi-Fi de hotel care pică și o propoziție poate dispărea într-un spinner. Un avion. Un tunel de tren. Un VPN care renegociază exact în momentul nepotrivit. Ăsta nu e un defect al unui singur produs; asta înseamnă să depinzi de un dus-întors.

Cruzimea stă în ce anume cedează. Dacă aplicația de notițe cade, deschizi un fișier text. Dacă dictarea cade, pierzi o metodă de input — lucrul în jurul căruia îți construiseși memoria musculară, la mijlocul unei propoziții, de obicei cu mâinile ocupate cu altceva. Exact ăsta era motivul pentru care dictai.

Sub plângerea despre disponibilitate stă o întrebare de confidențialitate: părăsește audio-ul vocii tale mașina? Într-o cale de transcriere în cloud, înregistrările în care gândești cu voce tare — nume de clienți, funcții nelansate, problema de securitate pe care i-o descrii unui coleg — călătoresc către infrastructura altcuiva ca să devină text. Calea aceea poate depinde și de sesiuni, conturi și de o disponibilitate a serviciului pe care nu o controlezi.

Am construit răspunsul lui Keebye la asta înainte să-l articulez ca funcție, pentru că propria mea cerință era brutală: trebuia să funcționeze cu Wi-Fi-ul oprit. Iată cum arată asta de fapt și cât costă.

De ce dictarea în cloud eșuează la zero

Merită detaliată mecanica la nivel de categorie, pentru că explică de ce plângerea asta nu dispare complet, oricât de bune ar deveni produsele.

O buclă de dictare în cloud are minimum patru verigi: captează audio pe mașina ta, îl trimite la un server, rulează inferența acolo, trimite textul înapoi. Fiecare verigă e o dependență — rețeaua ta, rețeaua lor, stratul lor de autentificare, capacitatea lor, uptime-ul lor. De regulă lanțul e în regulă. Dar când se rupe orice verigă, se rupe toată bucla, și se rupe la zero. Nu „mai lent", nu „mai puțin precis" — nu ajunge nimic la cursorul tău. Degradarea ar fi tolerabilă; dictarea degradează până la tăcere.

Furnizorii pot construi mult împotriva acestui lucru, dar nu pot repara verigi pe care nu le dețin: routerul de hotel, zborul, VPN-ul corporativ, incidentul de backbone dintre tine și ei. Un instrument a cărui disponibilitate depinde de mai multe sisteme poate cădea când oricare dintre ele e indisponibil.

Ce se întâmplă când nu există niciun cloud din care să revii?

Arhitectura lui Keebye răspunde la întrebare eliminând-o. Speech-to-text rulează complet on-device — modele ONNX, inferență locală, pe siliciul propriului tău Mac. Există zero apeluri de rețea în calea dictării. Nu „le minimizăm", nu „le grupăm" — zero. Nici telemetrie nu există. Deloc. Când ții tasta apăsată și vorbești, niciun pachet nu părăsește mașina în numele tău.

Vreau să subliniez punctul arhitectural, pentru că asta e diferența dintre lucrul ăsta și un „mod offline". Un mod offline e o variantă de rezervă: calea normală merge în cloud, iar când cloudul e inaccesibil, preia o cale locală degradată — dacă aplicația observă la timp, dacă acea cale locală e întreținută, dacă predarea funcționează la mijlocul propoziției. Keebye nu are o astfel de predare, pentru că nu are nicio cale de cloud din care să predea. Inferența locală nu e planul de rezervă; e singurul plan. O pană în amonte nu o poate strica din același motiv din care o pană de curent din altă țară nu-ți poate stinge veioza de pe birou. Imunitate prin construcție, nu prin variantă de rezervă.

Aici primește răspuns și plângerea mai discretă, fără vreo pagină de setări. Audio-ul tău nu părăsește niciodată mașina — nu criptat în tranzit, nu anonimizat, pur și simplu niciodată trimis, pentru că nu există unde să fie trimis. Dacă activezi istoricul dictărilor, ce se stochează e doar text, într-o bază de date SQLite locală, pe propriul tău disc. (Istoricul acela e o poveste separată despre calitatea vieții — plângerea recurentă „unde a dispărut dictarea mea?" — pe care am acoperit-o în dictarea ta nu ar trebui să dispară pur și simplu.) Iar fragilitatea de cont-și-sesiune dispare odată cu conturile: nu există nicio sesiune de cloud care să expire în calea dictării, deci nu stă nicio reautentificare între tine și un hotkey funcțional.

Singura dată când chiar ai nevoie de internet

Sinceritate obligatorie, spusă pe față: modelele trebuie totuși să ajungă cumva pe mașina ta. La prima rulare, Keebye își descarcă modelul de speech — aproximativ 700 MB pentru motorul de engleză și în jur de 1.3 GB dacă activezi motorul multilingv. Aia e o descărcare reală, o dată per motor, și ai nevoie de internet pentru ea.

După asta, modelele stau pe disc, iar transcrierea rulează local pe baza lor, cu rețea sau fără, până le ștergi sau le înlocuiești. Dar dacă prima rulare se întâmplă în avion, ai încurcat-o până aterizezi — fă configurarea înainte să pleci, nu în timpul călătoriei. Prefer să auzi asta de la mine decât să o descoperi deasupra Atlanticului.

Întrebarea despre acuratețe, cu răspuns sincer

Descărcarea e avertismentul mic. Iată-l pe cel mai mare, pentru că instrumentelor on-device le place să-l sară.

Cele mai mari modele din cloud pot fi mai precise decât un model on-device. Un model care umple un rack de server are o capacitate pe care un fișier de 700 MB nu o are, iar dacă m-aș preface altfel ți-aș insulta inteligența. Ce am să spun — și ce cred după ce am trăit cu amândouă — e că decalajul s-a îngustat foarte mult și, mai important, că modurile de eșec diferă ca natură. Ziua cea mai proastă a unui model on-device e un cuvânt auzit greșit, pe care îl corectezi. Ziua cea mai proastă a unui model din cloud e zero output, pentru că acuratețea lui se înmulțește cu disponibilitatea lui, iar disponibilitatea e termenul care se duce la zero în tren. Ce mod de eșec ai prefera să deții depinde de ziua ta; a mea are prea multe trenuri în ea.

Este doar pentru macOS azi și e în acces anticipat. Fără build de Windows și cu asperitățile pe care le presupune accesul anticipat. Dacă setup-ul tău e Windows-first, răspunsul sincer e că Keebye nu te poate ajuta încă.

Dacă îl cântărești față de un instrument pe care îl folosești deja, paginile de comparație sunt versiunea echilibrată a acestui argument. Keebye vs Superwhisper compară două produse cu căi de transcriere on-device; Keebye vs Wispr Flow acoperă decizia local versus cloud. Iar dacă alternativa pe care o cântărești e dictarea integrată în macOS, dictare vocală pentru Mac acoperă ce face bine opțiunea integrată și unde diferă Keebye.

Disponibilitatea este o funcție

Categoria dictării și-a petrecut ani întregi concurând pe procente de acuratețe, iar acuratețea contează. Dar plângerea care chiar îi face pe oameni să schimbe instrumentul e rareori „m-a auzit greșit o dată". E „a încetat să mai funcționeze, din nou, și nu știu de ce, iar soluția a implicat să mă loghez undeva". Disponibilitatea — plictisitoarea, nespectaculoasa disponibilitate — e funcția pe care o observi doar prin absența ei.

Modul de a face o metodă de input la fel de fiabilă ca o tastatură e să-i dai aceeași listă de dependențe ca unei tastaturi: mașina din fața ta și nimic altceva. Ăsta e tot designul.

Keebye este în acces anticipat pentru macOS. Începe proba gratuită mai jos, fă descărcarea de la prima rulare cât încă ai internet, apoi intră în tunelul de tren — sau doar oprește Wi-Fi-ul — și dictează aceeași propoziție din nou.

Dictează mai departe când cade rețeaua

Începe proba gratuită, descarcă modelul o dată și testează același prompt cu Wi-Fi oprit.

Start free trial

Early access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.

Citește mai departe