El teu dictat no hauria de desaparèixer sense més

Dictes un pensament llarg, la inserció falla i el text desapareix. Per què les apps perden les teves paraules i l’historial local només de text de Keebye.

Teodor Deleanu10 de juliol del 20268 min de lectura

Noranta segons d'exactament-com-ho-volia-dir —una descripció de PR sencera, una resposta acurada a un client— i llavors alguna cosa petita surt malament en el moment de la inserció. La finestra de destinació no tenia el focus. L'enganxat no ha entrat. L'app ha fet un singlot. I el text simplement ja no hi és. No desat en algun lloc. No esperant en cap memòria intermèdia. Fora. Qualsevol canonada de dictat que tracti la inserció com l'única còpia de la transcripció té aquest mode de fallada.

El que ve després és una mena d'enuig concret i desproporcionat, i crec que és justificat. Els segons perduts no són el punt. El punt és que tu vas fer la feina —vas compondre el pensament, el vas dir bé, la màquina fins i tot el va transcriure correctament— i l'eina va destruir el resultat per un problema de lliurament. La segona presa no és mai tan bona com la primera. Qui hagi tornat a dictar un paràgraf de memòria sap que no el reprodueixes: en produeixes un cosí més pla.

He perdut dictats així jo mateix, amb altres eines, abans que existís el Keebye. És una de les petites emergències al voltant de les quals es va construir l'app.

Per què el text dictat simplement desapareix?

Això no és l'error d'un proveïdor. És una decisió de disseny al nivell de la categoria, i val la pena entendre per què la categoria la va prendre.

Una app de dictat és una canonada, no un editor. La parla entra per un extrem; el text surt per l'altre, cap a la finestra d'algú altre: un terminal, una casella de Slack, un Google Doc. No té cap document propi, que és exactament el que fa que aquestes eines siguin invisibles i ràpides. Però vol dir que la transcripció sovint existeix durant un moment exacte: la inserció. I la inserció és el pas més fràgil de tota la canonada. Depèn de quina finestra té el focus al mil·lisegon del lliurament, que cap altra app no s'estigui barallant pel porta-retalls, que els permisos d'accessibilitat estiguin de bon humor i que l'aplicació de destinació accepti entrada sintètica. Quan qualsevol d'aquestes coses falla, una canonada pura no té res al darrere. L'aigua és a terra.

També hi ha un motiu de principis pel qual les eines han estat esquives a guardar còpies: un registre de tot el que has dictat és sensible. Els teus dictats són els teus missatges, els teus prompts, les teves decisions a mig formar. Un proveïdor que els guarda —especialment enlloc a prop d'un núvol— ha creat una responsabilitat, i la manera fàcil d'evitar-la és no guardar res. Els usuaris hereten aquella prudència com a efímeritat: el dictat més segur, des del punt de vista del proveïdor, és el que no ha existit mai.

Entenc la lògica. Simplement crec que optimitza per a la part equivocada. El mode de fallada de guardar historial local és un fitxer al teu propi disc. El mode de fallada de no guardar res és la teva feina evaporant-se perquè una finestra ha perdut el focus.

Què guarda el Keebye, i on

Així doncs, el Keebye guarda un historial, activat per defecte, i això és exactament el que vol dir: ni més, ni menys.

Amb l'historial activat, cada dictat completat s'escriu en una base de dades SQLite local al teu Mac (rusqlite, en mode WAL, per a qui li interessin les canonades). El fitxer viu al directori de suport de l'app —com.keebye.app/keebye.db— i no surt mai de la màquina. No hi ha sincronització, ni pujada, ni cap compte a què estigui lligat. És un fitxer, al teu disc, teu.

La recuperació està dissenyada al voltant de les dues maneres com perds text de debò. El cas habitual —la inserció acaba de fallar, fa un segon— té la via més ràpida: el menú de la barra té una entrada Copy Last Dictation. Fes-hi clic, el teu dictat més recent és al porta-retalls, enganxa'l on havia d'anar i continua. El cas més rar —«vaig dictar una cosa dimarts i la necessito»— passa per Dictation History…, una finestra amb la llista sencera: cercable, amb esborrat per entrada i un esborrat total per quan vulguis netejar la pissarra.

