Dikten Asla Öylece Kaybolmamalı
Uzun bir fikri dikte edersin, giriş başarısız olur, metin kaybolur. Dikte uygulamaları neden kelime kaybeder ve Keebye nasıl yerel, salt metin geçmişi tutar?
Doksan saniyelik tam-istediğim-gibi bir metin — eksiksiz bir PR açıklaması, bir müşteriye özenli bir yanıt — ve sonra tam metin girişi anında küçük bir şey ters gidiyor. Hedef pencere odakta değildi. Yapıştırma tutmadı. Uygulama takıldı. Ve metin öylece yok. Bir yere kaydedilmiş değil. Bir tamponda duruyor değil. Yok. Metin girişini transkriptin tek kopyası sayan her dikte hattında bu hata biçimi var.
Ardından gelen şey, belirli ve orantısız bir öfke ve bence haklı. Mesele kaybedilen saniyeler değil. Mesele şu ki işi sen yaptın — düşünceyi kurdun, iyi söyledin, makine hatta doğru transkribe etti — ve araç, bir teslimat sorunu yüzünden sonucu yok etti. İkinci çekim asla ilki kadar iyi olmuyor. Bir paragrafı hafızasından yeniden dikte etmiş olan herkes bilir: onu yeniden üretmezsin; onun daha yavan bir kuzenini üretirsin.
Keebye var olmadan önce, başka araçlarda ben de bu şekilde dikteler kaybettim. Uygulamanın etrafında kurulduğu küçük acil durumlardan biri bu.
Dikte edilen metin neden öylece yok oluyor?
Bu, tek bir üreticinin hatası değil. Kategori düzeyinde bir tasarım kararı ve kategorinin bu kararı neden verdiğini anlamaya değer.
Bir dikte uygulaması bir boru hattı, bir editör değil. Konuşma bir uçtan giriyor; metin öteki uçtan, başkasının penceresine çıkıyor — bir terminale, bir Slack kutusuna, bir Google Doküman'a. Kendine ait bir belgesi yok ve bu araçları görünmez ve hızlı kılan tam olarak bu. Ama bu, transkriptin çoğu zaman tek bir an için var olduğu anlamına geliyor: metin girişi anı. Ve metin girişi, bütün hattaki en kırılgan tek adım. Teslimat milisaniyesinde hangi pencerenin odakta olduğuna, panonun başka bir uygulamayla yarışa girmemesine, erişilebilirlik izinlerinin havasında olmasına, hedef uygulamanın sentetik girişi hiç kabul etmesine bağlı. Bunlardan herhangi biri başarısız olduğunda saf bir boru hattının arkasında hiçbir şey yok. Su yere döküldü.
Araçların kopya tutmaktan çekinmesinin ilkeli bir nedeni de var: dikte ettiğin her şeyin kaydı hassastır. Diktelerin senin mesajların, prompt'ların, yarım kalmış kararların. Onları saklayan bir üretici — özellikle buluta yakın herhangi bir yerde — bir sorumluluk yaratmış oluyor ve sorumluluktan kaçınmanın kolay yolu hiçbir şey tutmamak. Kullanıcılar bu ihtiyatı geçicilik olarak devralıyor: üreticinin bakış açısından en güvenli dikte, hiç var olmamış olanı.
Mantığı anlıyorum. Sadece yanlış tarafa göre optimize ettiğini düşünüyorum. Yerel geçmiş tutmanın hata biçimi, kendi diskindeki bir dosya. Hiçbir şey tutmamanın hata biçimi, bir pencere odağı kaybettiği için işinin buharlaşması.
Keebye neyi, nerede tutuyor
Yani Keebye bir geçmiş tutuyor, varsayılan olarak açık ve bunun tam olarak ne anlama geldiği şu — ne fazlası ne eksiği.
Geçmiş açıkken tamamlanan her dikte, Mac'indeki yerel bir SQLite veritabanına yazılıyor (tesisata meraklı olanlar için rusqlite, WAL modu). Dosya, app-support dizininde yaşıyor — com.keebye.app/keebye.db — ve makineyi hiç terk etmiyor. Eşitleme yok, yükleme yok, bağlı olduğu bir hesap yok. Kendi diskinde, sana ait bir dosya.
Kurtarma, metni gerçekte kaybetme biçimlerin olan iki durum etrafında tasarlandı. Yaygın durum — metin girişi az önce, bir saniye önce başarısız oldu — en hızlı yola sahip: menü çubuğu menüsünde bir Copy Last Dictation öğesi var. Tıkla, en son dikten panoda olsun, gitmesi gereken yere yapıştır, yoluna devam et. Daha seyrek durum — "salı günü bir şey dikte etmiştim ve geri lazım" — tam listeyi içeren bir pencere olan Dictation History… üzerinden gidiyor: aranabilir, kayıt başına silme ve sayfayı tamamen temizlemek istediğinde hepsini temizleme seçeneğiyle.
Saklama süresi 30 gün ve otomatik uygulanıyor. Budama, veritabanı açıldığında ve her metin girişinden sonra tekrar çalışıyor; yani pencere gerçekten 30 gün, "yaklaşık 30 gün, ne zaman fırsat bulursak" değil. Ve eski geçici davranışı istiyorsan — bazı insanlar istemeli ve kimler olduğuna geleceğim — geçmiş bir ayar (history_enabled) ve onu kapatmak hiçbir şeyin yazılmaması demek.
Yalnızca metin. Asla ses.
En çok önemsediğim kısım, geçmişin ne olmadığı. Yalnızca metin. Keebye'ın geçmiş şemasında ses sütunu yok — varsayılan olarak kapalı bir ses saklama ayarı değil, sütun yok. Kayıtların kendisi asla saklanmıyor. Bu yapısal, tasarım gereği: "Andrei'ye migration'ın bir hafta kaydığını yaz" transkripti zaten yeterince hassas; senin sesinin bunu söylerkenki hâli, zaman damgalı, bambaşka düzeyde bir eser ve uygulamanın onu biriktirebilir olmasını istemedim.
Kelime sayısından daha önemli bir nüans daha: güvenli bir alana — parola tipi bir girdiye — dikte edersen geçmiş onu kaydetmiyor. Bir metin izinin bile yanlış olduğu tek yer, izlemediğimiz tek yer.
Bu, uygulamanın geri kalanıyla aynı duruş — konuşma-metin dönüşümü cihaz üzerinde çalışıyor ki bunu kendi dilinde dikte etmek bağlamında yazdık — ama duruşun sınandığı yer geçmiş, çünkü Keebye'ın kelimelerini kalıcı sakladığı tek yer geçmiş. Yerel, yalnızca-metin, kendini silen; varsayılan olarak açık olmayı hak eden şekil bu gibi geldi.
Dürüst sınırlar
Her zamanki gibi dürüstlük bölümü.
Yeniden dinleyemezsin. Yalnızca metin olmanın iki yüzü var. Transkripsiyon yanlışsa — model bir ismi yanlış duyduysa, bir sayıyı bozduysa — geçmiş yanlış metni sadakatle koruyor ve tartışmayı bitirebilecek ses tasarım gereği yok. Çoğu kurtarma durumunda bu önemli değil; hata metin girişindeydi, transkriptte değil. Ama dikte geçmişini bir sesli not arşivi olarak istiyorsan bu, bilerek o değil.
Otuz gün otuz gündür. Geçmiş bir güvenlik ağı, bir arşiv değil. Bir dikte bir aydan uzun süre önemliyse evi, uygulamanın veritabanı değil, onu dikte ettiğin belge. Budama sormuyor.
Yalnızca yerel, yalnızca yerel demek. Geçmişin makineler arasında peşinden gelmiyor. Masaüstünde yaptığın dikte dizüstünden kurtarılamıyor. Bunu bir gizlilik özelliği olarak sunuyorum ve öyle de — hiçbir şey eşitlenmiyor, çünkü hiçbir şey iletilmiyor — ama aynı zamanda bir sınırlama olmadığı numarasını yapmayacağım. İkisi birden. Ona güvenmeden önce senin için hangisi olduğunu bilmelisin.
Ve sınır durumu: tehdit modeli hiç iz olmasın diyen kişiysen geçmişi kapat. Tek bir ayar ve uygulama ona tamamen saygı gösteriyor. Varsayılan olarak açık olması, geçen salının paragrafını geri isteyen çoğu kullanıcı için doğru karar; geri kalanlar için bir tuzak olmamalı.
İşin tek arıza noktası olmamalı
Bu özelliğin var olmasının daha derin nedeni: günümü paralel lane'ler olarak yürütüyorum — bazı pencerelerde geliştiren agent'lar, ötekilerde bekleyen insanlar — ve ses, hepsini besleyen kanal. O iş akışı, Claude Code'u sesinle yönetmek yazısının bütün öncülü. Ara sıra kendi yükünü yok eden bir kanal, üzerine iş günü kurduğun bir kanal değil. Geliştiriciler kurtarma yolları bekliyor — geri al, loglar, reflog'lar, çöp kutusu — yine de pek çok dikte akışı, metin girişi başarısız olduğunda hiçbir eşdeğerini sunmuyor.
Bu kategoride araç tartıyorsan karşılaştırmalarımız başkalarının nerede parladığı konusunda da dürüst: Keebye vs Superwhisper ve Keebye vs Wispr Flow. Ve kaybolan metnin bir kardeş şikâyeti var — mikrofon uyanmadan diktenin ilk kelimesinin yutulması — onu da dikte uygulamaları ilk kelimeni neden yutuyor yazısında ele aldık.
Keebye macOS için erken erişimde. Ücretsiz denemeni aşağıdan başlat, bir paragraf dikte et, hedef pencereyi bilerek ıskala, sonra metni kurtarmak için Copy Last Dictation'ı kullan. Yanlış odak yine bir kurtarma adımına mal oluyor; artık düşünceye mal olmak zorunda değil.
Sıradaki uzun dikteyi kurtarılabilir yap
Ücretsiz denemeni başlat ve uzun bir PR açıklamasını sese emanet etmeden önce Copy Last Dictation'ı test et.
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.
Okumaya devam et
Dikte Uygulamaları İlk Kelimeni Neden Yutuyor
Hotkey'e basıp konuşursun, ilk kelime kesilir. Soğuk başlangıç neden kelimeleri kırpar, sıcak mikrofon ve 500 ms ön kayıt nasıl yardımcı olur?
Paralel Agent'lara Lane Lane Prompt Dikte Etmek
Aynı anda iki üç kodlama agent'ı çalıştırmak prompt yazmayı darboğaz yapıyor. Bulunduğun lane'den çıkmadan paralel lane'leri beslemek için sesli bir iş akışı.
Claude Code'u Sesinle Yönet: Paralel Lane'lerle Geliştirme
AI kodlama agent'ları yazmayı darboğaz yaptı. macOS'ta paralel agent lane'lerine prompt, inceleme ve yön değişikliği dikte etmek için pratik iş akışı.