Whispree - Korece geliştiriciler için STT + LLM düzeltmeli sesli giriş macOS uygulaması
(github.com/Arsture)Yazılım geliştirmeyi seven bir üniversite öğrencisiyim. Yapay zekaya bir şey yaptırmak istediğim her seferde yazı yazmak darboğaz oluyordu, ben de sesli girişi araştırdım ve ilk başta Superwhisper kullandım. Fena değildi ama Koreceye özel olmadığı için kelimeleri sürekli yanlış algılıyordu.
- "GitHub'a PR attım" dediğimde → bunu 'GitHub pe er yükledim' gibi yazıya döküyordu
- Gecikme iyiydi ama tanıma doğruluğu can sıkıcıydı
Para ödeyince biraz iyileşiyordu. Ama üniversite öğrencisi olduğum için param kıttı, bu yüzden ödeme yapmak istemedim.
→ Bu yüzden local STT ve LLM ile kendim yapmayı denedim ama çok yavaştı.
→ Sonra düşündüm ki ben zaten GPT aboneliği kullanıyorum; o halde OAuth ile LLM'i ödünç kullanabilirim, STT'yi de Groq gibi servislerle neredeyse bedavaya yakın kullanabilirim.
Bu fikirle kişisel kullanım için bir macOS uygulamasını Swift ile geliştirdim.
Temel işleyiş: Kısayol tuşuna basıp konuşuyorsunuz, ardından STT → LLM düzeltmesi → metin imlecin bulunduğu yere otomatik yapıştırılıyor.
Yazmaya kıyasla 3 ila 5 kat daha hızlı ve kayıt sırasında başka bir pencereye baksanız bile ilk odak konumunu hatırlayıp tam olarak oraya ekliyor.
Mevcut sesle yazma uygulamalarından farkı
Mevcut uygulamalar STT → yapıştırma ile bitiyor, Whispree ise STT'den sonra bir LLM düzeltme katmanı ekliyor. Piyasadaki uygulamalarda Koreceye özel bir seçenek pek yoktu.
"밸리데이션 해야 되거든" → "validation 해야 되거든"
"랙트 컴포넌트" → "React 컴포넌트"
"깃헙에 펄 올려놨어" → "GitHub에 PR 올려놨어"
Uygulamayı yaptıktan sonra memnuniyetim oldukça yüksek oldu; ben de kullanmaya devam ederken yeni özellikler ekledim.
Structured Mode
Yapay zekaya sürekli konuşarak bir şeyler girince aslında düşündüğümden daha dağınık konuştuğumu fark ettim. "Ve", "ııı" gibi çok fazla dolgu ifade giriyor. Bu yüzden LLM'in sonradan düzenleyip bunları madde işaretli bir yapıya dönüştürmesi iyi olur diye düşündüm ve bu özelliği ekledim.
Bir planı hızla dökmek istediğimde kısayol tuşuna basıp peş peşe konuşuyorum ve düzenlenmiş bir prompt elde ediyorum.
Visual Context
Sadece konuşmaya bakınca bağlam anlaşılmadığı için LLM bazen alakasız düzeltmeler yapıyordu. Bu yüzden kayıt sırasında baktığım ekranı otomatik olarak yakalamaya karar verdim.
- İlk başta yalnızca odakta olan ekranı ekliyordum ama pratikte kayıt sırasında başka sekmelere de bakıyordum
- Bu yüzden tüm sekmeleri yakalayacak şekilde genişlettim
- Sekme değiştirince önceki sekme anında yakalanıyor, tek ekranda 1,5 saniye durulursa o anın görüntüsü alınıyor
- Ekran görüntülerini doğrudan prompt'a yapıştırma özelliğini de ekledim
Quick Fix (Ctrl+Shift+D)
Yanlış tanınan kelimeleri düzeltme sözlüğüne anında kaydediyor. Böylece tanıma doğruluğu artıyor. Bunun için bir sözlük özelliği yaptım, sonra uğraşmamak için bunu da kısayol tuşuna bağladım.
Neredeyse ücretsiz
- STT: Groq API (ücretsiz)
- LLM düzeltmesi: Codex CLI kimlik doğrulama token'ını doğrudan kullanıyor. Sadece OpenAI hesabınız varsa ek maliyet neredeyse yok
- Sadece local kullanım da mümkün: Codex aboneliğiniz yoksa local modelleri kullanabilirsiniz. Ama Qwen'in hafif modellerini kullanmanız ya da sadece STT kullanmanız DX açısından daha iyi olacaktır...
Sağlayıcılar ve modlar
- STT: WhisperKit / Groq / MLX Audio olmak üzere 3 seçenek
- LLM: 6 local model (Qwen, GLM) + 5 OpenAI modeli
- Düzeltme modu: Standard / Filler Removal / Structured / Custom olmak üzere 4 seçenek
- Uygulama içindeki Can I Run özelliğiyle cihaz uyumluluğu derecenizi kontrol edebilirsiniz
Kurulum
brew tap Arsture/whispree && brew install --cask whispree
macOS 14+ (Sonoma) ve yalnızca Apple Silicon destekleniyor. Başta sadece kendim kullanmak için yaptığım için macOS uygulaması olarak geliştirdim; henüz başka platformları desteklemiyor.
İsmi de ilk başta FreeWhisper'dı. Çünkü sadece kendim ücretsiz kullanmak istiyordum. Sonra açık kaynak olarak yayımlamaya karar verince FreeWhisper biraz zayıf geldi. API anahtarlarını ödünç kullanma fikrinden hareketle "NotMyWhisper" adını da düşündüm. Biraz ILLIT'in 'Borrowed Cat' hissi verdiği için hoşuma gitmişti. Ama kullanmaya devam ettikçe "Bu başkasının whisper'ı değil, benim whisper'ım" gibi hissettirdi ve sonunda adı Whispree oldu.
MIT lisanslı açık kaynak bir proje. Geri bildirimlere açığım.
15 yorum
Uzun zaman sonra yeniden kullanıyorum; bu süre içinde epey gelişmiş.
Ama geliştirilmesini istediğim bir nokta var.
Görsel bağlam özelliği çok iyi. Ancak her kayıt bittiğinde yakalanan ekranın gösterilmesi biraz zahmetli oluyor. Sadece ESC'ye basarak iptal edilebiliyor ama keşke hiç görünmese.
Eğer amaç kayıt sırasında yakalanan ekranı yapıştırmaksa, bittikten sonra o yakalama ekranını yeniden bulmayı sağlayan bir özellikle bunu tamamlamak nasıl olur?
Kayıt sırasında soldaki Option tuşuna basılı tutarsanız, bağlam iletilmeye devam eder ama yapıştırmayı devre dışı bırakabilirsiniz!
Acaba bahsettiğiniz özellik bu muydu??
Hayır. Ben tamamen yalnızca transkripsiyon özelliğini yoğun olarak kullanıyorum. Ancak her kayıt bittiğinde yakalama ekranı listesinin açılması rahatsız edici, kapatılabilmesini istiyorum.
Option tuşuna basınca açılmıyor gerçi. Ama kullanım düzenimde bu da rahatsız edici bir nokta yaratıyor. Benzer bir rahatsızlığı olan birçok kişi olduğunu düşünüyorum. Bunu ana seçeneklere yansıtabilir misiniz?
Aha, sanırım o ana seçenek varsayılan olarak kapalıdır; ama önceki bir sürümü kullanıyorsanız bu değişiklik uygulanmamış olabilir!
Bunu açıkça kapatmak için
whispreeuygulaması -> LLM -> Ekran görüntüsü bağlamı -> Ajana ilet yolunda Off yapabilirsiniz!Kullanım düzeninizde sizi rahatsız eden kısmı, burada fotoğraf ekleme gibi bir şey olmadığı için sanırım tam net anlayamadım T_T
Uygunsa bunu GitHub issue olarak açabilir misiniz? O zaman bağlamı olabildiğince iyi anlayıp yansıtmaya çalışırım!
Teşekkürler. Bugünden itibaren görünmeyince nedenini merak etmiştim; meğer özelliği güncellemişsiniz.
Hızlı geri bildiriminiz için teşekkür ederim.
Handy kullanırken eksik bulduğum noktalar vardı; bu iyi görünüyor. Şimdilik değiştirip bunu deneyeceğim.
Teşekkürler! Geri bildirimlerinizi her zaman memnuniyetle karşılıyoruz!
Güzelmiş :) Destekliyorum.
Teşekkür ederim :)
Kısayol ayarında bir hata var gibi görünüyor
Ah, acaba bunun hangi bug olduğunu sorabilir miyim?
Kısayol ayarları hiç yapılamıyor ve sıfırlayınca kısayol tamamen ortadan kayboluyor.
Acaba Erişilebilirlik izni ayarlı mı?
Ayarlı değilse, lütfen Whispree uygulamasını Erişilebilirlik bölümüne ekleyip kısayol ayarını yeniden denedikten sonra bize bildirir misiniz? Teşekkür ederiz!
Bir kez denedim, harika. Destekliyorum.
Teşekkür ederim!