Dikte Kamu Tidak Seharusnya Lenyap Begitu Saja

Kamu mendiktekan ide panjang, penyisipan gagal, dan teks hilang. Kenapa aplikasi dikte kehilangan katamu, dan riwayat lokal teks-saja yang Keebye simpan.

Teodor Deleanu10 Juli 20267 menit baca

Sembilan puluh detik yang persis-seperti-yang-saya-maksud โ€” deskripsi PR yang utuh, balasan yang hati-hati untuk seorang klien โ€” lalu ada hal kecil yang salah tepat di momen penyisipan. Jendela tujuannya tidak sedang fokus. Paste-nya tidak masuk. Aplikasinya tersendat. Dan teksnya hilang begitu saja. Tidak tersimpan di mana pun. Tidak teronggok di sebuah buffer. Hilang. Pipeline dikte mana pun yang memperlakukan penyisipan sebagai satu-satunya salinan transkripnya punya mode kegagalan ini.

Yang menyusul adalah kemarahan yang spesifik dan tidak proporsional, dan menurut saya itu dibenarkan. Detik-detik yang hilang bukan intinya. Intinya adalah kamu sudah melakukan pekerjaannya โ€” kamu menyusun pikirannya, kamu mengucapkannya dengan baik, mesinnya bahkan mentranskripsinya dengan benar โ€” dan alatnya menghancurkan hasilnya karena masalah pengiriman. Ambil kedua tidak pernah sebagus yang pertama. Siapa pun yang pernah mendiktekan ulang sebuah paragraf dari ingatan tahu kamu tidak mereproduksinya; kamu menghasilkan sepupunya yang lebih datar.

Saya sendiri pernah kehilangan dikte dengan cara ini, di alat lain, sebelum Keebye ada. Ini salah satu keadaan darurat kecil yang menjadi dasar aplikasi ini dibangun.

Kenapa teks yang didiktekan bisa hilang begitu saja?

Ini bukan bug satu vendor. Ini keputusan desain di level kategori, dan layak dipahami kenapa kategori ini mengambilnya.

Aplikasi dikte adalah pipa, bukan editor. Ucapan masuk di satu ujung; teks keluar di ujung lain, ke jendela orang lain โ€” sebuah terminal, kotak Slack, sebuah Google Doc. Tidak ada dokumen miliknya sendiri, dan justru itulah yang membuat alat-alat ini tidak terlihat dan cepat. Tapi artinya transkripnya sering ada hanya untuk satu momen: penyisipan. Dan penyisipan adalah langkah paling rapuh di seluruh pipeline. Ia bergantung pada jendela mana yang sedang fokus pada milidetik pengiriman, pada clipboard yang tidak diperebutkan aplikasi lain, pada izin aksesibilitas yang sedang bersuasana hati baik, pada aplikasi tujuan yang mau menerima input sintetis sama sekali. Saat ada satu saja dari itu yang gagal, pipa murni tidak punya apa pun di belakangnya. Airnya sudah tumpah ke lantai.

Ada juga alasan berprinsip kenapa alat-alat ini malu-malu menyimpan salinan: catatan segala yang pernah kamu diktekan itu sensitif. Dikte kamu adalah pesanmu, prompt-mu, keputusanmu yang masih setengah jadi. Vendor yang menyimpannya โ€” apalagi di mana pun yang dekat dengan cloud โ€” telah menciptakan sebuah liabilitas, dan cara mudah menghindari liabilitas itu adalah tidak menyimpan apa pun. Pengguna mewarisi kehati-hatian itu sebagai kefanaan: dikte teraman, dari sudut pandang vendor, adalah yang tidak pernah ada.

Saya paham logikanya. Saya hanya berpendapat ia mengoptimalkan untuk pihak yang salah. Mode kegagalan menyimpan riwayat lokal adalah sebuah file di disk-mu sendiri. Mode kegagalan tidak menyimpan apa pun adalah pekerjaanmu menguap karena sebuah jendela kehilangan fokus.

Apa yang Keebye simpan, dan di mana

Jadi Keebye menyimpan riwayat, menyala secara default, dan inilah persisnya apa artinya itu โ€” tidak lebih, tidak kurang.

Dengan riwayat aktif, setiap dikte yang selesai ditulis ke database SQLite lokal di Mac kamu (rusqlite, mode WAL, bagi yang peduli soal jeroannya). File-nya tinggal di direktori app-support โ€” com.keebye.app/keebye.db โ€” dan ia tidak pernah meninggalkan mesin. Tidak ada sinkronisasi, tidak ada unggahan, tidak ada akun yang menempel padanya. Ia sebuah file, di disk-mu, milikmu.

Pemulihan dirancang mengikuti dua cara kamu benar-benar kehilangan teks. Kasus umumnya โ€” penyisipannya baru saja gagal, satu detik yang lalu โ€” punya jalur tercepat: menu tray punya item Copy Last Dictation. Klik, dikte terbarumu ada di clipboard, paste ke tempat yang seharusnya, lanjut. Kasus yang lebih jarang โ€” "saya mendiktekan sesuatu hari Selasa dan saya butuh itu kembali" โ€” lewat Dictation Historyโ€ฆ, sebuah jendela berisi daftar lengkapnya: bisa dicari, dengan hapus per entri dan hapus-semua untuk saat kamu ingin papannya dibersihkan.

