AI 기반 발표 피드백 시스템 — 발표 음성을 업로드하면 항목별 피드백과 개선 방향을 자동으로 제공합니다.
- Filler Word 감지 — "음", "어", "그" 등 불필요한 추임새 자동 감지 및 빈도 시각화
- 말하기 속도 분석 — 구간별 WPM 측정, 빠름/적정/느림 구간 식별 및 그래프 시각화
- 논리 구조 평가 — 서론-본론-결론 구조의 적절성 평가
- 표현 오류 감지 — 부자연스러운 표현, 문법 오류, 조사 오용 등 감지
- 개선 문장 제안 — 전달력을 높일 수 있는 대안 문장 자동 생성
- 완성도 점수 — 항목별 가중치를 적용한 0~100점 정량 평가
- PDF 리포트 — 분석 결과를 PDF로 다운로드하여 반복 연습 시 비교 가능
- 면접 모드 — 면접 질문을 입력하면 답변 음성을 분석하여 질문-답변 적합도까지 평가
| 구분 | 사용 기술 |
|---|---|
| STT (음성→텍스트) | OpenAI Whisper API |
| 텍스트 분석 | GPT-4o-mini API |
| 웹 UI | Streamlit |
| 시각화 | Matplotlib |
| PDF 생성 | ReportLab |
| 언어 | Python 3.x |
음성 파일 업로드
→ Whisper API (텍스트 변환 + 타임스탬프 추출)
→ WPM 계산
→ GPT-4o-mini (항목별 분석, JSON 응답)
→ Streamlit (시각화 대시보드)
→ ReportLab (PDF 리포트 생성)
# 1. 저장소 클론
git clone https://github.com/Heooooooo/PresentAI.git
cd PresentAI
# 2. 가상환경 생성 및 활성화
python -m venv venv
venv\Scripts\activate # Windows
# 3. 패키지 설치
pip install -r requirements.txt
# 4. 환경변수 설정
cp .env.example .env
# .env 파일을 열어 OpenAI API 키 입력
streamlit run app.py
브라우저에서 http://localhost:8501 접속 후 음성 파일 업로드
PresentAI/
├── app.py # Streamlit 메인 (UI + 파이프라인 연결)
├── stt.py # Whisper STT + WPM 계산
├── analyzer.py # GPT 분석 프롬프트 + JSON 파싱
├── report.py # PDF 리포트 생성 (ReportLab)
├── fonts/
│ ├── NanumGothic-Regular.ttf
│ └── NanumGothic-Bold.ttf
├── .env.example
├── .gitignore
├── requirements.txt
└── README.md
| 항목 | 가중치 | 설명 |
|---|---|---|
| 논리 구조 | 35점 | 서론-본론-결론 흐름의 논리성 |
| Filler Word 및 반복 표현 | 25점 | 불필요한 추임새 및 과도한 반복 |
| 말하기 속도 | 20점 | WPM 기준 적정 속도 (80~120 WPM) |
| 표현 정확성 | 20점 | 문법, 조사, 표현의 자연스러움 |
- Whisper 환각(Hallucination): 무음 파일 입력 시 Whisper가 존재하지 않는 텍스트를 생성할 수 있음 (예: "시청해주셔서 감사합니다"). 환각 패턴 필터링으로 부분 대응 중
- GPT 분석 일관성: 동일 입력에 대해 점수가 소폭 달라질 수 있음 (temperature=0.3으로 최소화)
- librosa 기반 음성 특성 분석 (피치, 음량, 떨림 → 긴장도 분석)
- 다국어 지원 (영어 발표 분석)
- 발표 히스토리 저장 및 점수 변화 추적
- OpenAI Whisper: MIT License
- GPT-4o-mini API: OpenAI Terms of Use
- ReportLab: BSD License
- Streamlit: Apache 2.0 License