— 2025 · Lead developer — bitirme projesi
Smart Pause
Uyku apnesi erken uyarısı için ML tabanlı Android uygulaması.
Problem
Uyku apnesi, dünya genelinde teşhis edilememiş milyonlarca insanı etkileyen bir uyku bozukluğu. Klasik teşhis polisomnografi gerektiriyor — gece boyu bir klinikte uyumak ve düzinelerce sensörle izlenmek. Bu hem pahalı hem caydırıcı.
Smart Pause, kullanıcının kendi telefonunu gece boyu kullanarak nefes seslerinden risk sinyalleri yakalamayı ve “tam teşhis için doktora git” dediği anı güvenilir şekilde belirlemeyi hedefledi.
Yaklaşım
Boru hattı üç parçadan oluşuyor:
- Android istemci (Kotlin): Gece boyunca kısa ses pencereleri kaydediyor, özellikleri yerel olarak çıkarıyor ve küçük özellik vektörünü backend’e gönderiyor.
- FastAPI backend (Docker + Google Cloud Run): Ham örnekler yerine yalnızca sayısal özellik vektörlerini kabul eden bir çıkarım uç noktası. Bu, gizlilik ve ölçek için kritik.
- scikit-learn Random Forest: Denenen modeller arasında (LogReg, SVM, RF, küçük bir CNN) Random Forest en iyi precision/recall dengesini sağladı ve uçta düşük gecikmeyle çalıştı.
Geceden sonra bir skor ve öneri Firebase Firestore’a yazılıyor, uygulama bunu sabah gösteriyor.
Bu projeden çıkardıklarım
- Özellik çıkarımını istemciye taşımak hem verimli hem gizlilik dostu oldu — ham ses hiç ağdan geçmedi.
- Küçük, yorumlanabilir bir model (Random Forest) derin bir modelden daha iyi bir seçim olabilir; özellikle veri seti küçük ve gereksinim düşük gecikme ise.
- FastAPI + Cloud Run ikili, bir üniversite projesi bütçesi için ideal: sıfırdan bir konteynerle başlıyor, trafik olmadığında maliyet fiilen sıfır.
- Bitirme projesi tempo yönetimi: Donanım sorunu çözülmeyi beklerken bile ML boru hattı paralel ilerliyordu — blokaj zamanlarını planlayarak projenin son iki haftasını panik hâline getirmedim.