Skip to content

v1.0.0 - Pitching Presentation Voice Processing & Feedback Engine

Latest
Compare
Choose a tag to compare
@Daehyun-Bigbread Daehyun-Bigbread released this 21 Dec 06:36
· 23 commits to main since this release
41332c1

릴리스 제목

v1.0.0 - Pitching 음성 평가 및 분석 엔진 초기 릴리스


설명

음성 평가 및 분석 엔진은 발표 음성을 텍스트로 변환(STT), 텍스트를 음성으로 변환(TTS)하고, 발표 음성을 기반으로 다양한 평가 지표를 제공합니다. 이 엔진은 사용자 음성의 발음 정확도, 음성 유사도, 말하기 속도 등의 분석 결과를 산출하며, 발표 준비 및 피드백에 활용할 수 있습니다.


주요 기능

  1. 음성 처리 및 분석

    • STT (Speech-To-Text): Whisper 모델을 사용하여 음성을 텍스트로 변환합니다.
    • TTS (Text-To-Speech): Whisper 기반 TTS 모델을 사용하여 기준 음성을 생성합니다.
    • 발음 정확도 분석: STT 결과와 스크립트를 비교하여 발음 정확도를 평가합니다.
    • 음성 유사도 분석: Librosa를 활용하여 사용자 음성과 TTS 음성 간의 유사도를 계산합니다.
    • 말하기 속도 계산: 발표자의 말하기 속도를 단어 수와 오디오 길이를 기반으로 분석합니다.
  2. 유연한 스크립트 처리

    • 사용자 제공 스크립트: 사용자가 스크립트를 제공할 경우 이를 기준으로 분석을 수행합니다.
    • 자동 보정 스크립트: 스크립트가 제공되지 않을 경우 Whisper STT와 LLM(OpenAI API)을 사용하여 자동으로 텍스트를 보정합니다.
  3. 발표 점수 계산

    • 종합 분석 지표 제공:
      • 발음 정확도
      • 음성 유사도
      • 말하기 속도
    • 구간별 분석 결과(WPM, 발음 정확도)를 JSON 형식으로 제공합니다.
  4. API 기반 클라이언트 통합

    • FastAPI를 활용한 API:
      • 음성 업로드 및 분석 요청 API 제공.
    • JSON 응답 형식으로 분석 결과를 반환하여 클라이언트 통합이 용이합니다.
  5. 로깅 및 오류 처리

    • 구조화된 로깅: python-json-logger, colorlog를 활용하여 오류 및 상태 로깅.
    • 오류 처리: STT, TTS, 분석 과정에서 발생할 수 있는 예외를 명확히 처리하여 안정성을 확보합니다.

설치 및 실행 방법

  1. 의존성 설치:

    pip install -r requirements.txt
  2. FastAPI 서버 실행:

    uvicorn main:app --host 0.0.0.0 --port 8000 --reload --log-config logging_config.json
  3. API 사용:

    • POST /upload-audio: 음성 파일 업로드 및 분석 요청.
    • GET /get-analysis: 분석 결과 JSON 반환.
  4. 테스트 실행:

    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를 활용하여 작업을 체계적으로 분할 및 관리하였습니다.