Skip to content

About

더 나은 수면의 질을 위한 실시간 AI 수면 관리 서비스

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

256 Commits

Folders and files

Repository files navigation

🌙 Sleeper

더 나은 수면의 질을 위한 실시간 AI 수면 관리 서비스

forReadMe

Sleeper는 수면 중 발생하는 이갈이와 코골이, 뒤척임 같은 밤의 신호를 기록하고, AI 분석과 수면 단계 데이터를 바탕으로 다음 날 이해하기 쉬운 수면 리포트로 정리해주는 AI 기반 수면 모니터링 서비스입니다.

📖 프로젝트 소개

Sleeper는 단순한 수면 타이머가 아닌, 밤의 수면 흐름과 다음 날 컨디션을 함께 읽어내는 개인 수면 스토리 플랫폼입니다.

스마트폰 마이크 기반 측정과 Wear OS 연동, Samsung Health 수면 단계 동기화를 통해 한밤중의 데이터를 끊김 없이 모으고, AI 분석을 통해 흩어진 기록들을 의미 있는 리포트와 패턴으로 재구성합니다.


🤔 기획 배경

잠을 자는 동안 벌어진 일은 대부분 기억에 남지 않습니다. 하지만 아침의 피로감, 이를 간 흔적, 코골이, 뒤척임은 분명히 몸에 남습니다. Sleeper는 이 질문에서 출발했습니다.

“어젯밤의 수면은, 왜 오늘의 컨디션으로 이어졌을까?”


✨ 핵심 가치

1. 🌙 보이지 않는 밤의 기록

수면 중 발생하는 이갈이, 코골이, 움직임, 수면 단계 변화를 하나의 흐름으로 기록합니다.

2. 📊 이해되는 수면 스토리

단순한 로그 나열이 아닌, AI가 분류한 오디오 이벤트와 수면 단계 데이터를 바탕으로 이해하기 쉬운 리포트를 제공합니다.

3. ⏰ 부드러운 아침 연결

수면 전 컨디션 입력, 백색소음, 스마트 알람, Wear OS 연동을 통해 밤의 기록이 다음 날 루틴과 자연스럽게 이어집니다.


🚀 주요 기능 (Key Features)

🏠 메인 화면 (Home)

  • Sleeper의 메인 화면은 최근 수면 점수, 총 수면 시간, 이갈이 횟수, 코골이 시간 등을 한 번에 보여주는 수면 대시보드로 구성됩니다.

  • 주간 평균 점수와 연속 기록 일수를 통해 사용자는 하루치 결과만이 아니라 최근 수면 흐름 전체를 직관적으로 확인할 수 있습니다.

  • 최신 리포트가 있으면 바로 상세 화면으로 이동하고, 기록이 없으면 곧바로 수면 측정 시작으로 이어집니다.

🤖 AI 수면 이벤트 분류 시스템 (AI Collection)

  • AI는 수면 중 녹음된 오디오를 분석해 이갈이 / 코골이 / 기침 / 뒤척임 / 잠꼬대 / 삼킴 / 주변 수면 소리 / 비착용 / 기타 음성 등으로 분류합니다.

  • 분석은 30초 구간 단위로 이뤄지며, 각 구간은 로컬 ONNX 모델과 후처리를 통해 일관된 이벤트 히스토리로 정리됩니다.

  • 기록이 쌓일수록 하루 점수뿐 아니라 반복되는 패턴과 생활 습관의 상관관계를 더 선명하게 읽어낼 수 있습니다.

🎬 수면 리포트 생성 (Growth Movie)

  • 사용자는 날짜별 리포트를 선택해 해당 밤의 수면 점수, 총 수면 시간, 수면 단계, 이갈이/코골이 타임라인을 확인할 수 있습니다.

  • AI 분석 결과와 Samsung Health 수면 단계가 결합되어, 흩어져 있던 밤의 기록이 하나의 수면 이야기 리포트로 완성됩니다.

  • 전날 입력한 기분, 몸 상태, 생활 습관도 함께 표시되어 컨디션과 수면의 연결을 돌아볼 수 있습니다.

📸 실시간 수면 측정 (Dual Camera)

잠들어 있는 동안의 실제 수면 신호를 자동으로 기록합니다.

  • 스마트폰 마이크로 수면 세션을 측정할 수 있습니다. (오디오 기반)
  • 측정 중에는 핑크 / 브라운 / 화이트 노이즈 또는 무음 모드를 선택해 수면 환경을 조절할 수 있습니다.
  • 측정 직전 컨디션과 생활 습관을 함께 기록해 그날 밤의 맥락을 남길 수 있습니다.

📂 스마트 리포트 아카이브 (Smart Album)

수면 기록을 가장 편하게 찾아볼 수 있는 아카이브입니다.

보기 모드
  • 홈 요약 뷰: 가장 최근 수면 기록과 주간 흐름을 한눈에 확인할 수 있습니다.
  • 리포트 캘린더 뷰: 날짜별 수면 점수를 확인하고 원하는 날의 리포트로 이동할 수 있습니다.
