audio_summarizer / README_backup.md
Jeongsoo1975
Initial commit: Gradio text-based speaker separation app for Hugging Face Spaces
ae9ec05

A newer version of the Gradio SDK is available: 5.42.0

Upgrade

2인 대화 STT 처리기 (AI 화자 분리)

Whisper STT + Gemini AI를 결합하여 오디오 파일을 텍스트로 변환하고 화자별로 자동 분리하는 애플리케이션입니다.

주요 기능

  1. WAV 파일 자동 감지: data 폴더의 모든 WAV 파일을 자동으로 감지
  2. 고정밀 음성 인식: OpenAI Whisper를 사용한 음성-텍스트 변환
  3. AI 화자 분리: Google Gemini를 사용한 텍스트 기반 2인 대화 분리
  4. 결과 저장:
    • 전체 대화 (원본 + 화자 분리)
    • 화자별 개별 대화
    • JSON 형태 상세 데이터

기술 스택

  • UI Framework: tkinter (Python GUI)
  • 음성 인식: OpenAI Whisper
  • AI 화자 분리: Google Gemini Pro
  • 로깅: Python logging

폴더 구조

sttUsingAPI/
├── data/           # WAV 파일을 여기에 넣으세요
├── output/         # 처리 결과가 저장됩니다
├── logs/           # 로그 파일이 저장됩니다
├── .env            # API 키 설정
├── audio_summarizer.py  # 메인 애플리케이션
└── test_stt.py     # 테스트 스크립트

설치 및 설정

1. 의존성 설치

pip install torch torchaudio python-dotenv google-generativeai
pip install git+https://github.com/openai/whisper.git

2. API 키 설정

.env 파일에 Google AI API 키를 설정하세요:

# Google AI API 키 (https://aistudio.google.com/app/apikey)
GOOGLE_API_KEY=your_google_api_key_here

3. WAV 파일 준비

처리할 WAV 파일을 data/ 폴더에 넣으세요.

4. 실행

# GUI 애플리케이션
python audio_summarizer.py

# 또는 테스트 스크립트
python test_stt.py

사용 방법

  1. 애플리케이션 실행
  2. .env 파일에 Google API 키 설정 확인
  3. WAV 파일이 data/ 폴더에 있는지 확인
  4. "파일 목록 새로고침" 버튼으로 파일 목록 업데이트
  5. 개별 파일 처리: 파일 선택 후 "선택된 파일 처리" 클릭
  6. 전체 파일 처리: "모든 파일 처리" 클릭
  7. output/ 폴더에서 결과 확인

처리 과정

  1. 음성 인식: Whisper가 WAV 파일을 텍스트로 변환
  2. 화자 분리: Gemini가 텍스트 분석으로 화자별 발언 구분
  3. 결과 저장: 다양한 형태로 결과 파일 생성

출력 파일 형식

각 WAV 파일에 대해 다음 파일들이 생성됩니다:

  • {파일명}_전체대화_{타임스탬프}.txt: 원본 + 화자 분리 결과
  • {파일명}_화자1_{타임스탬프}.txt: 화자1의 발언만
  • {파일명}_화자2_{타임스탬프}.txt: 화자2의 발언만
  • {파일명}_data_{타임스탬프}.json: JSON 형태 상세 데이터

화자 분리 결과 예시

원본 텍스트:
안녕하세요, 오늘 회의에 참석해주셔서 감사합니다. 네, 안녕하세요. 준비된 자료가 있나요? 네, 프레젠테이션 자료를 준비했습니다.

화자별 분리 결과:
[화자1] 안녕하세요, 오늘 회의에 참석해주셔서 감사합니다.
[화자2] 네, 안녕하세요. 준비된 자료가 있나요?
[화자1] 네, 프레젠테이션 자료를 준비했습니다.

API 키 발급

Google AI API 키

  1. Google AI Studio 방문
  2. 구글 계정으로 로그인
  3. "Create API Key" 클릭
  4. 생성된 키를 .env 파일에 추가

로그

  • 모든 처리 과정과 오류는 logs/stt_processor.log 파일에 기록됩니다.

화자 분리 정확도

Gemini AI의 텍스트 기반 화자 분리는 다음 요소들을 분석합니다:

  • 대화 맥락: 질문과 답변의 패턴
  • 말투 변화: 존댓말/반말, 어조 변화
  • 주제 전환: 화자별 관심사나 역할
  • 언어 패턴: 개인별 표현 습관

주의사항

  • WAV 형식의 오디오 파일만 지원됩니다.
  • 최초 실행 시 Whisper 모델 다운로드로 인해 시간이 소요될 수 있습니다.
  • 인터넷 연결이 필요합니다 (모델 다운로드 및 API 호출).
  • Google AI API 사용량에 따라 비용이 발생할 수 있습니다.
  • 2인 대화에 최적화되어 있습니다.

화자 분리 정확도 향상 팁

  1. 명확한 역할 구분: 인터뷰어-인터뷰이, 강사-학생 등
  2. 대화 흐름: 자연스러운 질문과 답변 형태
  3. 말투 차이: 존댓말/반말, 전문용어 사용 차이
  4. 음질: 깨끗하고 명확한 음성
  5. 화자 간 중복 발언 최소화: 동시에 말하는 구간 최소화

문제 해결

API 키 오류

  • .env 파일에 올바른 Google AI API 키가 설정되어 있는지 확인
  • API 키의 권한 및 할당량 확인

화자 분리 정확도 문제

  • 대화 내용이 너무 짧거나 단조로운 경우 정확도 저하 가능
  • 두 명 이상의 화자가 있는 경우 부정확할 수 있음

모델 로딩 오류

  • 인터넷 연결 상태 확인
  • 가상환경 및 패키지 설치 상태 확인