릴리스 제목
v1.0.0 - Pitching 음성 평가 및 분석 엔진 초기 릴리스
설명
음성 평가 및 분석 엔진은 발표 음성을 텍스트로 변환(STT), 텍스트를 음성으로 변환(TTS)하고, 발표 음성을 기반으로 다양한 평가 지표를 제공합니다. 이 엔진은 사용자 음성의 발음 정확도, 음성 유사도, 말하기 속도 등의 분석 결과를 산출하며, 발표 준비 및 피드백에 활용할 수 있습니다.
주요 기능
-
음성 처리 및 분석
- STT (Speech-To-Text): Whisper 모델을 사용하여 음성을 텍스트로 변환합니다.
- TTS (Text-To-Speech): Whisper 기반 TTS 모델을 사용하여 기준 음성을 생성합니다.
- 발음 정확도 분석: STT 결과와 스크립트를 비교하여 발음 정확도를 평가합니다.
- 음성 유사도 분석: Librosa를 활용하여 사용자 음성과 TTS 음성 간의 유사도를 계산합니다.
- 말하기 속도 계산: 발표자의 말하기 속도를 단어 수와 오디오 길이를 기반으로 분석합니다.
-
유연한 스크립트 처리
- 사용자 제공 스크립트: 사용자가 스크립트를 제공할 경우 이를 기준으로 분석을 수행합니다.
- 자동 보정 스크립트: 스크립트가 제공되지 않을 경우 Whisper STT와 LLM(OpenAI API)을 사용하여 자동으로 텍스트를 보정합니다.
-
발표 점수 계산
- 종합 분석 지표 제공:
- 발음 정확도
- 음성 유사도
- 말하기 속도
- 구간별 분석 결과(WPM, 발음 정확도)를 JSON 형식으로 제공합니다.
- 종합 분석 지표 제공:
-
API 기반 클라이언트 통합
- FastAPI를 활용한 API:
- 음성 업로드 및 분석 요청 API 제공.
- JSON 응답 형식으로 분석 결과를 반환하여 클라이언트 통합이 용이합니다.
- FastAPI를 활용한 API:
-
로깅 및 오류 처리
- 구조화된 로깅:
python-json-logger
,colorlog
를 활용하여 오류 및 상태 로깅. - 오류 처리: STT, TTS, 분석 과정에서 발생할 수 있는 예외를 명확히 처리하여 안정성을 확보합니다.
- 구조화된 로깅:
설치 및 실행 방법
-
의존성 설치:
pip install -r requirements.txt
-
FastAPI 서버 실행:
uvicorn main:app --host 0.0.0.0 --port 8000 --reload --log-config logging_config.json
-
API 사용:
- POST
/upload-audio
: 음성 파일 업로드 및 분석 요청. - GET
/get-analysis
: 분석 결과 JSON 반환.
- POST
-
테스트 실행:
pytest --cov=pronun_model tests/
의존성
-
핵심 라이브러리
openai
,librosa
,soundfile
,pydub
Whisper STT/TTS 모델
-
FastAPI 관련
fastapi
,uvicorn
,python-multipart
-
데이터 처리 및 분석
scikit-learn
,fuzzywuzzy
,PyPDF2
,python-docx
,striprtf
-
로깅 및 모니터링
python-json-logger
,colorlog
,sentry-sdk[fastapi]
-
테스트 도구
pytest
,pytest-cov
,pytest-mock
,httpx
폴더 구조
-
pronun_model
:- STT, TTS, 음성 유사도, 발음 정확도 분석 관련 모듈.
- 예외 처리 및 로깅 설정 포함.
-
storage
:- 음성 파일 저장 디렉토리(
convert_mp3
,convert_tts
,input_video
,scripts
).
- 음성 파일 저장 디렉토리(
-
tests
:- STT, TTS 및 분석 모듈 단위 테스트.
-
Research
:- 음성 모델 연구 및 텍스트 추출 스크립트 관련 Jupyter 노트북.
추가 정보
- 버전 관리 전략: Git Flow 전략을 활용하여 안정성과 개발 편의성을 확보하였습니다.
- 프로젝트 관리 도구: GitHub Issue와 Jira를 활용하여 작업을 체계적으로 분할 및 관리하였습니다.