Proje Hakkında
İşitme engelli veya ağır işiten bireyler, evde meydana gelen kritik sesli uyarıları (bebek ağlaması, kapı zili, yangın alarmı) fark edemeyebilir. Bu proje, bu ihtiyacı gidermek için geliştirilmiş uçtan uca bir mobil bildirim sistemidir: sesleri cihaz üzerinde yapay zekâ ile analiz eder ve tespit edilen tehlikeyi titreşim + flaş ışığıyla kullanıcıya iletir.
Sistem Mimarisi
Sistem üç bileşenden oluşur:
- Dinleyici (Edge Sensor) — Evin ortak alanına bırakılan bir telefon/ tablette çalışan Flutter uygulaması. Mikrofonu sürekli dinler, sesi gerçek zamanlı olarak mel-spektrograma dönüştürür ve cihaz üzerindeki bir TensorFlow Lite modeliyle sınıflandırır (arka plan gürültüsü / bebek ağlaması / kapı zili / yangın alarmı). Güven skoru eşiği aşılınca backend'e uyarı gönderir.
- Backend — Spring Boot (Java 17) ile yazılmış REST API. Gelen uyarıları PostgreSQL veritabanına kaydeder, Firebase Cloud Messaging üzerinden alıcı uygulamaya push bildirimi yollar; susturma (mute) ve FCM token yönetimi gibi ayarları yönetir. Docker ile paketlenip Render üzerinde barındırılır.
- Bildirilen (Alıcı Cihaz) — İşitme engelli kullanıcının telefonunda çalışan Flutter uygulaması. Push bildirimini uygulama kapalıyken bile arka planda yakalar; SOS titreşim deseni ve kamera flaşını art arda yakıp söndürerek kullanıcıyı görsel ve dokunsal olarak uyarır. Ayrıca geçmiş uyarıları listeler ve sistemi 15 dk / 1 saat / 24 saat susturma imkânı sunar.
Öne Çıkan Teknik Detaylar
- Ses sınıflandırma tamamen cihaz üzerinde çalışır; ham PCM ses, FFT + Hann penceresi + mel filtre bankası kullanılarak Dart içinde sıfırdan hesaplanan bir mel-spektrograma dönüştürülür ve TFLite modeline beslenir — internet bağlantısı olmadan da çalışabilen bir çıkarım hattı.
- Mel filtre katsayıları ve pencere fonksiyonu, Python + librosa ile
(
gen_mel.py) önceden hesaplanıp base64 ile encode edilerek doğrudan Dart kaynak koduna gömülmüştür; böylece cihazda librosa'ya gerek kalmaz. - Kayan pencereli ses tamponu (sliding window queue) ile 3 saniyelik ses parçaları kesintisiz işlenir.
- Alıcı tarafta, uygulama arka planda/kapalıyken de Firebase'in background message handler'ı üzerinden titreşim ve flaş tetiklenir; hata durumlarında flaşın kapalı kaldığından emin olunur.
- Katmanlı bir backend mimarisi (controller → service → repository) ile uyarı geçmişi ve sistem ayarları yönetilir.