La retenció és de 30 dies, aplicada automàticament. La poda s'executa quan s'obre la base de dades i un altre cop després de cada inserció, o sigui que la finestra és genuïnament de 30 dies, no pas «30 dies, més o menys, quan hi tinguem temps». I si vols el comportament efímer d'abans —algunes persones haurien de voler-lo, i ja hi arribo—, l'historial és un ajust (history_enabled), i desactivar-lo vol dir que no s'escriu absolutament res.

Només text. Mai àudio.

La part que més m'importa és el que l'historial no és. És només text. L'esquema de l'historial del Keebye no té cap columna d'àudio: no és un ajust de retenció d'àudio desactivat per defecte, és que no hi ha columna. Els enregistraments en si no es guarden mai. Això és estructural, per disseny: una transcripció de «respon a l'Andrei que la migració s'endarrereix una setmana» ja és prou sensible; el so de la teva veu dient-ho, amb data i hora, és un artefacte d'un altre ordre, i no volia que l'app fos capaç d'acumular-lo.

Un matís més que importa més del que ocupa: si dictes en un camp segur —una entrada de tipus contrasenya—, l'historial no ho registra. L'únic lloc on fins i tot un rastre de text seria erroni és l'únic lloc on no en guardem cap.

Aquesta és la mateixa postura que la resta de l'app —la veu a text s'executa on-device, cosa de la qual hem escrit en el context de dictar en la teva pròpia llengua—, però l'historial és on la postura es posa a prova, perquè l'historial és l'únic lloc on el Keebye persisteix les teves paraules. Local, només de text i que s'esborra sol em va semblar la forma que es guanya venir activada per defecte.

Els límits sincers

Secció de sinceritat, com sempre.

No pots tornar a escoltar. Que sigui només text talla per tots dos costats. Si la transcripció era errònia —el model va sentir malament un nom, va destrossar un número—, l'historial preserva fidelment el text erroni, i l'àudio que podria resoldre la disputa ja no hi és, per disseny. Per a la majoria de casos de recuperació això no importa; la fallada era la inserció, no la transcripció. Però si volies l'historial de dictat com un arxiu de notes de veu, això no ho és, a posta.

Trenta dies són trenta dies. L'historial és una xarxa de seguretat, no un arxiu. Si un dictat importa més enllà d'un mes, casa seva és el document on el vas dictar, no la base de dades de l'app. La poda no pregunta.

Només local vol dir només local. El teu historial no et segueix entre màquines. El dictat que vas fer a l'ordinador de sobretaula no es pot recuperar des del portàtil. Ho presento com una funció de privadesa, i ho és —no se sincronitza res perquè no es transmet res—, però no faré veure que no és també una limitació. És totes dues coses. Hauries de saber quina és per a tu abans de dependre'n.

I el cas límit: si ets de les persones el model d'amenaça de les quals diu cap rastre, desactiva l'historial. És un sol ajust, i l'app el respecta completament. Venir activat per defecte és la decisió correcta per a la majoria d'usuaris, que preferirien recuperar el paràgraf de dimarts passat; però no hauria de ser un parany per a la resta.

La feina no hauria de tenir un únic punt de fallada

El motiu profund pel qual existeix aquesta funció: porto el dia com a carrils paral·lels —agents construint en algunes finestres, persones esperant en unes altres— i la veu és el canal que els alimenta tots. Aquell flux de treball és tota la premissa de Com dirigir el Claude Code amb la veu. Un canal que de tant en tant destrueix la seva pròpia càrrega no és un canal sobre el qual construir una jornada laboral. Els desenvolupadors esperen vies de recuperació —desfés, registres, reflogs, paperera—, però molts fluxos de dictat no exposen res equivalent quan una inserció falla.

Si estàs sospesant eines d'aquesta categoria, les nostres comparacions són sinceres sobre on brillen també les altres: Keebye vs Superwhisper i Keebye vs Wispr Flow. I el text que s'esfuma té una queixa germana —que la primera paraula del teu dictat quedi menjada abans que el micròfon es desperti—, que vam desenvolupar a per què les apps de dictat es mengen la teva primera paraula.

El Keebye és en accés anticipat per a macOS. Comença la prova gratuïta aquí sota, dicta un paràgraf, falla la finestra de destinació deliberadament i després fes servir Copy Last Dictation per recuperar el text. Equivocar-se de focus continua costant un pas de recuperació; ja no ha de costar el pensament.

Fes que el pròxim dictat llarg es pugui recuperar

Comença la prova gratuïta i prova Copy Last Dictation abans de confiar una descripció de PR llarga a la veu.

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.

Continua llegint