|
1 | | -# Welcome to your organization's demo respository |
2 | | -This code repository (or "repo") is designed to demonstrate the best GitHub has to offer with the least amount of noise. |
| 1 | +# SayUp 발음 평가 서버 |
3 | 2 |
|
4 | | -The repo includes an `index.html` file (so it can render a web page), two GitHub Actions workflows, and a CSS stylesheet dependency. |
| 3 | +FastAPI 기반 한국어 발음 분석 서버입니다. 사용자가 업로드한 음성 파일과 텍스트를 비교해 발음 점수를 평가합니다. |
5 | 4 |
|
6 | | ----type 1--- |
| 5 | +## 🔧 주요 기능 |
7 | 6 |
|
8 | | -api_etri_text.py => 마이크로 사용자 음성 입력받아서 텍스트로 변환후 표준 발음과 비교 |
| 7 | +- 🎙️ 발음 평가 (`/evaluate-pronunciation`) |
| 8 | +- 🧠 G2P(문자 → 발음) 기반 비교 |
| 9 | +- 📈 발음 점수 기록 및 시각화 (`/score-history`, `/score-plot`) |
| 10 | +- 🧾 개인 리포트 PDF 생성 (`/generate-report`) |
| 11 | +- 🧠 ETRI API 연동으로 실시간 발음 인식 |
9 | 12 |
|
10 | | -Mfcc , DTW : 소리의 유사성을 기반으로 음소 단위의 발음 정확도와 언어적 맥락을 반영하는데 한계점. |
| 13 | +--- |
11 | 14 |
|
12 | | -----발전 해야될 것---- |
13 | | -vc model |
14 | | -S2S model |
15 | | -Tacotron2 + WaveNet |
| 15 | +## 🛠 설치 및 실행 |
16 | 16 |
|
| 17 | +### 1. 가상환경 생성 및 패키지 설치 |
17 | 18 |
|
| 19 | +```bash |
| 20 | +python -m venv venv |
| 21 | +source venv/bin/activate # 윈도우: venv\Scripts\activate |
| 22 | +pip install -r requirements.txt |
| 23 | +``` |
| 24 | + |
| 25 | +### 2. 서버 실행 |
| 26 | + |
| 27 | +```bash |
| 28 | +uvicorn score_server:app --reload |
| 29 | +``` |
| 30 | + |
| 31 | +서버가 실행되면 [http://localhost:8000/docs](http://localhost:8000/docs)에서 Swagger UI로 API 테스트 가능 |
| 32 | + |
| 33 | +--- |
| 34 | + |
| 35 | +## 🧩 디렉토리 구조 |
| 36 | + |
| 37 | +```bash |
| 38 | +. |
| 39 | +├── main.py |
| 40 | +├── routes/ |
| 41 | +│ └── evaluate.py |
| 42 | +├── services/ |
| 43 | +│ └── pronunciation_service.py |
| 44 | +├── models/ |
| 45 | +│ └── pronunciation_model.py |
| 46 | +├── static/ |
| 47 | +├── data/ |
| 48 | +│ └── standard_pronunciation.wav |
| 49 | +├── requirements.txt |
| 50 | +└── README.md |
| 51 | +``` |
| 52 | + |
| 53 | +--- |
| 54 | + |
| 55 | +## 🔐 ETRI API 사용법 |
| 56 | + |
| 57 | +`models/pronunciation_model.py`에서 `API_KEY`를 발급받은 키로 교체하거나 `.env`로 관리할 수 있습니다. |
| 58 | + |
| 59 | +발급: [ETRI AI Open Platform](https://aiopen.etri.re.kr/) |
| 60 | + |
| 61 | +--- |
| 62 | + |
| 63 | +## 📋 API 예시 |
| 64 | + |
| 65 | +### POST `/evaluate-pronunciation` |
| 66 | + |
| 67 | +- `file`: 사용자의 음성 파일 (wav) |
| 68 | +- `text`: 사용자가 발음해야 할 기준 문장 |
| 69 | +- `user_id`: 사용자 식별자 |
| 70 | + |
| 71 | +--- |
| 72 | + |
| 73 | +## 🧠 향후 확장 아이디어 |
| 74 | + |
| 75 | +- Whisper 또는 open-korean-speech dataset 기반 학습 모델 연동 |
| 76 | +- 음성 텍스트 강조 시각화 |
| 77 | +- 음소 단위 피드백 |
| 78 | + |
| 79 | +--- |
| 80 | + |
| 81 | +## 📄 라이선스 |
| 82 | + |
| 83 | +MIT |
0 commit comments