De dictatie-app die werkt wanneer het internet dat niet doet

Clouddictatie stopt met het netwerk. Keebye draait speech-to-text on-device: geen internet nodig, audio blijft op je Mac, netwerkstoringen deren niet.

Teodor Deleanu10 juli 20267 min leestijd

Sommige klachten duiken pas op wanneer er iets stukgaat, en daarom onderschat je ze makkelijk tot het jou overkomt: clouddictatie hangt af van het netwerk. Een storing bij de aanbieder, en je dicteertoets kan niets meer. Hotelwifi die wegvalt, en een zin verdwijnt in een draaiend wieltje. Een vliegtuig. Een treintunnel. Een VPN die op precies het verkeerde moment opnieuw onderhandelt. Dit is geen defect van één product; het is wat het betekent om van een rondgang afhankelijk te zijn.

Het wrede eraan is wát er faalt. Gaat je notitie-app plat, dan open je een tekstbestand. Gaat je dictatie plat, dan verlies je een invoermethode — het ding waar je spiergeheugen omheen had gebouwd, middenin een zin, meestal terwijl je handen met iets anders bezig waren. Dat was nu net de hele reden dat je aan het dicteren was.

Onder de beschikbaarheidsklacht ligt een privacyvraag: verlaat je stemaudio de machine? In een cloudtranscriptiepad reizen opnames van jou terwijl je hardop denkt — klantnamen, onuitgebrachte functies, het beveiligingsprobleem dat je aan een teamgenoot beschrijft — naar andermans infrastructuur om tekst te worden. Dat pad kan bovendien afhangen van sessies, accounts en beschikbaarheid van diensten buiten jouw controle.

Ik bouwde Keebyes antwoord hierop voordat ik het als functie kon verwoorden, want mijn eigen eis was bot: het moest werken met de wifi uit. Zo ziet dat er in de praktijk uit, en dit kost het.

Waarom clouddictatie tot nul faalt

Het loont om het mechanisme op categorieniveau uit te schrijven, want het verklaart waarom deze klacht nooit helemaal verdwijnt, hoe goed de producten ook worden.

Een clouddictatielus heeft minimaal vier schakels: audio opnemen op jouw machine, hem naar een server sturen, daar inferentie draaien, tekst terugsturen. Elke schakel is een afhankelijkheid — jouw netwerk, hun netwerk, hun authenticatielaag, hun capaciteit, hun uptime. De keten is meestal in orde. Maar breekt er één schakel, dan breekt de hele lus, en hij breekt tot nul. Niet "langzamer", niet "minder nauwkeurig" — er komt niets aan bij je cursor. Degradatie zou te verdragen zijn; dictatie degradeert tot stilte.

Aanbieders kunnen zich hier hard tegen wapenen, maar ze kunnen geen schakels repareren die ze niet bezitten: de hotelrouter, de vlucht, jouw bedrijfs-VPN, het backbone-incident tussen jou en hen. Een tool waarvan de beschikbaarheid van meerdere systemen afhangt, kan uitvallen zodra één daarvan onbereikbaar is.

Wat gebeurt er als er geen cloud is om op terug te vallen?

Keebyes architectuur beantwoordt de vraag door hem weg te nemen. Speech-to-text draait volledig on-device — ONNX-modellen, lokale inferentie, op het silicium van je eigen Mac. Er zijn nul netwerkaanroepen in het dictatiepad. Niet "we beperken ze", niet "we bundelen ze" — nul. Er is ook geen telemetrie. Geen enkele. Wanneer je de toets ingedrukt houdt en spreekt, verlaat er geen pakket de machine namens jou.

Ik wil het architecturale punt onderstrepen, want daarin verschilt dit van een "offlinemodus". Een offlinemodus is een terugval: het normale pad gaat naar de cloud, en wanneer de cloud onbereikbaar is, neemt een uitgeklede lokale route het over — als de app het op tijd merkt, als de lokale route wordt onderhouden, als de overdracht middenin een zin lukt. Keebye heeft zo'n overdracht niet, omdat er geen cloudpad is om vanaf over te dragen. Lokale inferentie is niet het noodplan; het is het enige plan. Een storing verderop in de keten kan het niet breken, om dezelfde reden dat een stroomstoring in een ander land je bureaulamp niet uitzet. Immuniteit door constructie, niet door terugval.