누적 기록 확인
  • 연속 기록 일수와 주간 평균을 통해 꾸준함을 확인할 수 있습니다.
  • 로컬 DB와 동기화 데이터를 기반으로 오프라인 상태에서도 최근 기록을 관리할 수 있습니다.
상세 보기
  • 수면 단계 차트와 이벤트 타임라인을 통해 밤의 흐름을 자세히 볼 수 있습니다.
  • 수면 요약 문장과 생활 습관 태그를 함께 확인하여 해석을 돕습니다.

🔐 회원 및 기기 연결 (User & Family)

사용자 계정과 기기를 연결해 수면 기록을 안정적으로 저장하고 동기화합니다.

프로필 설정
  • Google 로그인 기반으로 사용자 프로필을 관리하며, 홈 화면에서 프로필과 계정 액션을 확인할 수 있습니다.
기기 연결
  • Samsung Health와 연동해 수면 단계 데이터를 불러올 수 있습니다.
  • Wear OS 앱과 연결해 워치에서 진행 상태, 아침 요약, 알람 정보를 함께 확인할 수 있습니다.
권한 관리
  • Google OAuth: 로그인과 기본 프로필 연동에 사용됩니다.
  • Samsung Health 권한: 수면 세션과 수면 단계 읽기에 사용됩니다.
데이터 동기화
  • 세션 생성, 오디오 메타데이터 업로드, 리포트 완료/요약 갱신이 서버 API와 실시간에 가깝게 동기화됩니다.

👥 팀원 구성



최성원
(AI / Leader)
• 팀장
• 온디바이스 AI 분석 파이프라인 주도
• 수면 이상 징후 탐지 모델 설계 및 검증


송준서
(AI)
• 수면 이벤트 분류 모델 개발 참여
• 데이터 전처리 및 실험 지원
• AI 추론 결과 개선 참여


서민재
(AI / Infra)
• AI 인프라 및 실험 환경 지원
• 데이터셋 관리와 학습 보조
• 모델 운영 연계 참여


김경호
(App / Android)
• Android 앱 구조 및 공통 아키텍처 구현
• 홈 / 측정 / 워치 연동 핵심 흐름 구현
• 수면 분석 UX 전반 정리


서주미
(App / Android)
• 로그인 및 수면 측정 화면 참여
• 사용자 흐름 다듬기
• UI/UX 디자인 참여


원대안
(Backend)
• 백엔드 API 및 데이터 흐름 구현 참여
• 세션/리포트 연계 구조 지원
• 서버 연동 기능 개발


김재현
(Backend)
• 인증 및 API 연동 로직 참여
• 동기화 데이터 모델 정리
• 세션/리포트 연계 구조 지원

🖥️ 실제 페이지 (화면 구성)



로그인 화면


컨디션 설정 화면


홈 대시보드 화면


수면 측정 화면


수면 리포트 (캘린더)


수면 리포트 (상세)


워치 알람 설정 화면


알람 울림 화면

💿 시스템 아키텍처

systemArchitecture


🛠️ 기술 스택

📱 앱

Category Stack
Language Kotlin
UI Compose
Architecture Architecture
Data Strategy Strategy
IDE IDE
Min SDK Min SDK
Target SDK Target SDK
Major Libs Libs

⚙️ 백엔드

수면 세션 생성과 업로드 동기화를 위해 서버 API와 연동합니다.

Category Stack
Language 연동 서버 저장소 미포함
Framework REST API
Authentication Google OAuth, Refresh Token 기반 access token 재발급
Sync Endpoints sessions, analysis-intervals, audio-info/presigned-url, complete, summary
Data Transfer Retrofit 3.0.0, OkHttp 5.3.2, Kotlinx Serialization 1.11.0
Storage Flow Presigned Upload, Session Patch, Summary Update

🤖 AI (Artificial Intelligence)

수면 중 오디오 이벤트 판별과 점수 산출을 위한 온디바이스 AI 구성입니다.

Category Stack
Language Kotlin + C++
Framework ONNX Runtime
Audio AI PaSST V14 10-class audio event classifier, 30초 구간 분석
Inference Classes Bruxism, Snore, Cough, Movements, Somniloquy, Ambient Sleep, Quiet, Swallow, Non-wearer, Other Negative
Post Processing Sleep Score Calculation, Interval Aggregation, Summary Generation
Math / Audio PCM Resampling, Mel Feature Preprocessing, ONNX Model Asset Loading

🚀 DevOps & Infrastructure

안정적인 모바일 운영과 디바이스 연동을 위한 인프라 스펙입니다.

Category Specification
Wearable Wearable
Crash Monitoring Crashlytics
Local Storage Room
Media / Alarm Media3
Health Sync Samsung Health Data SDK 1.1.0
Model Delivery onnx model asset packaging, local model version cache

🏗️ 패키지 구조

