Din diktering ska aldrig bara försvinna

Du dikterar en lång tanke, inmatningen misslyckas, texten försvinner. Varför dikteringsappar tappar ord och vilken lokal, ren texthistorik Keebye sparar.

Teodor Deleanu10 juli 20267 min läsning

Nittio sekunder av exakt-som-jag-menade-det — en fullständig PR-beskrivning, ett omsorgsfullt svar till en kund — och sedan går något litet fel i inmatningsögonblicket. Målfönstret hade inte fokus. Inklistringen tog inte. Appen hickade. Och texten är bara borta. Inte sparad någonstans. Inte liggande i en buffert. Borta. Varje dikteringskedja som behandlar inmatningen som transkriptionens enda kopia har den här felmoden.

Det som följer är en specifik, oproportionerlig sorts ilska, och jag tycker att den är befogad. De förlorade sekunderna är inte poängen. Poängen är att du gjorde arbetet — du komponerade tanken, du sa den bra, maskinen transkriberade den till och med rätt — och verktyget förstörde resultatet över ett leveransproblem. Andra tagningen är aldrig lika bra som den första. Alla som har dikterat om ett stycke ur minnet vet att du inte återskapar det; du producerar en plattare kusin till det.

Jag har förlorat dikteringar på det här sättet själv, i andra verktyg, innan Keebye fanns. Det är en av de små nödsituationer appen byggdes runt.

Varför försvinner dikterad text bara?

Det här är ingen enskild leverantörs bugg. Det är ett designbeslut på kategorinivå, och det är värt att förstå varför kategorin fattade det.

En dikteringsapp är ett rör, inte en editor. Tal går in i ena änden; text kommer ut i den andra, in i någon annans fönster — en terminal, en Slack-ruta, ett Google-dokument. Det finns inget eget dokument, vilket är precis det som gör de här verktygen osynliga och snabba. Men det betyder att transkriptionen ofta existerar i exakt ett ögonblick: inmatningen. Och inmatningen är det enskilt sköraste steget i hela kedjan. Den beror på vilket fönster som har fokus vid leveransens millisekund, på att urklippet inte kapas av en annan app, på att behörigheterna för Hjälpmedel är på gott humör, på att målapplikationen alls accepterar syntetisk inmatning. När något av det fallerar har ett rent rör ingenting bakom sig. Vattnet ligger på golvet.

Det finns också ett principiellt skäl till att verktyg har varit blyga med att behålla kopior: en logg över allt du har dikterat är känslig. Dina dikteringar är dina meddelanden, dina prompter, dina halvformade beslut. En leverantör som lagrar dem — särskilt någonstans i närheten av ett moln — har skapat ett ansvar, och det enkla sättet att undvika ansvaret är att behålla ingenting. Användare ärver den försiktigheten som flyktighet: den säkraste dikteringen, ur leverantörens perspektiv, är den som aldrig existerade.

Jag förstår logiken. Jag tycker bara att den optimerar för fel part. Felmoden hos att behålla lokal historik är en fil på din egen disk. Felmoden hos att behålla ingenting är att ditt arbete avdunstar för att ett fönster tappade fokus.

Vad Keebye behåller, och var

Keebye behåller en historik, påslagen som standard, och här är exakt vad det betyder — varken mer eller mindre.

Med historiken aktiverad skrivs varje slutförd diktering till en lokal SQLite-databas på din Mac (rusqlite, WAL-läge, för den som bryr sig om rörmokeriet). Filen bor i katalogen för appstöd — com.keebye.app/keebye.db — och den lämnar aldrig maskinen. Det finns ingen synk, ingen uppladdning, inget konto den är kopplad till. Det är en fil, på din disk, ägd av dig.

Återställning är utformad kring de två sätt du faktiskt förlorar text på. Det vanliga fallet — inmatningen fallerade just, för en sekund sedan — har den snabbaste vägen: menyn i menyraden har en post som heter Copy Last Dictation. Klicka på den så ligger din senaste diktering i urklippet, klistra in den där den skulle ha hamnat, gå vidare. Det ovanligare fallet — ”jag dikterade något på tisdagen och behöver tillbaka det” — går via Dictation History…, ett fönster med hela listan: sökbar, med radering per post och en rensa-allt för när du vill torka tavlan.

