Din diktering bør aldrig bare forsvinde

Du dikterer en lang tanke, indsættelsen fejler, og teksten er væk. Hvorfor dikteringsapps mister dine ord, og den lokale teksthistorik Keebye gemmer.

Teodor Deleanu10. juli 20267 min læsetid

Halvfems sekunders præcis-som-jeg-mente-det — en fuld PR-beskrivelse, et omhyggeligt svar til en kunde — og så går noget småt galt i indsættelsesøjeblikket. Målvinduet havde ikke fokus. Indsættelsen tog ikke. Appen hikkede. Og teksten er bare væk. Ikke gemt et sted. Ikke liggende i en buffer. Væk. Enhver dikteringspipeline, der behandler indsættelsen som transskriptionens eneste kopi, har den fejltilstand.

Det, der følger, er en helt bestemt og uforholdsmæssig vrede, og jeg mener, den er berettiget. De tabte sekunder er ikke pointen. Pointen er, at du gjorde arbejdet — du formede tanken, du sagde den godt, maskinen transskriberede den endda korrekt — og værktøjet ødelagde resultatet på grund af et leveringsproblem. Andet take er aldrig lige så godt som det første. Alle, der har dikteret et afsnit igen efter hukommelsen, ved, at man ikke gengiver det; man producerer en fladere fætter til det.

Jeg har selv mistet dikteringer på den måde, i andre værktøjer, før Keebye fandtes. Det er en af de små nødsituationer, appen blev bygget omkring.

Hvorfor forsvinder dikteret tekst bare?

Det er ikke én leverandørs fejl. Det er en designbeslutning på kategoriniveau, og det er værd at forstå, hvorfor kategorien traf den.

En dikteringsapp er et rør, ikke en editor. Tale går ind i den ene ende; tekst kommer ud i den anden, ind i en andens vindue — en terminal, et Slack-felt, et Google-dokument. Der er intet dokument af dens eget, og det er præcis det, der gør de værktøjer usynlige og hurtige. Men det betyder, at transskriptionen ofte eksisterer i præcis ét øjeblik: indsættelsen. Og indsættelsen er det enkeltvis mest skrøbelige trin i hele pipelinen. Den afhænger af, hvilket vindue der har fokus i leveringens millisekund, af at udklipsholderen ikke bliver kapret af en anden app, af at tilladelserne til Tilgængelighed er i humør, af at målprogrammet overhovedet accepterer syntetisk input. Fejler noget af det, har et rent rør intet bagved. Vandet er på gulvet.

Der er også en principiel grund til, at værktøjer har været tilbageholdende med at gemme kopier: en log over alt, du har dikteret, er følsom. Dine dikteringer er dine beskeder, dine prompts, dine halvformede beslutninger. En leverandør, der gemmer dem — især noget sted i nærheden af en sky — har skabt et ansvar, og den nemme måde at undgå ansvaret er at gemme ingenting. Brugere arver den forsigtighed som flygtighed: den sikreste diktering er, set fra leverandørens stol, den der aldrig eksisterede.

Jeg forstår logikken. Jeg mener bare, den optimerer for den forkerte part. Fejltilstanden ved at gemme lokal historik er en fil på din egen disk. Fejltilstanden ved at gemme ingenting er, at dit arbejde fordamper, fordi et vindue mistede fokus.

Hvad Keebye gemmer, og hvor

Keebye gemmer en historik, slået til som standard, og her er præcis, hvad det betyder — hverken mere eller mindre.

Med historik slået til bliver hver fuldført diktering skrevet til en lokal SQLite-database på din Mac (rusqlite, WAL-tilstand, for dem der går op i rørføringen). Filen ligger i app-support-mappen — com.keebye.app/keebye.db — og den forlader aldrig maskinen. Der er ingen synkronisering, ingen upload, ingen konto den er knyttet til. Det er en fil, på din disk, ejet af dig.

Gendannelse er designet omkring de to måder, du faktisk mister tekst på. Det almindelige tilfælde — indsættelsen fejlede lige nu, for et sekund siden — har den hurtigste vej: menuen i menulinjen har punktet Copy Last Dictation. Klik på det, din seneste diktering ligger i udklipsholderen, sæt den ind, hvor den skulle have været, og gå videre. Det sjældnere tilfælde — »jeg dikterede noget tirsdag, og jeg har brug for det tilbage« — går gennem Dictation History…, et vindue med hele listen: søgbar, med sletning per post og en ryd alt, når du vil have tavlen tørret ren.