📱 Android (App) Package Structure
📂 App
 ┣ 📂app
 ┃ ┣ 📂src
 ┃ ┃ ┣ 📂main
 ┃ ┃ ┃ ┣ 📂kotlin/com/s108/bruxism
 ┃ ┃ ┃ ┃ ┣ 📂ui
 ┃ ┃ ┃ ┃ ┣ 📜BruxismApplication.kt
 ┃ ┃ ┃ ┃ ┣ 📜MainActivity.kt
 ┃ ┃ ┃ ┃ ┗ 📜...
 ┃ ┃ ┃ ┣ 📂res
 ┃ ┃ ┃ ┗ 📜AndroidManifest.xml
 ┃ ┗ 📜build.gradle.kts
 ┣ 📂core
 ┃ ┣ 📂ai
 ┃ ┣ 📂alarm
 ┃ ┣ 📂audio
 ┃ ┣ 📂common
 ┃ ┣ 📂data
 ┃ ┣ 📂database
 ┃ ┣ 📂datastore
 ┃ ┣ 📂designsystem
 ┃ ┣ 📂domain
 ┃ ┣ 📂model
 ┃ ┣ 📂navigation
 ┃ ┣ 📂network
 ┃ ┣ 📂noise
 ┃ ┣ 📂samsung-health
 ┃ ┣ 📂ui
 ┃ ┗ 📂wearable
 ┣ 📂feature
 ┃ ┣ 📂home
 ┃ ┃ ┣ 📂src/main/kotlin/com/s108/bruxism/home
 ┃ ┃ ┃ ┣ 📂navigation
 ┃ ┃ ┃ ┣ 📂screen
 ┃ ┃ ┃ ┣ 📂viewmodel
 ┃ ┃ ┃ ┗ 📜...
 ┃ ┣ 📂login
 ┃ ┃ ┣ 📂src/main/kotlin/com/s108/bruxism/login
 ┃ ┃ ┃ ┣ 📂navigation
 ┃ ┃ ┃ ┣ 📂screen
 ┃ ┃ ┃ ┣ 📂viewmodel
 ┃ ┃ ┃ ┗ 📜...
 ┃ ┣ 📂report
 ┃ ┃ ┣ 📂src/main/kotlin/com/s108/bruxism/report
 ┃ ┃ ┃ ┣ 📂audio
 ┃ ┃ ┃ ┣ 📂navigation
 ┃ ┃ ┃ ┣ 📂screen
 ┃ ┃ ┃ ┣ 📂util
 ┃ ┃ ┃ ┣ 📂viewmodel
 ┃ ┃ ┃ ┗ 📜...
 ┃ ┣ 📂sleep
 ┃ ┃ ┣ 📂src/main/kotlin/com/s108/bruxism/sleep
 ┃ ┃ ┃ ┣ 📂navigation
 ┃ ┃ ┃ ┣ 📂ui/activity
 ┃ ┃ ┃ ┣ 📂ui/component
 ┃ ┃ ┃ ┣ 📂ui/screen
 ┃ ┃ ┃ ┣ 📂util
 ┃ ┃ ┃ ┣ 📂viewmodel
 ┃ ┃ ┃ ┗ 📜...
 ┣ 📂wear
 ┃ ┣ 📂src/main/kotlin/com/s108/bruxism/wear
 ┃ ┃ ┣ 📂presentation
 ┃ ┃ ┣ 📂state
 ┃ ┃ ┗ 📜...
 ┣ 📂gradle
 ┣ 📜build.gradle.kts
 ┣ 📜gradle.properties
 ┗ 📜settings.gradle.kts
🖥️ Backend Package Structure
📂 com.s108.bruxism
┣ 📂core.network
┃ ┣ 📂api
┃ ┃ ┣ 📄AuthApi
┃ ┃ ┣ 📄SyncApi
┃ ┃ ┗ 📄UserApi
┃ ┣ 📂datasource
┃ ┣ 📂di
┃ ┣ 📂model
┃ ┗ 📂util
┣ 📂core.data
┃ ┣ 📂analysis
┃ ┣ 📂auth
┃ ┣ 📂di
┃ ┣ 📂mapper
┃ ┣ 📂repository
┃ ┃ ┣ 📄SleepAnalysisRepository
┃ ┃ ┣ 📄SleepReportRepository
┃ ┃ ┣ 📄SamsungHealthRepository
┃ ┃ ┗ 📄...
┃ ┣ 📂repository.impl
┃ ┗ 📂service
┣ 📂core.database
┃ ┣ 📂dao
┃ ┣ 📂di
┃ ┣ 📂model
┃ ┗ 📄BruxismDatabase
┣ 📂core.domain
┃ ┣ 📄CalculateSleepScoreUseCase
┃ ┣ 📄SleepScoreCalculator
┃ ┗ 📄SleepScoreInput
┣ 📂core.ai
┃ ┣ 📂ai
┃ ┣ 📂cpp
┃ ┗ 📂di
┗ 📂wear
  ┣ 📂presentation
  ┣ 📂state
  ┗ 📂listener

📊 DB 구조

App DB

appDB

📽️ 영상 포트폴리오

video_portpolio

📄 문서

기능 명세

Sleeper.pdf

About

더 나은 수면의 질을 위한 실시간 AI 수면 관리 서비스

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages