Katakan Ucapan Saya: Dikte Tanpa Penulisan Ulang AI
Dikte AI menulis ulang ucapanmu: kualifikasi hilang, makna terbalik. Kenapa pemolesan LLM memparafrasekanmu, dan Keebye tetap harfiah.
Ada keluhan tentang dikte yang diperkaya AI yang terdengar paradoks sampai kamu mengalaminya: transkripsinya baik-baik saja — yang terjadi setelah transkripsi itulah yang merusaknya. Kamu mengucapkan satu hal, dan alatnya menyampaikan satu hal yang terpoles, percaya diri, dan sedikit berbeda. Sebuah kualifikasi diam-diam hilang. Sebuah keraguan dihapus. Sebuah kalimat direstrukturisasi menjadi sesuatu yang tidak akan pernah kamu ucapkan. Dan dalam versi terburuk dari pola ini — yang membuat orang berhenti memakai sebuah alat seketika itu juga — maknanya terbalik. “Jangan deploy sebelum semua test lolos” keluar di ujung lain sebagai instruksi tentang deploy, minus jangan-nya.
Untuk dikte santai ini sekadar gangguan. Untuk cara saya benar-benar memakai dikte — menyuapi prompt ke Claude Code, workflow dari mengendalikan Claude Code dengan suaramu — ini racun. Agent coding memperlakukan kata-katamu sebagai spesifikasi. Ia tidak tahu alat dikte kamu memparafrasekanmu. Kalau kualifikasi yang membuat instruksinya aman ikut terhalus antara mulutmu dan terminal, agent-nya akan dengan riang mengeksekusi versi yang sudah dihaluskan itu. Presisi adalah seluruh inti sebuah prompt, dan lapisan penulisan ulang AI adalah mesin untuk membuang presisi sambil membuat hasilnya terlihat lebih disengaja.
Kenapa alat dikte AI menulis ulang apa yang kamu ucapkan?
Jawaban di level kategori bukanlah bahwa ada orang yang sengaja hendak mendistorsi ucapan. Jawabannya, "bersihkan transkripsi ini" memang fitur yang benar-benar menarik, dan cara paling jelas membangunnya adalah menjalankan transkrip mentahnya lewat sebuah model bahasa.
Ucapan mentah itu berantakan — kata pengisi, awalan yang batal, kata yang berulang, tanda baca yang hilang. Sebuah LLM yang diminta merapikannya menghasilkan output yang indah. Masalahnya, model bahasa tidak menyunting, dalam arti seorang penyunting manusia yang membuang "um" menyunting. Ia meregenerasi. Output-nya adalah teks baru yang menurut model merupakan versi bagus dari input-mu, dan "bagus" itulah tempat maksudmu bocor keluar. Model yang dilatih menuju kegunaan dan kefasihan punya pendapat: keraguan tampak seperti derau, kualifikasi tampak seperti kekusutan, frasa yang canggung-tapi-presisi tampak seperti sesuatu yang perlu diperbaiki. Sebagian besar waktu penulisan ulangnya tidak berbahaya. Tapi ia probabilistik, dan kamu tidak bisa tahu dari output-nya kalimat mana yang ditranskripsi dan mana yang dikarang. Polesannya seragam; kesetiaannya tidak.
Itulah masalah mendalam pipeline poles LLM: mereka gagal secara diam-diam dan penuh percaya diri. Pengenal suara yang salah mendengarmu biasanya menghasilkan sesuatu yang tampak jelas salah. Lapisan penulisan ulang yang mengkhianatimu menghasilkan sesuatu yang tampak jelas benar — gramatikal, masuk akal, mengenakan suaramu — dan persis karena itulah “jangan deploy” yang terbalik terkirim alih-alih tertangkap.
Harfiah secara default
Posisi Keebye sederhana: apa yang didengar model speech-to-text itulah yang mendarat di kursormu. Secara default, tidak ada model bahasa yang duduk antara transkripsi dan terminalmu untuk menggubah versi dirimu yang lebih baik — tahap poles default-nya adalah daftar pendek aturan deterministik, dan hanya itu.
Itu taruhan yang disengaja, dan ia berasal dari kasus pemakaian vibecoding. Saat dikte kamu menjadi kanal kendali untuk agent coding, tugas alatnya adalah transportasi, bukan kepengarangan. Kamu penulisnya; agent adalah pembacanya; lapisan dikte seharusnya tidak punya pendapat. Workflow itu — mengucapkan prompt utuh alih-alih mengetiknya — dipaparkan di dikte suara untuk prompt AI.
Ada poles LLM di Keebye — nanti saya bahas — tapi ia harus diaktifkan sendiri, berjalan sepenuhnya di mesinmu, dan beroperasi di bawah penjaga yang dirancang untuk menolak bentuk-bentuk umum penyimpangan, pemekaran liar, dan pengulangan. Kalau output-nya gagal pemeriksaan itu, Keebye jatuh kembali ke aturan. Default-nya tetap aturan.
Jadi apa sebenarnya yang dilakukan pembersihan itu?
Harfiah tidak harus berarti mentah. Keebye menyertakan satu tahap pembersihan opsional — enhancement, menyala secara default, dan bisa ditimpa per aplikasi — tapi ia berbasis aturan, bukan model, dan daftar lengkap apa yang ia lakukan muat dalam satu paragraf:
Ia membuang kata pengisi yang berdiri sendiri (um, uh, erm, you know). Ia merapatkan pengulangan kata yang langsung berdekatan — "the the" menjadi "the". Ia merapatkan spasi. Ia mengapitalkan huruf pertama, dan ia menambahkan titik penutup kalau kamu tidak mengakhiri dengan satu. Itu seluruh daftarnya. Aturannya deterministik dan berlingkup sempit; ia tidak dengan sengaja menyusun ulang klausa, membuang negasi, atau mengganti sinonim.
Sebelum pembersihan berjalan, substitusi kamusmu diterapkan — penggantian yang kamu definisikan sendiri untuk jargon dan nama diri yang dirusak model suara, sehingga "pnpm" dan nama modulmu tiba dieja persis seperti codebase-mu mengejanya.
Dan kalau bahkan tahap berbasis aturan pun terasa terlalu ikut campur bagimu, matikan enhancement dan Keebye akan menyisipkan transkrip mentah dari model suara: kata pengisi, pengulangan, dan semuanya. Untuk sebagian konteks — mengutip seseorang, mendikte ke sebuah kolom di mana titik penutup merusak sesuatu — transkrip mentah adalah pilihan yang lebih baik, dan penimpaan per aplikasi memungkinkanmu memilihnya.
Poles yang harus diaktifkan sendiri, dan penjaga kesetiaan di sekelilingnya
Sekarang LLM yang saya janjikan. Untuk orang yang memang menginginkan pembersihan yang lebih pintar, Keebye menawarkan mode poles opsional (polish_mode disetel ke local_llm): sebuah model Qwen3 kecil yang berjalan on-device lewat llama.cpp, diakselerasi Metal, tanpa apa pun yang dikirim ke mana pun. Instruksinya adalah versi sempit dari poles — perbaiki tanda baca dan kapitalisasi, buang kata pengisi, pertahankan kata persis pengguna, bahasanya, dan maknanya, pertahankan kode dan nama file apa adanya. Generasinya deterministik (greedy sampling, input sama → output sama) dan dibatasi; kalau modelnya macet melewati tenggat dua detik, output-nya ditinggalkan.
Tapi instruksi adalah harapan, dan artikel ini ada karena harapan bukan jaminan. Jadi setiap hasil yang dipoles LLM melewati sebuah penjaga kesetiaan sebelum ia boleh menyentuh kursormu. Output-nya harus mempertahankan setidaknya 50% token dari transkripsi aslinya. Ia tidak boleh menggelembung — apa pun yang melewati kira-kira dua kali panjang aslinya (ditambah empat token) dinyatakan gagal. Pengulangan liar dideteksi. Kalau hasil polesannya gagal salah satu pemeriksaan itu, Keebye membuangnya dan jatuh kembali ke pembersihan berbasis aturan.
Penjaga itu menangkap kehilangan token yang parah, pemekaran liar, dan pengulangan sebelum output model bisa menggantikan transkrip yang sudah dibersihkan aturan. Ia heuristik, bukan bukti semantik: penulisan ulang yang pendek atau negasi yang berubah masih bisa lolos ambangnya. Kalau sebuah kualifikasi tidak boleh melenceng, matikan poles AI dan tinjau teks yang disisipkan sebelum mengirimnya.
Batas yang jujur
Harfiah berarti harfiah. Kalau kamu bertele-tele, ketele-teleanmu ikut mendarat — bahkan poles yang diaktifkan sendiri pun diinstruksikan dan dijaga ke arah pembersihan, bukan penggubahan, jadi Keebye tidak akan mengubah pikiran yang berkelok menjadi instruksi yang tajam. Disiplin mengucapkan apa yang kamu maksud tetap ada di tanganmu.
Pembersihan berbasis aturan itu sengaja dibuat bodoh. Ia membuang "um"; ia tidak akan memperbaiki tata bahasamu, merestrukturisasi kalimat yang beranak-pinak, atau menyadari bahwa kamu mengontradiksi dirimu sendiri. Apa pun yang lebih pintar akan memperkenalkan kembali penilaian subjektif yang justru ingin dihindari rancangan ini.
Dan kesetiaan melindungi dari penulisan ulang, bukan dari salah kenal. Kalau model suara salah mendengar "cache" sebagai "cash", kesalahan itu dipertahankan dengan setia — penjaganya tidak tahu apa yang kamu maksudkan, hanya apa yang ditranskripsi. Dikte harfiah memindahkan batas kepercayaan ke model STT; ia tidak menghilangkannya. (Terkait: kalau masalahmu adalah model yang mentranskripsi dalam bahasa yang sepenuhnya salah, itu kegagalan berbeda dengan perbaikan berbeda — kunci bahasa dikte kamu.)
Terakhir, pembingkaian kategorinya: poles AI bukan penipuan, dan banyak pengguna memang lebih suka output yang terbaca lebih halus daripada cara mereka bicara. Kalau itu kamu, alat lain menekuninya dengan baik, dan perbandingan kami mengatakannya dengan jujur — Keebye vs Wispr Flow dan Keebye vs Superwhisper sama-sama punya bagian "kapan alat yang lain lebih cocok" yang sungguhan.
Transportasi, bukan kepengarangan
Kesepakatan yang ditawarkan Keebye sengaja dibuat sempit: kamu bicara, dan transkrip yang dibersihkan sedikit mendarat di tempat kursormu berada. Saat kata-kata itu adalah prompt untuk agent yang akan menindaklanjutinya secara harfiah, sempit adalah sebuah fitur. Hal termahal yang bisa dilakukan alat dikte terhadap seorang developer bukanlah salah ketik. Melainkan sebuah kalimat fasih yang tidak pernah kamu ucapkan.
Keebye ada dalam akses awal untuk macOS. Mulai uji coba gratismu di bawah, diktekan “Jangan deploy sebelum semua test lolos”, dan periksa apakah batasan persis itu selamat melewati pembersihan. Tes itulah seluruh produknya.
Uji instruksi yang tidak boleh melenceng
Mulai uji coba gratismu dan diktekan prompt dengan kualifikasi yang kritis—terutama sebuah 'jangan'—lalu periksa apa yang tiba.
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.
Lanjutkan membaca
Mendiktekan Prompt ke Agent Paralel, Lane demi Lane
Menjalankan dua atau tiga coding agent sekaligus membuat prompting jadi hambatan. Workflow suara untuk menyuapi lane paralel tanpa meninggalkan lane yang kamu.
Claude Code dengan Suara: Membangun di Lane Paralel
Agent coding AI membuat mengetik menjadi hambatan. Workflow praktis untuk mendiktekan prompt, review, dan arahan ulang di beberapa lane agent paralel di macOS.
Dikte yang Bertahan di Terminal
Paste dikte gagal diam-diam di terminal, SSH, tmux, dan layout non-QWERTY. Kenapa paste clipboard gagal di sana, dan apa yang dilakukan mode ketik.