졸음 운전 사고를 예방하기 위해,
- 운전자 음성 분석을 통해 졸음을 감지하는 시스템 개발
- 생성형 AI를 활용한 개인 맞춤형 음성 대화 제공
- 실시간 경고 및 간단한 스트레칭 음성 안내로 졸음 운전 상황 방지
이 서비스는 사용자의 음성을 기반으로 졸음의 징후를 실시간으로 감지하며, AI와의 자연스러운 대화를 통해 운전자가 깨어 있을 수 있도록 돕는 것을 목표로 합니다.
이 프로젝트는 React Native (Expo) 기반의 모바일 클라이언트로, 음성 기반 AI와 연동하여 개인맞춤 대화형 서비스 및 졸음 감지 서비스를 제공합니다. 프론트엔드 코드는 Client/ 폴더에, BE, AI 코드는 별도 레포지토리에 위치합니다.
아래 버전에서 개발되었습니다. 버전이 달라도 실행은 가능하지만, 동일한 환경에서의 실행을 권장합니다.
| 항목 | 권장 버전 |
|---|---|
| VSCode | v1.99 (2025.05) |
| Node.js | v22.14.0 |
| Java | v19.0.1 |
| Android Studio | Meerkat (2024.03) |
| Git | 최신 버전 |
git clone https://github.com/EwhaCapstone-X10/Client.gitnpm installSet-ExecutionPolicy -Scope Process -ExecutionPolicy Bypassnpm install expo
npm install --save-dev @types/babel__corenpm run android*배포한 서버 이용 시, 따로 설정할 부분은 없습니다.
- Client 폴더
- AI 서버 폴더
uvicorn main:app --reload --host 0.0.0.0 --port 8000ipconfigIPv4 주소 예시: 192.168.219.103
수정 파일 경로: Client/app/voiceChat.tsx
31번째 줄 수정:
const AIEndPoint = "http://192.168.219.103:8000/predict"위 주소는 예시이며, 자신의 IPv4 주소로 변경해야 합니다.
npm run androiduvicorn main:app --reload --host 0.0.0.0 --port 8000테스트 계정이 생성되어 있으므로 앱을 실행한 후 새로 시작하기 버튼을 눌러 개인 정보를 입력합니다.
개인 맞춤형 대화, 졸음 감지, 대화요약, 스트레칭 영상 확인 등 여러 기능들을 테스트 할 수 있습니다.
| 라이브러리 / API | 설명 |
|---|---|
| React Native (Expo) | 모바일 앱 개발 프레임워크 |
| axios | HTTP 통신 처리 라이브러리 |
| zustand | 상태 관리 라이브러리 |
| @react-native-async-storage/async-storage | 로컬 데이터 저장 |
| @react-native-picker/picker | 날짜 드롭다운/셀렉터 컴포넌트 |
| expo-av / expo-audio / expo-speech | 오디오 녹음/재생 및 텍스트 음성 출력(TTS) 기능 |
| react-native-youtube-iframe | 유튜브 영상 임베딩을 위한 컴포넌트 |
| react-native-dotenv | .env 파일 기반 환경 변수 사용 |
| GPT-4o (OpenAI API) | 사용자의 음성 명령에 대한 자연어 처리 및 AI 응답 생성 |
| Whisper API (OpenAI) | 사용자의 음성 입력을 텍스트로 변환하는 STT 기능 구현 |
| TypeScript | 정적 타입 언어 지원으로 안정적인 코드 작성 |
| EAS (Expo Application Services) | 앱 빌드 및 배포 자동화 도구 |





