File size: 3,780 Bytes
ae9ec05
 
ad0eadb
ae9ec05
 
 
 
 
 
 
ad0eadb
ae9ec05
 
ad0eadb
ae9ec05
ad0eadb
ae9ec05
d0b3084
ae9ec05
ad0eadb
d0b3084
 
 
 
 
ad0eadb
ae9ec05
d0b3084
ae9ec05
ad0eadb
 
 
 
 
 
d0b3084
 
 
 
ae9ec05
ad0eadb
 
 
 
 
d0b3084
ae9ec05
ad0eadb
d0b3084
 
 
 
ae9ec05
d0b3084
ae9ec05
ad0eadb
d0b3084
 
 
ae9ec05
d0b3084
 
 
 
 
 
ae9ec05
ad0eadb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d0b3084
ae9ec05
ad0eadb
d0b3084
 
ad0eadb
 
 
ae9ec05
d0b3084
ae9ec05
d0b3084
 
 
 
 
ad0eadb
 
 
 
 
 
d0b3084
 
 
 
 
 
 
 
 
 
 
ae9ec05
ad0eadb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
---
title: 2 대화 화자 분리기 (AI)
emoji: 🎤
colorFrom: blue
colorTo: purple
sdk: gradio
sdk_version: 4.44.0
app_file: app.py
pinned: false
license: mit
short_description: Whisper + Gemini 2.0 Flash AI를 사용한 음성 인식, 화자 분리  맞춤법 교정
---

# 🎤 2인 대화 화자 분리기 (AI)

**Whisper + Gemini 2.0 Flash AI를 사용한 음성 인식, 화자 분리 및 맞춤법 교정 서비스**

## 🚀 주요 기능

- **🎤 음성 인식**: OpenAI Whisper를 활용한 고정밀 다국어 음성-텍스트 변환
- **🎯 정확한 화자 분리**: Google Gemini 2.0 Flash를 활용한 고정밀 화자 구분
- **✏️ 맞춤법 교정**: AI 기반 한국어 맞춤법 및 오타 교정
- **📊 결과 비교**: 원본, 화자 분리, 교정본 단계별 비교 가능
- **👥 개별 화자 추출**: 각 화자의 발언만 따로 추출하여 분석 가능
- **🌐 웹 인터페이스**: 사용하기 쉬운 Gradio 기반 웹 UI
- **📝 텍스트 입력**: 오디오 없이 텍스트만으로도 화자 분리 가능

## 📖 사용법

### 🎤 오디오 파일 처리
1. **오디오 업로드**: WAV, MP3, MP4 등의 오디오 파일을 업로드
2. **처리 시작**: '🚀 오디오 처리 시작' 버튼 클릭
3. **자동 처리**: 음성 인식 → 화자 분리 → 맞춤법 교정 순으로 자동 처리
4. **결과 확인**: 탭별로 다음 결과 확인:
   - 📝 원본 텍스트 (음성 인식 결과)
   - 👥 화자 분리 (원본)
   - ✏️ 화자 분리 (교정)
   - 👤 화자1 대화
   - 👤 화자2 대화

### 📝 텍스트 직접 입력
1. **텍스트 입력**: 2인 대화 텍스트를 입력창에 붙여넣기
2. **처리 시작**: '🚀 텍스트 처리 시작' 버튼 클릭
3. **결과 확인**: 화자 분리 및 맞춤법 교정 결과 확인

## ⚙️ 기술 스택

- **음성 인식**: OpenAI Whisper (다국어 지원)
- **AI 모델**: Google Gemini 2.0 Flash
- **웹 프레임워크**: Gradio
- **언어**: Python
- **최적화**: 한국어 2인 대화

## 🎯 사용 예시

### 입력 (오디오 또는 텍스트)
```
안녕하세요, 오늘 회의에 참석해주셔서 감사합니다. 네, 안녕하세요. 준비된 자료가 있나요? 네, 프레젠테이션 자료를 준비했습니다. 그럼 시작해볼까요?
```

### 출력 결과
```
[화자1] 안녕하세요, 오늘 회의에 참석해주셔서 감사합니다.
[화자2] 네, 안녕하세요. 준비된 자료가 있나요?
[화자1] 네, 프레젠테이션 자료를 준비했습니다. 그럼 시작해볼까요?
```

## 📁 지원 형식

### 오디오 형식
- **WAV**: 무손실 고품질 (권장)
- **MP3**: 일반적인 압축 형식
- **MP4**: 비디오에서 오디오 추출
- **M4A**: Apple 기본 형식
- **FLAC**: 무손실 압축 형식

### 권장 오디오 품질
- **샘플레이트**: 16kHz 이상
- **비트레이트**: 128kbps 이상
- **채널**: 모노 또는 스테레오
- **길이**: 30초 ~ 30분 (최적: 2-10분)

## ⚠️ 주의사항

- 처리 시간은 오디오 길이에 따라 1-5분 소요
- Google AI API 사용량 제한 있음
- 2인 대화에 최적화됨
- 음질이 좋을수록 더 정확한 결과
- 배경 소음이 적고 화자 구분이 명확한 오디오 권장
- 너무 긴 오디오는 처리 시간이 오래 걸릴 수 있음

## 🔧 환경 설정

### 필요한 API 키
- `GOOGLE_API_KEY`: Google AI (Gemini) API 키

### 의존성
```
python-dotenv==1.0.0
google-generativeai==0.8.3
gradio==4.44.0
openai-whisper==20240930
torch==2.0.1
torchaudio==2.0.2
```

## 📝 License

MIT License

## 🤝 Contributing

이슈나 개선사항이 있으시면 언제든 말씀해주세요!

---

**Made with ❤️ using OpenAI Whisper + Google Gemini 2.0 Flash**