Twoje dyktowanie nigdy nie powinno po prostu zniknąć
Dyktujesz długą myśl, wstawianie zawodzi, tekst znika. Dlaczego aplikacje gubią słowa i jaką lokalną historię samego tekstu przechowuje Keebye.
Dziewięćdziesiąt sekund dokładnie-tak-jak-chciałem — pełny opis PR-a, staranna odpowiedź do klienta — i wtedy coś drobnego psuje się w momencie wstawiania. Okno docelowe nie miało fokusu. Wklejenie nie weszło. Aplikacja się zacięła. I tekstu po prostu nie ma. Nigdzie niezapisany. Nie leży w żadnym buforze. Zniknął. Każdy potok dyktowania, który traktuje wstawianie jako jedyną kopię transkryptu, ma ten tryb awarii.
To, co następuje, to specyficzny, nieproporcjonalny rodzaj złości i uważam, że uzasadniony. Nie chodzi o stracone sekundy. Chodzi o to, że wykonałeś pracę — ułożyłeś myśl, powiedziałeś ją dobrze, maszyna nawet poprawnie ją przetranskrybowała — a narzędzie zniszczyło wynik z powodu problemu z dostarczeniem. Drugie podejście nigdy nie jest tak dobre jak pierwsze. Każdy, kto podyktował akapit ponownie z pamięci, wie, że go nie odtwarzasz; produkujesz jego bledszego kuzyna.
Sam traciłem tak dyktowania, w innych narzędziach, zanim Keebye istniało. To jedna z tych małych awarii, wokół których zbudowano tę aplikację.
Dlaczego podyktowany tekst po prostu znika?
To nie jest błąd jednego dostawcy. To decyzja projektowa na poziomie kategorii i warto zrozumieć, dlaczego kategoria ją podjęła.
Aplikacja do dyktowania jest rurą, a nie edytorem. Mowa wchodzi jednym końcem; tekst wychodzi drugim, do cudzego okna — terminala, pola na Slacku, dokumentu Google. Nie ma własnego dokumentu i właśnie to czyni te narzędzia niewidzialnymi i szybkimi. Ale znaczy też, że transkrypt często istnieje przez dokładnie jedną chwilę: wstawienie. A wstawienie jest najbardziej kruchym krokiem w całym potoku. Zależy od tego, które okno ma fokus w milisekundzie dostarczenia, od tego, czy inna aplikacja nie ściga się o schowek, od tego, czy uprawnienia Dostępności są w nastroju, od tego, czy aplikacja docelowa w ogóle przyjmuje syntetyczne wejście. Gdy cokolwiek z tego zawiedzie, czysta rura nie ma nic w zapasie. Woda jest na podłodze.
Jest też zasadniczy powód, dla którego narzędzia bały się trzymać kopie: dziennik wszystkiego, co podyktowałeś, jest wrażliwy. Twoje dyktowania to Twoje wiadomości, Twoje prompty, Twoje na wpół uformowane decyzje. Dostawca, który je przechowuje — zwłaszcza gdziekolwiek blisko chmury — stworzył sobie zobowiązanie, a łatwym sposobem na uniknięcie zobowiązania jest nie trzymać niczego. Użytkownicy dziedziczą tę ostrożność jako ulotność: najbezpieczniejsze dyktowanie, z perspektywy dostawcy, to takie, które nigdy nie istniało.
Rozumiem tę logikę. Uważam po prostu, że optymalizuje pod niewłaściwą stronę. Trybem awarii trzymania lokalnej historii jest plik na Twoim własnym dysku. Trybem awarii nietrzymania niczego jest wyparowanie Twojej pracy, bo okno straciło fokus.
Co Keebye trzyma i gdzie
Więc Keebye trzyma historię, domyślnie włączoną, a oto dokładnie, co to znaczy — nie więcej, nie mniej.
Przy włączonej historii każde zakończone dyktowanie jest zapisywane do lokalnej bazy SQLite na Twoim Macu (rusqlite, tryb WAL, dla tych, których interesuje hydraulika). Plik mieszka w katalogu app-support — com.keebye.app/keebye.db — i nigdy nie opuszcza maszyny. Nie ma synchronizacji, nie ma wysyłania, nie ma konta, do którego byłby przypięty. To plik, na Twoim dysku, należący do Ciebie.
Odzyskiwanie jest zaprojektowane wokół dwóch sposobów, w jakie naprawdę tracisz tekst. Częsty przypadek — wstawienie właśnie zawiodło, sekundę temu — ma najszybszą ścieżkę: menu w pasku menu ma pozycję Kopiuj ostatnie dyktowanie. Kliknij ją, najnowsze dyktowanie jest w schowku, wklej je tam, gdzie miało trafić, jedziesz dalej. Rzadszy przypadek — „podyktowałem coś we wtorek i potrzebuję tego z powrotem” — idzie przez Historia dyktowania…, okno z pełną listą: z wyszukiwaniem, z usuwaniem pojedynczych wpisów i z opcją wyczyszczenia wszystkiego, gdy chcesz zetrzeć tablicę.
Retencja to 30 dni, egzekwowane automatycznie. Czyszczenie uruchamia się przy otwarciu bazy i ponownie po każdym wstawieniu, więc okno naprawdę wynosi 30 dni, a nie „30 dni, mniej więcej, kiedy nam się przypomni”. A jeśli chcesz starego, ulotnego zachowania — część osób powinna, i zaraz dojdę do kogo — historia jest ustawieniem (history_enabled), a jej wyłączenie oznacza, że nic nie jest w ogóle zapisywane.
Sam tekst. Nigdy dźwięk.
Najbardziej zależy mi na tym, czym ta historia nie jest. Zawiera sam tekst. Schemat historii Keebye nie ma kolumny na dźwięk — nie chodzi o ustawienie retencji dźwięku domyślnie wyłączone, tej kolumny po prostu nie ma. Same nagrania nigdy nie są przechowywane. To strukturalne, z założenia: transkrypt „odpisz Andreiowi, że migracja ślizga się o tydzień” jest wystarczająco wrażliwy; dźwięk Twojego głosu mówiącego to, ze znacznikiem czasu, to artefakt innego rzędu, a nie chciałem, żeby aplikacja była w stanie go gromadzić.
Jeszcze jeden niuans, który znaczy więcej, niż wynika z liczby słów: jeśli dyktujesz do pola zabezpieczonego — wejścia typu hasło — historia tego nie zapisuje. Jedyne miejsce, w którym nawet ślad tekstowy jest niewłaściwy, jest jedynym miejscem, w którym go nie trzymamy.
To ta sama postawa co w reszcie aplikacji — zamiana mowy na tekst działa na urządzeniu, o czym pisaliśmy w kontekście dyktowania we własnym języku — ale to historia jest miejscem, w którym ta postawa jest testowana, bo historia to jedyne miejsce, gdzie Keebye w ogóle utrwala Twoje słowa. Lokalna, zawierająca sam tekst, samokasująca się — to wydało się kształtem, który zasługuje na bycie włączonym domyślnie.
Szczere granice
Sekcja szczerości, jak zawsze.
Nie odsłuchasz tego ponownie. Sam tekst tnie w obie strony. Jeśli transkrypcja była błędna — model przesłyszał nazwisko, pokaleczył liczbę — historia wiernie zachowuje zły tekst, a dźwięk, który mógłby rozstrzygnąć spór, przepadł z założenia. W większości przypadków odzyskiwania to nie ma znaczenia; awarią było wstawienie, a nie transkrypt. Ale jeśli chciałeś historii dyktowania jako archiwum notatek głosowych, to celowo nie jest to.
Trzydzieści dni to trzydzieści dni. Historia jest siatką bezpieczeństwa, a nie archiwum. Jeśli jakieś dyktowanie ma znaczenie dłużej niż miesiąc, jego domem jest dokument, do którego je podyktowałeś, a nie baza aplikacji. Czyszczenie nie pyta.
Tylko lokalnie znaczy tylko lokalnie. Twoja historia nie podąża za Tobą między maszynami. Dyktowania z komputera stacjonarnego nie odzyskasz z laptopa. Przedstawiam to jako funkcję prywatności i nią jest — nic się nie synchronizuje, bo nic nie jest przesyłane — ale nie będę udawał, że nie jest to również ograniczenie. Jest jednym i drugim. Powinieneś wiedzieć, czym jest dla Ciebie, zanim na tym polegniesz.
I przypadek graniczny: jeśli jesteś osobą, której model zagrożeń mówi żadnego śladu w ogóle, wyłącz historię. To jedno ustawienie, a aplikacja w pełni je respektuje. Domyślnie włączona jest właściwym wyborem dla większości użytkowników, którzy wolą odzyskać akapit z zeszłego wtorku; nie powinna być pułapką dla reszty.
Praca nie powinna mieć pojedynczego punktu awarii
Głębszy powód istnienia tej funkcji: prowadzę swój dzień jako równoległe tory — agenci budujący w jednych oknach, ludzie czekający w innych — a głos jest kanałem, który zasila je wszystkie. Ten sposób pracy jest całą przesłanką Sterowania Claude Code głosem. Kanał, który od czasu do czasu niszczy własny ładunek, nie jest kanałem, na którym buduje się dzień pracy. Programiści oczekują ścieżek odzyskiwania — cofnij, logi, reflogi, kosz — a wiele przepływów dyktowania nie udostępnia żadnego odpowiednika, gdy wstawianie zawiedzie.
Jeśli ważysz narzędzia w tej kategorii, nasze porównania uczciwie mówią, gdzie błyszczą inne: Keebye vs Superwhisper i Keebye vs Wispr Flow. A znikający tekst ma bliźniaczą skargę — zjadanie pierwszego słowa dyktowania, zanim mikrofon się obudzi — którą opisaliśmy w Dlaczego aplikacje do dyktowania zjadają Twoje pierwsze słowo.
Keebye jest we wczesnym dostępie na macOS. Zacznij bezpłatny okres próbny poniżej, podyktuj akapit, celowo chybij okna docelowego, a potem użyj Kopiuj ostatnie dyktowanie, żeby odzyskać tekst. Zły fokus wciąż kosztuje jeden krok odzyskiwania; nie musi już kosztować myśli.
Spraw, żeby następne długie dyktowanie dało się odzyskać
Zacznij bezpłatny okres próbny i przetestuj Kopiuj ostatnie dyktowanie, zanim powierzysz głosowi długi opis PR-a.
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.
Czytaj dalej
Dlaczego aplikacje do dyktowania zjadają pierwsze słowo
Naciskasz skrót, mówisz, a pierwsze słowo jest ucięte. Dlaczego zimny start obcina słowa i jak pomaga ciepły mikrofon z 500 ms pre-rollu.
Dyktowanie promptów do równoległych agentów, tor po torze
Uruchomienie dwóch–trzech agentów naraz czyni promptowanie wąskim gardłem. Głosowy przepływ pracy do zasilania równoległych torów bez opuszczania bieżącego.
Claude Code głosem: budowanie na równoległych torach
Agenci AI uczynili pisanie wąskim gardłem. Praktyczny sposób dyktowania promptów, przeglądów i korekt kursu na równoległych torach agentów na macOS.