Whispree - Aplikasi macOS input suara STT + koreksi LLM untuk developer berbahasa Korea
(github.com/Arsture)Saya mahasiswa yang suka ngoding. Setiap kali menyuruh AI melakukan sesuatu, bottleneck-nya selalu di mengetik, jadi saya mencoba mencari input suara, dan awalnya saya memakai Superwhisper. Sebenarnya tidak buruk, tapi karena bukan khusus bahasa Korea, aplikasi itu terus salah mengenali kata.
- Kalau saya bilang "Aku sudah upload PR ke GitHub" → ditranskripsikan jadi sesuatu seperti 'GitHub peol sudah kuupload'
- Latensinya bagus, tapi akurasi pengenalannya bikin frustrasi
Kalau bayar memang jadi lebih baik. Tapi karena saya mahasiswa dan sedang bokek,,, saya tidak mau bayar.
→ Jadi saya coba implementasikan dengan STT lokal dan LLM, tapi ternyata terlalu lambat.
→ Lalu saya kepikiran bahwa saya sudah berlangganan GPT, jadi saya bisa "meminjam" LLM lewat OAuth, dan untuk STT saya bisa memakai layanan seperti Groq dengan biaya yang nyaris gratis.
Dengan arah itu, saya membuat aplikasi macOS pribadi ini dengan Swift.
Cara kerja inti: tekan hotkey lalu bicara, STT → koreksi LLM → otomatis ditempel kembali ke posisi kursor semula.
Dibanding mengetik, ini 3~5 kali lebih cepat, dan meskipun selama merekam saya melihat jendela lain, aplikasi tetap mengingat posisi fokus awal lalu menyisipkan teks tepat di sana.
Perbedaan dari aplikasi voice typing yang sudah ada
Aplikasi yang ada biasanya selesai di STT → tempel, sedangkan Whispree menambahkan layer koreksi LLM setelah STT. Saya juga tidak menemukan aplikasi komersial yang benar-benar khusus untuk bahasa Korea.
"밸리데이션 해야 되거든" → "validation 해야 되거든"
"랙트 컴포넌트" → "React 컴포넌트"
"깃헙에 펄 올려놨어" → "GitHub에 PR 올려놨어"
Setelah jadi, tingkat kepuasannya cukup tinggi, jadi saya terus memakainya sambil menambahkan fitur.
Structured Mode
Saat terus memasukkan input ke AI dengan suara, saya sadar ternyata cara bicara saya lebih berantakan dari yang saya kira. Banyak kata seperti "terus" atau "hmm" yang ikut masuk. Jadi saya merasa akan bagus kalau LLM melakukan post-processing dan menyusunnya menjadi bullet point, lalu saya membuat fitur itu.
Saat sedang menuangkan ide, saya tinggal menekan hotkey lalu bicara terus, dan prompt yang rapi akan langsung masuk.
Visual Context
Hanya dari ucapan saja kadang konteksnya tidak jelas, sehingga LLM bisa melakukan koreksi yang melenceng. Karena itu, saya memutuskan untuk otomatis mengambil capture layar yang sedang saya lihat saat perekaman berlangsung.
- Awalnya saya hanya memasukkan layar yang sedang fokus, tapi ternyata saat merekam saya sering juga melihat tab lain
- Jadi saya memperluasnya agar bisa menangkap semua tab
- Saat pindah tab, tab sebelumnya langsung di-capture; jika berhenti 1,5 detik di satu layar, layar pada momen itu akan di-capture
- Saya juga menambahkan fitur untuk menempelkan screenshot langsung ke prompt
Quick Fix (Ctrl+Shift+D)
Mendaftarkan kata yang salah langsung ke kamus koreksi. Dengan begitu akurasi pengenalannya naik. Awalnya saya membuat fitur kamus kata, lalu karena malas membuka-buka menu, saya jadikan hotkey sekalian.
Hampir gratis
- STT: Groq API (gratis)
- Koreksi LLM: memakai token autentikasi Codex CLI apa adanya. Selama punya akun OpenAI, hampir tidak ada biaya tambahan
- Mode lokal penuh juga bisa: kalau Anda tidak punya akun langganan Codex, Anda bisa memakai model-model lokal. Tapi untuk DX, sepertinya lebih enak memakai model Qwen yang ringan, atau hanya memakai STT saja...
Provider & mode
- STT: 3 pilihan WhisperKit / Groq / MLX Audio
- LLM: 6 model lokal (Qwen, GLM) + 5 model OpenAI
- Mode koreksi: 4 pilihan Standard / Filler Removal / Structured / Custom
- Ada fitur Can I Run di dalam aplikasi untuk mengecek tingkat kompatibilitas perangkat Anda
Instalasi
brew tap Arsture/whispree && brew install --cask whispree
Khusus macOS 14+ (Sonoma) dan Apple Silicon. Awalnya saya membuatnya untuk dipakai sendiri saja, jadi dibuat untuk macOS, dan saat ini belum mendukung platform lain.
Awalnya namanya juga FreeWhisper. Soalnya memang niatnya supaya saya sendiri bisa memakainya gratis. Tapi ketika hendak merilisnya sebagai open source, nama FreeWhisper terasa agak kurang oke. Karena idenya memakai API key pinjaman, saya juga sempat memikirkan nama "NotMyWhisper". Rasanya sedikit seperti "kucing pinjaman", jadi lumayan menarik. Tapi setelah terus dipakai, saya merasa "ini bukan whisper milik orang lain, ini whisper saya sendiri, kan?" dan akhirnya jadilah Whispree.
Ini open source dengan lisensi MIT. Feedback sangat diterima.
15 komentar
Saya sudah mencobanya lagi setelah sekian lama, dan selama itu aplikasinya sudah banyak berkembang.
Tapi ada satu hal yang saya harap bisa ditingkatkan.
Fitur konteks visual sangat bagus. Namun, agak merepotkan kalau layar yang dicapture ditampilkan setiap kali perekaman selesai. Memang bisa dibatalkan hanya dengan menekan ESC, tetapi saya lebih suka jika itu tidak muncul sama sekali.
Kalau tujuannya agar layar yang dicapture saat merekam bisa ditempelkan, bagaimana kalau ini dilengkapi dengan fitur untuk mencari kembali layar hasil capture setelah selesai?
Saat merekam, jika Anda menekan dan menahan tombol Option kiri, konteks tetap akan dikirim tetapi penempelan bisa dinonaktifkan!
Mungkin yang Anda maksud adalah fitur ini??
Bukan. Saya murni hanya sering memakai fungsi transkripsi. Namun, cukup merepotkan karena setiap kali perekaman selesai, daftar tangkapan layar muncul, jadi saya ingin itu bisa dimatikan.
Kalau menekan tombol Option memang tidak muncul. Tapi untuk pola penggunaan saya, ini juga agak kurang nyaman. Saya rasa akan ada cukup banyak orang yang punya ketidaknyamanan serupa. Bisakah ini diterapkan ke opsi utama?
Aha, sepertinya di opsi utama itu kemungkinan memang nonaktif secara default, tetapi kalau Anda memakai versi sebelumnya, mungkin perubahan itu belum diterapkan!
Di aplikasi whispree -> LLM -> Konteks tangkapan layar -> Kirim ke agen, Anda bisa menonaktifkannya secara eksplisit dengan mengubahnya ke Off!
Untuk bagian pola penggunaan yang terasa kurang nyaman, saya belum bisa memahaminya dengan jelas, mungkin karena di sini tidak bisa melampirkan gambar T_T
Kalau berkenan, bisakah Anda membuat issue di GitHub? Kalau begitu, saya akan mencoba memahaminya sebisa mungkin berdasarkan konteks lalu mempertimbangkan penerapannya!
Terima kasih. Mulai hari ini tidak muncul lagi, jadi saya sempat bertanya-tanya kenapa, ternyata fiturnya sudah diperbarui ya.
Terima kasih atas feedback yang cepat.
Saat memakai Handy, ada beberapa hal yang terasa kurang, jadi ini terdengar bagus. Untuk sementara saya akan beralih dan mencobanya.
Terima kasih! Masukan selalu kami sambut kapan saja!
Bagus :) Semangat!
Terima kasih :)
Sepertinya ada bug pada pengaturan shortcut.
Wah, boleh saya tanya bug seperti apa itu?
Pengaturan pintasan sama sekali tidak bisa dilakukan, dan kalau direset malah pintasannya benar-benar hilang.
Apakah izin Accessibility mungkin sudah diatur?
Jika belum, tambahkan aplikasi Whispree ke Accessibility, lalu coba lagi pengaturan shortcut dan beri tahu kami. Terima kasih!
Saya sudah mencobanya sekali, dan hasilnya luar biasa. Semangat!
Terima kasih!