Mobil Yazma Engelini Aşmak: Google Chirp ve FlorisBoard ile Açık Kaynaklı Türkçe Dikte Klavyesi
Bilgisayar başında çalışırken klavye kullanımında oldukça hızlıyım; dakikada 110 kelime civarına rahatlıkla ulaşabiliyorum. Ancak konu cep telefonu klavyesine geldiğinde bu hız dramatik bir şekilde düşüyor ve dakikada ancak 35 kelimede kalıyorum.
Özellikle okuldan eve dönerken veya evden okula giderken, yani sokakta yürüdüğüm ya da otobüste yolculuk ettiğim esnada WhatsApp mesajlarımı kontrol edip yanıtlamak benim için tam bir işkenceye dönüşüyordu. Bu sorunu aşmak için "konuşarak yazma" (dikte) çözümlerine yönelmeye karar verdim. Fakat bu arayış beni Türkçe dilinin yapısından kaynaklanan büyük engellerle ve açık kaynak lisanslarının sınırlarıyla karşı karşıya getirdi.
Geleneksel Çözümler Neden Yetersiz Kalıyor?
İlk olarak herkesin yaptığı gibi Google'ın popüler klavye uygulaması Gboard'u denedim. Ancak Gboard, Türkçe dikte konusunda beklediğim başarıyı gösteremedi. Türkçe, yapısı gereği sondan eklemeli bir dil ve bu durum ses tanıma motorlarının kelimeleri doğru tahmin etmesini oldukça zorlaştırıyor. Gboard ve benzeri geleneksel klavyeler maalesef bu morfolojik yapıyı tam olarak yakalayamıyor.
"Madem öyle, çevrimdışı ve gizlilik odaklı bir alternatif bulabilir miyim?" diye düşünerek Futo Keyboard'u keşfettim. Futo Keyboard, arka planda OpenAI'ın popüler Whisper modelini çevrimdışı (cihaz üzerinde) çalıştırarak dikte yapıyor.
- İngilizce performansı: Muazzam derecede iyi.
- Türkçe performansı: Maalesef tam bir hayal kırıklığı. Bunun temel sebebi, modelin Türkçe veri kümesiyle çok daha az eğitilmiş olması ve dolayısıyla tutarlılık oranının Türkçe kelimelerde yerlerde sürünmesi.
Futo Keyboard da beni tatmin etmeyince alternatif aramaya devam ettim, ancak göze çarpan başka bir çözüm bulamadım. Bu noktada kendi çözümümü üretmem gerektiğine karar verdim.
Aktif Bir Dinleyici: Google Chirp
Ses işleme ve yapay zeka modellerini araştırırken, Google'ın son dönemde üzerinde çalıştığı Chirp (Chirp 3) isimli sesten metne dönüştürme yapay zeka modeline rastladım. Chirp, sadece sesi işleyip düz bir şekilde yazıya dökmüyor. Konuşmanın konusunu, seçtiğiniz kelimeleri ve konuşma stilinizi de eş zamanlı olarak analiz ediyor.
Yani pasif bir dikte aracı olmaktan çıkıp, bağlamı kavrayan aktif bir dinleyiciye dönüşüyor. Bu da Türkçe gibi sondan eklemeli dillerde tutarlılık oranını inanılmaz derecede artırıyor.
Karşıma Çıkan İlk Engel: Android Deneyimi ve Lisans Çıkmazı
Chirp modelini kullanmaya karar vermiştim ancak önümde büyük bir engel vardı: Daha önce hiç Android uygulaması geliştirmemiştim. Sıfırdan bir klavye uygulaması yazmak, hele ki hiç Android tecrübesi olmayan biri için aylar sürecek bir işti. Bu yüzden piyasadaki açık kaynaklı klavye projelerini inceleyip, onların üzerine bir geliştirme yapmaya karar verdim.
İncelediğim projelerin çoğu GPL (General Public License) lisansına sahipti. GPL lisansının en katı kuralı şudur: Eğer GPL lisanslı bir kaynak kodunu modifiye edip dağıtırsanız, kendi kodunuzu da aynı şekilde GPL lisansıyla açmak zorundasınız. Bu da projenizi hiçbir şekilde ticarileştiremeyeceğiniz anlamına gelir.
Peki bu benim için neden kritik bir problemdi?
- API Maliyeti: Google Chirp modelini kullanmanın bir API maliyeti var.
- Sürdürülebilirlik: 11. sınıf öğrencisi olarak bu API maliyetini kendi cebimden karşılamam imkansızdı. Uygulamayı halka açtığımda, en azından API giderlerini karşılayacak ve harcadığım emeği kompanse edecek cüzi bir ücretlendirme veya abonelik modeli eklemem gerekiyordu.
GPL lisansı bu hedefimin önünde aşılmaz bir duvardı.
Çözüm: FlorisBoard ve MIT Lisansı
Aramalarım sonucunda MIT lisansına sahip olan açık kaynaklı FlorisBoard klavye projesine rastladım. MIT lisansı, kod üzerinde istediğiniz değişikliği yapmanıza, bunu kapalı kaynak olarak dağıtmanıza ve projeyi ticarileştirmenize izin verir.
Böylece FlorisBoard'u taban alarak üzerine Google Chirp entegrasyonu yapma kararı aldım. Sıfırdan Android klavye mekaniğiyle (tuş yerleşimleri, temalar, dokunmatik algılama vb.) uğraşmak yerine, hazır ve kaliteli bir altyapının üzerine kendi yapay zeka çözümümü entegre edebilecektim.
Bu entegrasyonun teknik detaylarını, Chirp API'si ile FlorisBoard'u nasıl haberleştirdiğimi ve karşılaştığım teknik zorlukları bir sonraki yazıda detaylıca paylaşacağım. Takipte kalın!