Retensinya 30 hari, ditegakkan otomatis. Pemangkasannya berjalan saat database dibuka dan lagi setelah setiap penyisipan, jadi jendelanya benar-benar 30 hari, bukan "30 hari, kira-kira, kapan pun kami sempat". Dan kalau kamu menginginkan perilaku fana yang lama โ€” sebagian orang memang seharusnya begitu, dan saya akan sampai ke siapa mereka โ€” riwayat adalah sebuah pengaturan (history_enabled), dan mematikannya berarti tidak ada apa pun yang ditulis sama sekali.

Teks saja. Tidak pernah audio.

Bagian yang paling saya pedulikan adalah apa yang bukan riwayat itu. Ia teks saja. Skema riwayat Keebye tidak punya kolom audio โ€” bukan pengaturan penyimpanan audio yang default-nya mati, melainkan tidak ada kolomnya. Rekamannya sendiri tidak pernah disimpan. Itu struktural, secara desain: transkrip "balas ke Andrei bahwa migrasinya mundur seminggu" sudah cukup sensitif; suara dirimu mengucapkannya, lengkap dengan stempel waktu, adalah artefak dengan orde yang berbeda, dan saya tidak ingin aplikasinya bahkan mampu mengumpulkannya.

Satu nuansa lagi yang lebih penting daripada jumlah katanya: kalau kamu mendikte ke kolom aman โ€” input bergaya password โ€” riwayat tidak merekamnya. Satu-satunya tempat di mana bahkan jejak teks pun keliru adalah satu-satunya tempat kami tidak menyimpannya.

Ini postur yang sama dengan sisa aplikasinya โ€” speech-to-text berjalan on-device, yang kami tulis dalam konteks mendikte dalam bahasamu sendiri โ€” tapi riwayat adalah tempat postur itu diuji, karena riwayat adalah satu-satunya tempat Keebye mempertahankan kata-katamu sama sekali. Lokal, teks-saja, menghapus diri sendiri terasa seperti bentuk yang layak menyala secara default.

Batas yang jujur

Bagian kejujuran, seperti biasa.

Kamu tidak bisa mendengarkan ulang. Teks-saja punya dua sisi. Kalau transkripsinya salah โ€” modelnya salah mendengar sebuah nama, merusak sebuah angka โ€” riwayatnya dengan setia menyimpan teks yang salah itu, dan audio yang bisa menyelesaikan perselisihannya sudah hilang secara desain. Untuk sebagian besar kasus pemulihan ini tidak masalah; kegagalannya ada di penyisipan, bukan di transkripnya. Tapi kalau kamu menginginkan riwayat dikte sebagai arsip memo suara, ini bukan itu, dan itu disengaja.

Tiga puluh hari adalah tiga puluh hari. Riwayatnya adalah jaring pengaman, bukan arsip. Kalau sebuah dikte penting melampaui sebulan, rumahnya adalah dokumen tempat kamu mendiktekannya, bukan database aplikasinya. Pemangkasannya tidak bertanya.

Lokal-saja berarti lokal-saja. Riwayatmu tidak mengikutimu antar mesin. Dikte yang kamu lakukan di desktop tidak bisa dipulihkan dari laptop. Saya menyajikan ini sebagai fitur privasi, dan memang begitu โ€” tidak ada yang tersinkron karena tidak ada yang dikirim โ€” tapi saya tidak akan berpura-pura ini bukan juga sebuah keterbatasan. Ia keduanya. Kamu sebaiknya tahu ia yang mana bagimu sebelum kamu bersandar padanya.

Dan kasus batasnya: kalau kamu orang yang model ancamannya berkata tanpa jejak sama sekali, matikan riwayatnya. Itu satu pengaturan, dan aplikasinya menghormatinya sepenuhnya. Menyala secara default adalah pilihan yang tepat untuk sebagian besar pengguna, yang lebih memilih mendapatkan kembali paragraf Selasa lalu; ia tidak seharusnya menjadi jebakan untuk sisanya.

Pekerjaan tidak seharusnya punya satu titik kegagalan tunggal

Alasan yang lebih dalam kenapa fitur ini ada: saya menjalankan hari saya sebagai lane paralel โ€” agent membangun di sebagian jendela, manusia menunggu di jendela lain โ€” dan suara adalah kanal yang menyuapi semuanya. Workflow itu adalah seluruh premis dari mengendalikan Claude Code dengan suaramu. Kanal yang sesekali menghancurkan muatannya sendiri bukan kanal untuk membangun hari kerja di atasnya. Developer mengharapkan jalur pemulihan โ€” undo, log, reflog, tong sampah โ€” namun banyak alur dikte tidak memaparkan padanannya saat sebuah penyisipan gagal.

Kalau kamu sedang menimbang alat di kategori ini, perbandingan kami jujur soal di mana yang lain juga bersinar: Keebye vs Superwhisper dan Keebye vs Wispr Flow. Dan teks yang lenyap punya keluhan saudara โ€” kata pertama dikte kamu dimakan sebelum mikrofonnya bangun โ€” yang kami tulis di kenapa aplikasi dikte memakan kata pertamamu.

Keebye ada dalam akses awal untuk macOS. Mulai uji coba gratismu di bawah, diktekan satu paragraf, sengaja meleset dari jendela tujuannya, lalu pakai Copy Last Dictation untuk memulihkan teksnya. Fokus yang salah tetap memakan satu langkah pemulihan; ia tidak lagi harus memakan pikirannya.

Buat dikte panjang berikutnya bisa dipulihkan

Mulai uji coba gratismu dan uji Copy Last Dictation sebelum memercayakan deskripsi PR yang panjang kepada suara.

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.

Lanjutkan membaca