Opbevaringen er 30 dage, håndhævet automatisk. Oprydningen kører, når databasen åbner, og igen efter hver indsættelse, så vinduet er reelt 30 dage og ikke »30 dage, cirka, når vi lige når det«. Og vil du have den gamle flygtige adfærd — det bør nogle, og jeg kommer til hvem — er historik en indstilling (history_enabled), og slår du den fra, bliver der slet ikke skrevet noget.

Kun tekst. Aldrig lyd.

Den del, jeg går mest op i, er, hvad historikken ikke er. Den er kun tekst. Keebyes historik-skema har ingen kolonne til lyd — ikke en indstilling for lydopbevaring, der som standard er slået fra, men slet ingen kolonne. Selve optagelserne bliver aldrig gemt. Det er strukturelt, ved design: en transskription af »svar Andrei, at migrationen skrider en uge« er følsom nok; lyden af din stemme, der siger det, med tidsstempel, er en anden slags artefakt, og jeg ville ikke have, at appen overhovedet skulle være i stand til at samle den.

Endnu en nuance, der betyder mere end sit ordantal: dikterer du i et sikret felt — et input i adgangskodestil — optager historikken det ikke. Det ene sted, hvor selv et tekstspor er forkert, er det ene sted, vi ikke fører et.

Det er den samme holdning som i resten af appen — tale-til-tekst kører on-device, hvilket vi har skrevet om i sammenhæng med at diktere på sit eget sprog — men historikken er dér, hvor holdningen bliver testet, for historikken er det eneste sted, Keebye overhovedet gemmer dine ord. Lokal, kun tekst, selvslettende føltes som den form, der gør sig fortjent til at være slået til som standard.

De ærlige grænser

Ærlighedsafsnittet, som altid.

Du kan ikke lytte igen. Kun tekst skærer begge veje. Var transskriptionen forkert — modellen hørte et navn galt, mishandlede et tal — bevarer historikken trofast den forkerte tekst, og den lyd, der kunne afgøre striden, er væk ved design. I de fleste gendannelsestilfælde betyder det ikke noget; fejlen var indsættelsen, ikke transskriptionen. Men ville du have dikteringshistorik som et arkiv af talememoer, er det her ikke det, med vilje.

Tredive dage er tredive dage. Historikken er et sikkerhedsnet, ikke et arkiv. Betyder en diktering noget ud over en måned, hører den hjemme i det dokument, du dikterede den ind i, ikke i appens database. Oprydningen spørger ikke.

Kun lokalt betyder kun lokalt. Din historik følger dig ikke på tværs af maskiner. Den diktering, du lavede på stationæren, kan ikke gendannes fra laptoppen. Jeg præsenterer det som en funktion for privatliv, og det er det — intet synkroniserer, fordi intet bliver sendt — men jeg vil ikke lade som om, det ikke også er en begrænsning. Det er begge dele. Du bør vide, hvilken af delene det er for dig, før du læner dig op ad det.

Og grænsetilfældet: er du den, hvis trusselsmodel siger intet spor overhovedet, så slå historikken fra. Det er én indstilling, og appen respekterer den fuldt ud. Slået til som standard er det rigtige valg for de fleste brugere, som hellere vil have sidste tirsdags afsnit tilbage; det bør ikke være en fælde for resten.

Arbejde bør ikke have ét enkelt fejlpunkt

Den dybere grund til, at funktionen findes: jeg kører min dag som parallelle lanes — agenter, der bygger i nogle vinduer, mennesker, der venter i andre — og stemmen er den kanal, der fodrer dem alle. Det workflow er hele præmissen i Sådan styrer du Claude Code med stemmen. En kanal, der en gang imellem ødelægger sin egen last, er ikke en kanal, man bygger en arbejdsdag på. Udviklere forventer veje tilbage — fortryd, logs, reflogs, papirkurv — og alligevel viser mange dikteringsflows ingen tilsvarende, når en indsættelse fejler.

Vejer du værktøjer i denne kategori, er vores sammenligninger ærlige om, hvor andre også skinner: Keebye vs. Superwhisper og Keebye vs. Wispr Flow. Og forsvindende tekst har en søsterklage — at det første ord i din diktering bliver ædt, før mikrofonen vågner — som vi har skrevet om i derfor æder dikteringsapps dit første ord.

Keebye er i early access til macOS. Start din gratis prøveperiode nedenfor, dikter et afsnit, ram målvinduet forkert med vilje, og brug så Copy Last Dictation til at få teksten tilbage. Forkert fokus koster stadig et gendannelsestrin; det behøver ikke længere at koste tanken.

Gør den næste lange diktering mulig at gendanne

Start din gratis prøveperiode, og test Copy Last Dictation, før du betror stemmen en lang PR-beskrivelse.

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.

Læs videre