이 프로젝트는 독거노인과 경계성 지능인을 위한 음성 인식 기반 소통 및 건강 알림 앱입니다.
사용자의 음성을 실시간으로 인식하여 뉴스 요청, 날씨 요청, 이야기 공유 등 의도를 파악하고,
해당 카테고리에 맞는 정보를 제공합니다.
또한 사용자 맞춤형 건강 알람 기능을 통해 특정 시간에 복약, 스트레칭, 건강 활동을 알림으로 제공합니다.
사용자의 음성을 텍스트로 변환하고, 이를 분류하여 해당 요청을 처리합니다.
예:
"오늘 날씨 어때?"→날씨 요청"요즘 정치 뉴스 알려줘"→뉴스 요청"오늘 이런 일이 있었어"→이야기
- 사용자의 키워드를 기반으로 실시간 뉴스를 크롤링
- 뉴스 내용을 간단한 요약문으로 응답
- 사용자의 현재 지역에 기반한 기상청 또는 포털 날씨 데이터 크롤링
- 사용자가 자신의 이야기를 저장할 수 있으며
- 타 사용자의 이야기를 무작위 응답으로 제공
- 사용자 입력 기반: 나이, 성별, 관심 질환
- 정해진 시간마다 복약, 운동, 건강 알림 전송
- Flutter 앱과 FastAPI 백엔드 간 연동
| 기술 | 설명 |
|---|---|
| FastAPI | 백엔드 서버, API 및 라우팅 |
| Flutter | 프론트엔드 앱 구현 |
| SQLite | 로컬 데이터 저장소 |
| BeautifulSoup | 뉴스/날씨 웹 크롤링 |
| Pydantic | 데이터 모델 유효성 검사 |
| Flutter Local Notifications | 로컬 푸시 알림 구현 |
| TTS / STT API | 음성 ↔ 텍스트 처리 (Kakao 등) |
| GitHub Actions (예정) | CI/CD 자동화 구축 예정 |
backend/
├── best_model/ # 음성 분류 모델 파일
├── crawling/ # 뉴스/날씨 크롤링 모듈
├── data/ # 테스트 및 저장용 샘플 데이터
├── routers/ # FastAPI 라우터 (음성, 뉴스, 날씨, 알람 등)
├── static/profile_images/ # 사용자 프로필 이미지 저장 폴더
├── utils/ # 전처리 및 분류 유틸리티 함수 모음
├── main.py # FastAPI 애플리케이션 진입점
├── models.py # SQLAlchemy ORM 모델 정의
├── database.py # DB 연결, 세션 관리
├── requirements.txt # Python 패키지 명세
└── README.md # 프로젝트 설명서
| 파일 | 설명 |
|---|---|
main.py |
FastAPI 서버 실행부 |
models.py |
사용자, 알람, 이야기 저장용 ORM 모델 |
database.py |
DB 연결, 세션 구성 |
routers/ |
기능별 API 라우터 (/news, /weather, /story, /alarm 등) |
utils/ |
전처리, 의도 분류 모델 처리 등 유틸리티 |
crawling/ |
BeautifulSoup 기반 뉴스/날씨 데이터 수집 모듈 |
# 패키지 설치
pip install -r requirements.txt
# FastAPI 서버 실행
uvicorn main:app --reload