Tavam diktējumam nekad nevajadzētu vienkārši izgaist
Nodiktē garu domu, ievietošana neizdodas, teksta vairs nav. Kāpēc diktēšanas lietotnes zaudē vārdus un kādu lokālu, tikai teksta vēsturi glabā Keebye.
Deviņdesmit sekundes tieši-tā-kā-domāju — pilns PR apraksts, rūpīga atbilde klientam — un tad ievietošanas brīdī noiet greizi kaut kas sīks. Mērķa logs nebija fokusēts. Ielīmēšana neuzņēmās. Lietotne aizrijās. Un teksta vienkārši vairs nav. Nekur nav saglabāts. Nesēž nekādā buferī. Prom. Šī kļūme ir jebkuram diktēšanas konveijeram, kas ievietošanu uzskata par vienīgo transkripta kopiju.
Tam seko specifiskas, nesamērīgas dusmas, un man šķiet, ka tās ir pamatotas. Zaudētās sekundes nav būtība. Būtība ir tā, ka tu izdarīji darbu — tu izveidoji domu, tu to labi pateici, mašīna to pat pareizi transkribēja — un rīks rezultātu iznīcināja piegādes problēmas dēļ. Otrais dublis nekad nav tik labs kā pirmais. Ikviens, kas pēc atmiņas ir pārdiktējis rindkopu, zina, ka to neatveido; tu radi tās pelēkāku brālēnu.
Es diktējumus šādi esmu pazaudējis pats, citos rīkos, pirms Keebye vispār bija. Tā ir viena no mazajām ārkārtas situācijām, ap kurām lietotne tika uzbūvēta.
Kāpēc nodiktētais teksts vienkārši pazūd?
Šī nav viena ražotāja kļūda. Tas ir kategorijas līmeņa konstrukcijas lēmums, un ir vērts saprast, kāpēc kategorija to pieņēma.
Diktēšanas lietotne ir caurule, nevis redaktors. Vienā galā ieiet runa; otrā iznāk teksts, kāda cita logā — terminālī, Slack lodziņā, Google dokumentā. Tai nav sava dokumenta, un tieši tas šos rīkus padara neredzamus un ātrus. Bet tas nozīmē, ka transkripts bieži eksistē tieši vienu mirkli: ievietošanas brīdī. Un ievietošana ir visa konveijera trauslākais solis. Tā ir atkarīga no tā, kuram logam ir fokuss piegādes milisekundē, no tā, ka starpliktuvi nesteidzas aizņemt cita lietotne, no tā, vai pieejamības atļaujām ir noskaņojums, un no tā, vai mērķa lietotne vispār pieņem sintētisku ievadi. Kad kaut kas no tā izgāžas, tīrai caurulei aiz muguras nav nekā. Ūdens ir uz grīdas.
Ir arī principiāls iemesls, kāpēc rīki ir bijuši kautrīgi glabāt kopijas: žurnāls ar visu, ko esi nodiktējis, ir jutīgs. Tavi diktējumi ir tavas ziņas, tavi prompti, tavi puspieņemtie lēmumi. Ražotājs, kas tos glabā — īpaši kaut kur mākoņa tuvumā —, ir radījis atbildību, un vieglais veids, kā no atbildības izvairīties, ir neglabāt neko. Lietotāji šo piesardzību manto kā īslaicīgumu: drošākais diktējums, no ražotāja skatpunkta, ir tāds, kas nekad nav eksistējis.
Es šo loģiku saprotu. Man vienkārši šķiet, ka tā optimizē par labu nepareizajai pusei. Lokālas vēstures glabāšanas kļūmes veids ir fails uz tava paša diska. Neglabāšanas kļūmes veids ir tavs darbs, kas iztvaiko, jo logs pazaudēja fokusu.
Ko Keebye glabā un kur
Tāpēc Keebye glabā vēsturi, pēc noklusējuma ieslēgtu, un lūk, ko tieši tas nozīmē — ne vairāk, ne mazāk.
Ar ieslēgtu vēsturi katrs pabeigts diktējums tiek ierakstīts lokālā SQLite datubāzē tavā Mac datorā (rusqlite, WAL režīms, tiem, kam rūp santehnika). Fails dzīvo lietotņu atbalsta direktorijā — com.keebye.app/keebye.db — un tas nekad nepamet datoru. Nav sinhronizācijas, nav augšupielādes, nav konta, kuram tas būtu piesaistīts. Tas ir fails uz tava diska, un tas pieder tev.
Atgūšana ir veidota ap tiem diviem veidiem, kā tekstu patiešām pazaudē. Izplatītajam gadījumam — ievietošana tikko izgāzās, pirms sekundes — ir ātrākais ceļš: izvēļņu joslas izvēlnē ir punkts Copy Last Dictation. Klikšķini uz tā, tavs jaunākais diktējums ir starpliktuvē, ielīmē to tur, kur tam bija jānonāk, un turpini. Retākais gadījums — „es otrdien kaut ko nodiktēju, un man to vajag atpakaļ” — iet caur Dictation History…, logu ar pilnu sarakstu: meklējamu, ar dzēšanu katram ierakstam un „notīrīt visu”, kad gribi noslaucīt tāfeli.
Glabāšanas termiņš ir 30 dienas, ieviests automātiski. Attīrīšana notiek, kad tiek atvērta datubāze, un vēlreiz pēc katras ievietošanas, tāpēc logs patiešām ir 30 dienas, nevis „aptuveni 30 dienas, kad nu mēs tiksim pie tā”. Un, ja gribi veco īslaicīgo uzvedību — dažiem tā vajadzētu, un es pie tā nonākšu —, vēsture ir iestatījums (history_enabled), un tā izslēgšana nozīmē, ka vispār nekas netiek rakstīts.
Tikai teksts. Nekad audio.
Daļa, kas man rūp visvairāk, ir tas, kas šī vēsture nav. Tā ir tikai teksts. Keebye vēstures shēmā nav audio kolonnas — ne audio glabāšanas iestatījuma, kas pēc noklusējuma izslēgts, bet gan nav pašas kolonnas. Paši ieraksti netiek glabāti nekad. Tas ir strukturāli, ar nolūku: transkripts „atbildi Andrejam, ka migrācija aizkavējas par nedēļu” ir pietiekami jutīgs; tavas balss skaņa, kas to saka, ar laika zīmogu, ir cita līmeņa artefakts, un es negribēju, lai lietotne būtu spējīga to uzkrāt.
Vēl viena nianse, kas ir svarīgāka par savu vārdu skaitu: ja diktē drošā laukā — paroles tipa ievadē —, vēsture to nereģistrē. Vienīgā vieta, kur pat teksta pēdas ir nepareizas, ir vienīgā vieta, kur mēs tās neglabājam.
Tā ir tā pati nostāja, kas visā pārējā lietotnē — runas pārvēršana tekstā notiek uz ierīces, par ko esam rakstījuši diktēšanas savā valodā kontekstā —, bet vēsture ir tā vieta, kur nostāja tiek pārbaudīta, jo vēsture ir vienīgā vieta, kur Keebye tavus vārdus vispār saglabā. Lokāla, tikai teksta, pati sevi dzēšoša — šķita tā forma, kas nopelna noklusējuma ieslēgtību.
Godīgie ierobežojumi
Godīguma sadaļa, kā vienmēr.
Nevari pārklausīties. Tikai teksts griež uz abām pusēm. Ja transkripcija bija nepareiza — modelis nepareizi sadzirdēja vārdu, sakropļoja skaitli —, vēsture uzticami saglabā nepareizo tekstu, un audio, kas varētu strīdu izšķirt, ar nolūku vairs nav. Vairumam atgūšanas gadījumu tas nav svarīgi; kļūme bija ievietošana, nevis transkripts. Bet, ja gribēji diktēšanas vēsturi kā balss piezīmju arhīvu, tā šī nav, ar nolūku.
Trīsdesmit dienas ir trīsdesmit dienas. Vēsture ir drošības tīkls, nevis arhīvs. Ja diktējums ir svarīgs ilgāk par mēnesi, tā mājas ir dokuments, kurā to nodiktēji, nevis lietotnes datubāze. Attīrīšana neprasa atļauju.
Tikai lokāls nozīmē tikai lokāls. Tava vēsture tev neseko starp datoriem. Diktējums, ko izdarīji uz galddatora, no klēpjdatora nav atgūstams. Es to pasniedzu kā privātuma funkciju, un tā tā ir — nekas nesinhronizējas, jo nekas netiek pārraidīts —, bet es neizlikšos, ka tas nav arī ierobežojums. Tas ir abi. Tev vajadzētu zināt, kurš no tiem tas ir tev, pirms uz to paļaujies.
Un robežgadījums: ja tu esi cilvēks, kura apdraudējuma modelis saka nekādu pēdu, izslēdz vēsturi. Tas ir viens iestatījums, un lietotne to pilnībā ievēro. Noklusējuma ieslēgtība ir pareizā izvēle vairumam lietotāju, kas labprātāk dabūtu atpakaļ pagājušās otrdienas rindkopu; pārējiem tā nedrīkst būt slazds.
Darbam nevajadzētu būt vienam kļūmes punktam
Dziļākais iemesls, kāpēc šī funkcija eksistē: es savu dienu vadu kā paralēlas joslas — aģenti būvē dažos logos, cilvēki gaida citos —, un balss ir kanāls, kas baro tos visus. Šī darbplūsma ir visa raksta Claude Code vadīšana ar balsi premisa. Kanāls, kas reizēm iznīcina savu kravu, nav kanāls, uz kura būvēt darba dienu. Izstrādātāji sagaida atgūšanas ceļus — atsaukšanu, žurnālus, reflog, miskasti —, tomēr daudzas diktēšanas plūsmas ievietošanas kļūmes gadījumā nepiedāvā neko līdzvērtīgu.
Ja izsver rīkus šajā kategorijā, mūsu salīdzinājumi godīgi runā arī par to, kur spīd citi: Keebye vs Superwhisper un Keebye vs Wispr Flow. Un izgaistošam tekstam ir māsas sūdzība — diktējuma pirmais vārds, ko apēd, pirms mikrofons pamostas —, ko aprakstījām rakstā kāpēc diktēšanas lietotnes apēd tavu pirmo vārdu.
Keebye ir agrīnajā piekļuvē macOS videi. Sāc bezmaksas izmēģinājumu zemāk, nodiktē rindkopu, apzināti nokavē mērķa logu, tad ar Copy Last Dictation atgūsti tekstu. Nepareizs fokuss joprojām maksā vienu atgūšanas soli; tam vairs nav jāmaksā doma.
Padari nākamo garo diktējumu atgūstamu
Sāc bezmaksas izmēģinājumu un pārbaudi Copy Last Dictation, pirms uztici balsij garu PR aprakstu.
Start free trialEarly access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.
Lasīt tālāk
Kāpēc diktēšanas lietotnes apēd tavu pirmo vārdu
Nospied īsinājumtaustiņu, sāc runāt, un pirmais vārds pazūd. Kāpēc aukstais starts apcērt vārdus un kā palīdz silts mikrofons un 500 ms priekšbufers.
Promptu diktēšana paralēliem aģentiem, joslu pa joslai
Divi trīs kodēšanas aģenti vienlaikus padara promptēšanu par šauro vietu. Balss darbplūsma paralēlo joslu barošanai, nepametot to, kurā esi.
Claude Code vadīšana ar balsi: būvēšana paralēlās joslās
AI kodēšanas aģenti padarīja rakstīšanu par šauro vietu. Praktiska darbplūsma promptu, pārskatu un pārvirzīšanu diktēšanai paralēlās aģentu joslās macOS vidē.