Powiedz to, co mówię: dyktowanie bez przeróbek AI
AI przerabia dyktowanie: gubi zastrzeżenia, odwraca sens. Dlaczego szlifowanie przez LLM parafrazuje Twoje słowa, a Keebye pozostaje dosłowny.
Jest taka skarga na dyktowanie ulepszane przez AI, która brzmi paradoksalnie, dopóki się jej nie przeżyje: transkrypcja była w porządku — to, co stało się po transkrypcji, wszystko zepsuło. Powiedziałeś jedno, a narzędzie dostarczyło wygładzoną, pewną siebie, odrobinę inną rzecz. Zastrzeżenie po cichu wypadło. Asekuracja usunięta. Zdanie przebudowane w coś, czego nigdy byś nie powiedział. A w najgorszej wersji tego wzorca — tej, która sprawia, że ludzie rzucają narzędzie na miejscu — sens się odwraca. „Nie wdrażaj, dopóki testy nie przejdą” wychodzi z drugiej strony jako instrukcja o wdrażaniu, bez tego nie.
Przy zwykłym dyktowaniu to uciążliwość. Przy tym, jak ja naprawdę używam dyktowania — karmiąc promptami Claude Code, praca z Sterowanie Claude Code głosem — to trucizna. Agent kodujący bierze Twoje słowa jako specyfikację. Nie wie, że Twoje narzędzie do dyktowania Cię sparafrazowało. Jeśli zastrzeżenie, które czyniło instrukcję bezpieczną, zostało wygładzone gdzieś między Twoimi ustami a terminalem, agent radośnie wykona wersję wygładzoną. Precyzja jest całym sensem promptu, a warstwa przepisywania przez AI to maszyna do usuwania precyzji przy jednoczesnym sprawianiu, że wynik wygląda na bardziej przemyślany.
Dlaczego narzędzia do dyktowania z AI przepisują to, co powiedziałeś?
Odpowiedź na poziomie kategorii nie brzmi, że ktoś postanowił zniekształcać mowę. Brzmi tak, że „posprzątaj tę transkrypcję” jest naprawdę atrakcyjną funkcją, a oczywisty sposób jej zbudowania to przepuszczenie surowego transkryptu przez model językowy.
Surowa mowa jest bałaganiarska — wypełniacze, falstarty, powtórzone słowa, brakująca interpunkcja. LLM poproszony o uporządkowanie tego produkuje piękne wyjście. Kłopot w tym, że model językowy nie edytuje w taki sposób, w jaki edytuje człowiek-redaktor usuwający „yyy”. On regeneruje. Wyjście jest nowym tekstem, który model uważa za dobrą wersję Twojego wejścia, a „dobra” jest miejscem, w którym wycieka Twoja intencja. Modele trenowane w stronę pomocności i płynności mają opinie: asekuracje wyglądają jak szum, zastrzeżenia wyglądają jak bałagan, niezgrabne, ale precyzyjne sformułowanie wygląda na coś do poprawy. Przez większość czasu przepisanie jest nieszkodliwe. Ale jest probabilistyczne i po wyjściu nie odróżnisz, które zdania zostały przetranskrybowane, a które ułożone. Szlif jest jednolity; wierność nie.
To jest głęboki problem potoków szlifowania przez LLM: zawodzą po cichu i pewnie siebie. Rozpoznawanie mowy, które Cię przesłyszy, zwykle produkuje coś widocznie złego. Warstwa przepisywania, która Cię zdradza, produkuje coś widocznie dobrego — poprawnego gramatycznie, wiarygodnego, ubranego w Twój głos — i dokładnie dlatego odwrócone „nie wdrażaj” zostaje wysłane zamiast wyłapane.
Dosłownie z założenia
Stanowisko Keebye jest proste: to, co usłyszał model zamiany mowy na tekst, to jest to, co ląduje przy Twoim kursorze. Domyślnie żaden model językowy nie siedzi między transkrypcją a Twoim terminalem, komponując lepszą wersję Ciebie — domyślny etap szlifu to krótka lista deterministycznych reguł i tyle.
To celowy zakład i bierze się z zastosowania w vibecodingu. Kiedy Twoje dyktowanie jest kanałem sterowania agentami kodującymi, zadaniem narzędzia jest transport, a nie autorstwo. To Ty jesteś autorem; agent jest odbiorcą; warstwa dyktowania nie powinna mieć opinii. Ta praca — mówienie całych promptów zamiast ich pisania — jest opisana w Głosowe dyktowanie do promptów AI.
W Keebye jest szlif przez LLM — zaraz do niego dojdę — ale trzeba go włączyć samemu, działa w całości na Twojej maszynie i pracuje pod strażnikiem zaprojektowanym tak, by odrzucać typowe formy dryfu, rozbieganego rozrostu i powtórzeń. Jeśli wyjście nie przejdzie tej kontroli, Keebye wraca do reguł. Domyślne pozostają reguły.
Co więc naprawdę robi czyszczenie?
Dosłowność nie musi znaczyć surowości. Keebye ma opcjonalny przebieg czyszczenia — ulepszanie, włączone domyślnie, z możliwością nadpisania per aplikacja — ale oparty na regułach, a nie na modelu, a pełna lista tego, co robi, mieści się w jednym akapicie:
Usuwa samodzielne wypełniacze (yyy, eee, no wiesz). Skleja bezpośrednie powtórzenia słów — „ten ten” staje się „ten”. Redukuje białe znaki. Zapisuje pierwszą literę wielką i dodaje kropkę na końcu, jeśli sam jej nie postawiłeś. To cała lista. Reguły są deterministyczne i wąsko zakrojone; nie przestawiają celowo zdań składowych, nie usuwają zaprzeczeń i nie podmieniają synonimów.
Zanim uruchomi się czyszczenie, stosowane są podstawienia z Twojego słownika — zdefiniowane przez Ciebie zamienniki żargonu i nazw własnych, które modele mowy kaleczą, dzięki czemu „pnpm” i nazwy Twoich modułów docierają zapisane tak, jak zapisuje je Twoje repozytorium.
A jeśli nawet przebieg oparty na regułach to więcej ingerencji, niż chcesz, wyłącz ulepszanie, a Keebye wstawi surowy transkrypt z modelu mowy: z wypełniaczami, powtórzeniami i całą resztą. W niektórych kontekstach — cytowanie kogoś, dyktowanie do pola, w którym końcowa kropka psuje sprawę — surowy transkrypt jest lepszym wyborem, a nadpisanie per aplikacja pozwala go wybrać.
Opcjonalny szlif i strażnik wierności wokół niego
Teraz LLM, który obiecałem. Dla osób, które jednak chcą mądrzejszego czyszczenia, Keebye oferuje opcjonalny tryb szlifu (polish_mode ustawiony na local_llm): mały model Qwen3 działający na urządzeniu przez llama.cpp, akcelerowany przez Metal, nic nigdzie nie wysyłane. Jego instrukcje to wąska wersja szlifu — popraw interpunkcję i wielkie litery, usuń wypełniacze, zachowaj dokładne słowa, język i sens użytkownika, zachowaj kod i nazwy plików dosłownie. Generowanie jest deterministyczne (greedy sampling, to samo wejście → to samo wyjście) i ograniczone; jeśli model utknie po przekroczeniu dwusekundowego terminu, jego wyjście jest porzucane.
Ale instrukcje to nadzieje, a ten artykuł istnieje dlatego, że nadzieje nie są gwarancjami. Dlatego każdy wynik oszlifowany przez LLM przechodzi przez strażnika wierności, zanim będzie mógł dotknąć Twojego kursora. Wyjście musi zachować co najmniej 50% tokenów oryginalnej transkrypcji. Nie może się rozdąć — cokolwiek powyżej mniej więcej dwukrotności oryginalnej długości (plus cztery tokeny) nie przechodzi. Rozbiegane powtórzenia są wykrywane. Jeśli oszlifowany wynik obleje jedną z tych kontroli, Keebye go odrzuca i wraca do czyszczenia opartego na regułach.
Ten strażnik łapie poważną utratę tokenów, rozbiegany rozrost i powtórzenia, zanim wyjście modelu zdąży zastąpić transkrypt wyczyszczony regułami. To heurystyka, a nie dowód semantyczny: krótkie przepisanie albo zmienione zaprzeczenie wciąż mogłoby przejść przez jego progi. Jeśli jakieś zastrzeżenie nie może sobie pozwolić na dryf, trzymaj szlif AI wyłączony i przejrzyj wstawiony tekst przed wysłaniem.
Szczere granice
Dosłownie znaczy dosłownie. Jeśli się rozgadasz, Twoje rozgadanie wyląduje — nawet opcjonalny szlif jest instruowany i pilnowany w stronę czyszczenia, a nie komponowania, więc Keebye nie zamieni meandrującej myśli w klarowną instrukcję. Dyscyplina mówienia tego, co masz na myśli, zostaje po Twojej stronie.
Czyszczenie oparte na regułach jest celowo głupie. Usuwa „yyy”; nie poprawi Twojej gramatyki, nie przebuduje zdania-potworka i nie zauważy, że sam sobie zaprzeczyłeś. Cokolwiek mądrzejszego wprowadziłoby z powrotem te decyzje osądu, przed którymi ten projekt ma chronić.
I wierność chroni przed przepisywaniem, a nie przed przesłyszeniem. Jeśli model mowy usłyszy „cache” jako „cash”, ten błąd zostanie wiernie zachowany — strażnik nie ma pojęcia, co chciałeś powiedzieć, tylko co zostało przetranskrybowane. Dosłowne dyktowanie przesuwa granicę zaufania na model rozpoznawania mowy; nie likwiduje jej. (Na marginesie: jeśli Twój problem polega na tym, że model transkrybuje w całkiem złym języku, to inna awaria z inną naprawą — Przypnij swój język dyktowania.)
Na koniec ujęcie kategorii: szlif AI nie jest oszustwem, a wielu użytkowników naprawdę woli wyjście, które czyta się gładziej, niż mówią. Jeśli to Ty, inne narzędzia dobrze się w to wpisują, a nasze porównania mówią o tym uczciwie — Keebye vs Wispr Flow i Keebye vs Superwhisper zawierają prawdziwą sekcję „kiedy drugie narzędzie pasuje lepiej”.
Transport, nie autorstwo
Umowa, którą oferuje Keebye, jest celowo wąska: mówisz, a lekko wyczyszczony transkrypt ląduje tam, gdzie jest Twój kursor. Kiedy te słowa są promptami do agenta, który weźmie je dosłownie, wąskość jest funkcją. Najdroższą rzeczą, jaką narzędzie do dyktowania może zrobić programiście, nie jest literówka. To płynne zdanie, którego nigdy nie powiedziałeś.
Keebye jest we wczesnym dostępie na macOS. Zacznij bezpłatny okres próbny poniżej, podyktuj „Nie wdrażaj, dopóki testy nie przejdą” i sprawdź, czy dokładnie to ograniczenie przetrwa czyszczenie. Ten test to cały produkt.
Przetestuj instrukcję, która nie może sobie pozwolić na dryf
Zacznij bezpłatny okres próbny i podyktuj prompt z krytycznym zastrzeżeniem — zwłaszcza z „nie” — a potem sprawdź, co dotarło.
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
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.
Dyktowanie, które przetrwa terminal
Wklejanie dyktowania zawodzi po cichu w terminalach, SSH, tmux i układach innych niż QWERTY. Dlaczego schowek tam zawodzi i co robi tryb wpisywania.