Lagringstiden är 30 dagar, upprätthållen automatiskt. Rensningen körs när databasen öppnas och igen efter varje inmatning, så fönstret är genuint 30 dagar, inte ”30 dagar, ungefär, när vi hinner”. Och om du vill ha det gamla flyktiga beteendet — vissa borde det, och jag kommer till vilka — är historiken en inställning (history_enabled), och att stänga av den betyder att ingenting alls skrivs.

Enbart text. Aldrig ljud.

Den del jag bryr mig mest om är vad historiken inte är. Den är enbart text. Keebyes historikschema har ingen ljudkolumn — inte en inställning för ljudlagring som är avstängd som standard, ingen kolumn. Själva inspelningarna lagras aldrig. Det är strukturellt, av konstruktion: en transkription av ”svara Andrei att migreringen glider en vecka” är känslig nog; ljudet av din röst som säger det, tidsstämplat, är en artefakt av en annan ordning, och jag ville inte att appen skulle vara kapabel att ackumulera det.

En nyans till som betyder mer än sitt ordantal: om du dikterar in i ett säkert fält — ett fält av lösenordstyp — registrerar historiken det inte. Det enda ställe där till och med ett textspår är fel är det enda ställe där vi inte behåller ett.

Det här är samma hållning som i resten av appen — tal-till-text körs på enheten, vilket vi har skrivit om i sammanhanget att diktera på ditt eget språk — men historiken är där hållningen sätts på prov, för historiken är det enda ställe där Keebye alls sparar dina ord. Lokal, enbart text, självraderande kändes som den form som förtjänar att vara påslagen som standard.

De ärliga gränserna

Ärlighetsavsnitt, som alltid.

Du kan inte lyssna igen. Enbart text skär åt båda hållen. Om transkriptionen blev fel — modellen hörde fel på ett namn, manglade ett tal — bevarar historiken troget den felaktiga texten, och ljudet som kunde avgöra tvisten är borta av konstruktion. För de flesta återställningsfall spelar det ingen roll; felet var inmatningen, inte transkriptionen. Men om du ville ha dikteringshistoriken som ett röstmemoarkiv är det inte det, med flit.

Trettio dagar är trettio dagar. Historiken är ett skyddsnät, inte ett arkiv. Om en diktering betyder något bortom en månad är dess hem dokumentet du dikterade den in i, inte appens databas. Rensningen frågar inte.

Enbart lokalt betyder enbart lokalt. Din historik följer dig inte mellan maskiner. Dikteringen du gjorde på stationära datorn går inte att återställa från laptopen. Jag presenterar det här som en integritetsfunktion, och det är det — ingenting synkas för att ingenting överförs — men jag tänker inte låtsas att det inte också är en begränsning. Det är båda. Du bör veta vilket av dem det är för dig innan du förlitar dig på det.

Och gränsfallet: om du är den person vars hotbild säger inget spår alls, stäng av historiken. Det är en inställning, och appen respekterar den fullständigt. Påslagen som standard är rätt val för de flesta användare, som hellre får tillbaka förra tisdagens stycke; det ska inte vara en fälla för de övriga.

Arbete ska inte ha en enda felpunkt

Det djupare skälet till att den här funktionen finns: jag kör min dag som parallella laner — agenter som bygger i vissa fönster, människor som väntar i andra — och rösten är kanalen som matar dem alla. Det arbetsflödet är hela premissen i att styra Claude Code med rösten. En kanal som ibland förstör sin egen last är ingen kanal du bygger en arbetsdag på. Utvecklare förväntar sig återställningsvägar — ångra, loggar, reflogs, papperskorg — men många dikteringsflöden erbjuder ingen motsvarighet när en inmatning fallerar.

Om du väger verktyg i den här kategorin är våra jämförelser ärliga om var andra också glänser: Keebye vs Superwhisper och Keebye vs Wispr Flow. Och försvinnande text har ett syskonklagomål — att dikteringens första ord äts upp innan mikrofonen vaknar — som vi skrivit upp i varför dikteringsappar äter ditt första ord.

Keebye är i tidig åtkomst för macOS. Starta din kostnadsfria provperiod nedan, diktera ett stycke, missa målfönstret med flit, och använd sedan Copy Last Dictation för att återställa texten. Fel fokus kostar fortfarande ett återställningssteg; det behöver inte längre kosta tanken.

Gör nästa långa diktering återställningsbar

Starta din kostnadsfria provperiod och testa Copy Last Dictation innan du anförtror rösten en lång PR-beskrivning.

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 vidare