Hier wordt ook de stillere klacht beantwoord, zonder instellingenscherm. Je audio verlaat de machine nooit — niet versleuteld onderweg, niet geanonimiseerd, gewoon nooit verstuurd, want er is niets om hem naartoe te sturen. Zet je dictatiegeschiedenis aan, dan wordt er alleen tekst opgeslagen, in een lokale SQLite-database op je eigen schijf. (Die geschiedenis is een verhaal op zich over dagelijks gemak — de terugkerende klacht "waar is mijn dictatie gebleven?" — waar we over schreven in Je dictatie hoort nooit zomaar te verdwijnen.) En de broosheid van accounts en sessies verdwijnt samen met de accounts: er is geen cloudsessie die in het dictatiepad kan verlopen, dus er staat geen herauthenticatie tussen jou en een werkende hotkey.

De ene keer dat je wél internet nodig hebt

Verplichte eerlijkheid, onomwonden: de modellen moeten op de een of andere manier op je machine komen. Bij de eerste start downloadt Keebye zijn spraakmodel — ruwweg 700 MB voor de Engelse engine, en zo'n 1,3 GB als je de meertalige engine inschakelt. Dat is een echte download, één keer per engine, en daar heb je internet voor nodig.

Daarna staan de modellen op schijf en draait transcriptie er lokaal tegenaan, met of zonder netwerk, tot je ze verwijdert of vervangt. Maar valt die eerste start in het vliegtuig, dan heb je pech tot je landt — doe de setup vóór je reist, niet tijdens. Ik vertel je dat liever zelf dan dat je het boven de Atlantische Oceaan ontdekt.

De nauwkeurigheidsvraag, eerlijk beantwoord

De download is de kleine kanttekening. Dit is de grotere, want on-device tools slaan hem graag over.

De grootste cloudmodellen kunnen nauwkeuriger zijn dan een on-device model. Een model dat een serverrack vult heeft capaciteit die een bestand van 700 MB niet heeft, en anders beweren zou je intelligentie beledigen. Wat ik wél zeg — en wat ik geloof na met allebei geleefd te hebben — is dat het gat flink is versmald, en belangrijker nog: de faalpatronen verschillen in aard. De slechtste dag van een on-device model is een verkeerd verstaan woord dat je corrigeert. De slechtste dag van een cloudmodel is nul output, want zijn nauwkeurigheid wordt vermenigvuldigd met zijn beschikbaarheid, en beschikbaarheid is de term die in de trein naar nul gaat. Welk faalpatroon je liever bezit hangt af van je dag; die van mij heeft te veel treinen erin.

Het is vandaag alleen voor macOS, en het is early access. Geen Windows-versie, en de ruwe randen die early access impliceert. Is jouw setup Windows-first, dan is het eerlijke antwoord dat Keebye je nog niet kan helpen.

Weeg je dit af tegen een tool die je al gebruikt, dan zijn de vergelijkingspagina's de onpartijdige versie van dit betoog. Keebye vs Superwhisper vergelijkt twee producten met on-device transcriptiepaden; Keebye vs Wispr Flow behandelt de keuze tussen lokaal en cloud. En is het alternatief dat je overweegt de dicteerfunctie die in macOS is ingebouwd, dan behandelt spraakdictatie voor de Mac wat de ingebouwde tool goed doet en waar Keebye van afwijkt.

Beschikbaarheid is een functie

De dictatiecategorie heeft jaren geconcurreerd op nauwkeurigheidspercentages, en nauwkeurigheid telt. Maar de klacht die mensen daadwerkelijk naar een andere tool drijft is zelden "hij verstond me een keer verkeerd". Het is "hij deed het niet meer, alweer, en ik weet niet waarom, en de oplossing hield in dat ik ergens moest inloggen". Beschikbaarheid — saaie, onglamoureuze beschikbaarheid — is de functie die je alleen als afwezigheid opmerkt.

De manier om een invoermethode net zo betrouwbaar te maken als een toetsenbord, is hem dezelfde afhankelijkhedenlijst te geven als een toetsenbord: de machine voor je, en verder niets. Dat is het hele ontwerp.

Keebye is in early access voor macOS. Start hieronder je gratis proefperiode, doe de download bij de eerste start terwijl je nog internet hebt, en ga daarna de treintunnel in — of zet gewoon de wifi uit — en dicteer dezelfde zin opnieuw.

Blijf dicteren als het netwerk wegvalt

Start je gratis proefperiode, download het model één keer, en test dezelfde prompt met de wifi uit.

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.

Lees verder