연인의 말 속 숨겨진 진짜 감정을 AI로 분석하는 감정 인텔리전스 앱
| 항목 | 값 |
|---|---|
| 앱 이름 | 속마음AI (SokMaum AI) |
| Bundle ID | com.sokmaeumai |
| 버전 | 1.0.0 (Build 2) |
| 카테고리 | Lifestyle / Social Networking |
| 비즈니스 이메일 | drjungscience@gmail.com |
| 서버 도메인 | api.yeosimradar.com |
| 단계 | 스크립트 | 소스 | 설명 |
|---|---|---|---|
| Step 1 | step1_collect_data.py | Korpora OpenSubtitles | 한국어 자막에서 감정 문장 추출 + 규칙 기반 레이블링 |
| Step 1b | step1b_youtube_subtitles.py | YouTube 자막 | 일상 대화 패턴 수집 |
| Step 1c | step1c_generate_gender_data.py | 전문가 작성 | 성별별 고품질 문장 2,400개 직접 작성 (카테고리×성별 각 80개) |
총 5,577개 레이블된 문장 → 85% Train / 15% Validation 분할
사용자가 텍스트를 직접 입력하면 오디오 피처 없이 텍스트만 서버 KoELECTRA 모델에 전달됩니다. STT 실패 시에도 폴백 모달로 텍스트 입력을 유도합니다.
| 항목 | 상세 |
|---|---|
| 베이스 모델 | monologg/koelectra-base-v3-discriminator |
| 모델 유형 | Transformer ELECTRA Discriminator (110M 파라미터) |
| 태스크 | 12-class Sequence Classification |
| 입력 제한 | 최대 128 토큰 |
| 출력 | 12개 카테고리 확률 분포 (Softmax) |
| 최적화 | AdamW (lr=2e-5, weight_decay=0.01) |
| 스케줄러 | Linear warmup (500 steps) + linear decay |
| 학습 에폭 | 5 (Early Stopping 3회 인내) |
| 검증 정확도 | 99.5% (내부) / 85~92% (실사용 예상) |
| 모델 크기 | ~430MB (safetensors) |
| 추론 디바이스 | CPU (AWS EC2) |
| 카테고리 | 가중치 |
|---|---|
| 기대·설렘 숨김 | ×1.20 ↑ |
| 불만·서운함 | ×1.18 ↑ |
| 확인·안심 요청 | ×1.15 ↑ |
| 화남·분노 | ×0.88 ↓ |
| 카테고리 | 가중치 |
|---|---|
| 화남·분노 | ×1.18 ↑ |
| 책임·원망 | ×1.15 ↑ |
| 시험·테스트 | ×1.12 ↑ |
| 기대·설렘 | ×0.85 ↓ |
| ID | 이름 | 타입 | 값 범위 | 추출 방법 |
|---|---|---|---|---|
| F01 | 어휘 유형 | Categorical(4) | 일상어·감성어·강조어·완곡어 | 감성/강조/완곡 키워드 매칭 |
| F02 | 단어 조합 | Categorical(4) | 단순·복합·역설·반어 | '괜찮','뭐든' 패턴 |
| F03 | 문법 점수 | Float [0,1] | 0.65~0.9 | 문장부호 유무 |
| F04 | 수사학 | Categorical(6) | 직접·직유·반어·과장·완곡·생략 | 키워드 패턴 |
| F05 | 반복 패턴 | Binary(2) | 없음·있음 | 연속 문자/중복 단어 |
| F06 | 문장 길이 | Categorical(3) | 짧음·보통·김 | 글자 수 기반 |
| ID | 이름 | 범위 | 추출 방법 |
|---|---|---|---|
| F07 | 전체 피치 | 80~400 Hz | 볼륨 기반 간접 추정 |
| F08 | 시작 피치 | 80~400 Hz | 첫 샘플 볼륨 |
| F09 | 중간 피치 | 80~400 Hz | 중간 샘플 볼륨 |
| F10 | 끝 피치 | 80~400 Hz | 마지막 샘플 볼륨 |
| F11 | 템포 | 2~10 음절/s | 볼륨 피크 카운팅 |
| F12 | 침묵 패턴 | 0~3초 | 실제 침묵 시간 실측 |
| F13 | 음량 변화 | 0~60 dB | max-min 볼륨 범위 |
| F14 | 호흡 강도 | 0~1 | 볼륨 급등락 비율 |
| ID | 이름 | 타입 | 추출 방법 |
|---|---|---|---|
| F15 | 음성 분위기 | Categorical(4) | 텍스트 단서 분석 (들뜸/차가움/차분) |
| F16 | 감정 극성 | Categorical(4) | 긍정/부정 키워드 카운팅 |
| F17 | 맥락 의존도 | Categorical(3) | 모호성/직접성 키워드 평가 |
| F18 | 응답 지연 | 0~5초 | 녹음 시작→첫 발화 실측 |
| F19 | 시간 맥락 | Categorical(4) | 현재 시간 기반 (낮/밤) |
| 영역 | 내용 |
|---|---|
| 카테고리 배지 | 이모지 + 카테고리 이름 (색상 코딩) |
| 분석한 말 | 사용자가 입력한 원문 이탤릭 표시 |
| 신뢰도 게이지 | 0~100% 애니메이션 바 |
| 속마음 해석 | 성별에 따른 대명사 치환 해석 문장 |
| 가능성 분석 | Top-3 카테고리 확률 바 (애니메이션) |
| 대응 조언 | 💡 카테고리별 맞춤 조언 텍스트 |
| 항목 | 상세 |
|---|---|
| 클라우드 | AWS (Amazon Web Services) |
| 인스턴스 | EC2 (IP: 13.209.124.180) |
| 도메인 | api.yeosimradar.com (HTTPS) |
| OS | Ubuntu 22.04 LTS |
| 프레임워크 | FastAPI + Uvicorn (ASGI) |
| 프로세스 관리 | systemd (yeosim-api.service) |
| 리버스 프록시 | Nginx + Let's Encrypt SSL |
| Method | Endpoint | 설명 | 인증 |
|---|---|---|---|
| POST | /api/v1/auth/register | 회원가입 | ❌ |
| POST | /api/v1/auth/login | 로그인 (JWT 발급) | ❌ |
| GET | /api/v1/auth/me | 내 정보 조회 | ✅ |
| DELETE | /api/v1/auth/account | 계정 삭제 | ✅ |
| POST | /api/v1/analysis/predict | 🤖 속마음 AI 분석 | ✅ |
| GET | /health | 서버 상태 확인 | ❌ |
| GET | /support | 고객 지원 페이지 | ❌ |
| GET | /privacy | 개인정보처리방침 | ❌ |
| 항목 | 상세 |
|---|---|
| 광고 유형 | 배너 광고 (ANCHORED_ADAPTIVE_BANNER) |
| 위치 | 메인 화면 상단 |
| SDK | react-native-google-mobile-ads |
| 개발 모드 | TestIds.BANNER (테스트 광고) |
| 배포 모드 | BANNER_AD_UNIT_ID (실제 광고) |
향후 확장: 프리미엄 구독 (무제한 분석 + 광고 제거), 상세 리포트 1회 결제
| 기술 | 용도 |
|---|---|
| React Native | 크로스 플랫폼 앱 |
| TypeScript | 타입 안전 코드 |
| Zustand | 전역 상태 관리 |
| Axios | HTTP API 통신 |
| Animated API | UI 애니메이션 |
| 기술 | 용도 |
|---|---|
| FastAPI | REST API 서버 |
| PyTorch | 딥러닝 프레임워크 |
| HuggingFace | KoELECTRA 모델 |
| AWS EC2 | 서버 호스팅 |
| Nginx | 리버스 프록시 |