﻿# EasyTranscribe / おまかせ文字起こし

[日本語](README.md) ｜ [English](README.en.md) ｜ [中文](README.zh.md)

로컬 환경에서 동영상 전사, 편집, 자막 삽입을 할 수 있는 도구입니다.  
완전 로컬 동작 · 무료 · 서비스 종료 없음. Mac / Windows 지원.

---

[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.20515527.svg)](https://doi.org/10.5281/zenodo.20515527)

도움이 되셨다면 **[⭐ Star](https://github.com/sasakireijiyagi/video-cut-editor)** 를 눌러주세요 — 큰 힘이 됩니다!

이 도구는 규슈대학교 연구자가 여가 시간에 혼자 개발하고 유지하고 있습니다.
이제 전 세계의 많은 분들이 사용해 주시게 되었습니다.
연구나 업무에 도움이 되셨다면, **커피 한 잔 값의 후원이라도 다음 개발의 큰 원동력이 됩니다** ☕  
앱 오른쪽 상단의 **❤ 개발 지원** 버튼을 눌러주세요.

---

## 기능 개요

```
동영상 열기 → 자동 전사 (Whisper) → 불필요한 구간 체크 해제 → ffmpeg으로 내보내기
```

- **전사**: [OpenAI Whisper](https://github.com/openai/whisper)로 강의·회의 동영상을 전사 — **100개 언어 지원**
- **편집**: SRT 구간의 시작/종료 시간 조정, 텍스트 편집, ◀/▶ 버튼으로 미세 조정
- **분할/병합**: 문자 위치를 클릭하여 구간 분할, 여러 구간을 하나로 병합
- **편집**: 선택한 구간을 하나의 파일로 합치거나 개별 파일로 저장
- **자막 삽입**: 굵은 고딕체·흰색 글자·검은 테두리로 자막을 동영상에 직접 삽입
- **일괄 전사**: 여러 파일을 큐에 추가하고 처리 중에도 파일 추가 가능
- **세로 동영상** (9:16): 자동 감지 후 세로 레이아웃으로 전환

---

## 지원 전사 언어 — 100개 언어

Whisper는 **100개 언어**의 전사를 지원합니다. 앱의 언어 선택기에서는 13개 주요 언어 + 자동 감지를 선택할 수 있습니다.

| 지역 | 언어 |
|------|------|
| 동아시아 | 일본어 · 중국어（표준어 · 광둥어）· 한국어 |
| 동남아시아 | 인도네시아어 · 말레이어 · 태국어 · 베트남어 · 필리핀어 · 자바어 · 크메르어 · 라오어 · 미얀마어 |
| 남아시아 | 힌디어 · 벵골어 · 우르두어 · 타밀어 · 텔루구어 · 구자라트어 · 마라티어 · 펀자브어 · 네팔어 · 싱할라어 |
| 중동 / 중앙아시아 | 아랍어 · 페르시아어 · 히브리어 · 터키어 · 카자흐어 · 우즈베크어 · 아제르바이잔어 · 조지아어 · 아르메니아어 |
| 유럽（서부）| 영어 · 스페인어 · 프랑스어 · 독일어 · 이탈리아어 · 포르투갈어 · 네덜란드어 · 스웨덴어 · 노르웨이어 · 덴마크어 · 핀란드어 · 폴란드어 · 체코어 · 헝가리어 · 루마니아어 · 그리스어 |
| 유럽（동부）| 러시아어 · 우크라이나어 · 불가리아어 · 세르비아어 · 크로아티아어 · 슬로바키아어 · 슬로베니아어 · 마케도니아어 · 벨라루스어 · 리투아니아어 · 라트비아어 · 에스토니아어 |
| 아프리카 | 스와힐리어 · 하우사어 · 요루바어 · 소말리아어 · 암하라어 · 쇼나어 · 링갈라어 · 마다가스카르어 |
| 기타 | 웨일스어 · 아이슬란드어 · 마오리어 · 하와이어 · 라틴어 · 산스크리트어 등 |

---

## 필요 환경

- [Anaconda](https://www.anaconda.com/download) 또는 [Miniconda](https://docs.conda.io/en/latest/miniconda.html)
- 인터넷 연결 (최초 설치 시만 필요)

---

## 설치 — Mac

배포 폴더 내의 **「セットアップ.command」**를 더블클릭하면 터미널이 열리고 자동으로 설치가 진행됩니다. 완료 후 Enter를 눌러 창을 닫으세요.

> **자동 설치 항목 (이미 있으면 건너뜀):**
> - Homebrew
> - ffmpeg
> - Whisper

> **"개발자를 확인할 수 없습니다" 메시지가 표시될 경우:**  
> 파일을 우클릭 → 열기 → 열기를 클릭하세요.

## 설치 — Windows

### 1. ffmpeg 설치

[ffmpeg.org](https://ffmpeg.org/download.html)에서 빌드된 바이너리를 다운로드하여 `C:\ffmpeg`에 압축 해제하고, 시스템 환경 변수 PATH에 `C:\ffmpeg\bin`을 추가하세요.

### 2. Whisper 설치

```bat
pip install openai-whisper
```

### 3. PyQt6 설치

```bat
pip install PyQt6
```

### 4. 실행

```bat
python editor.py
```

---

## 실행 — Mac

설치 완료 후 **`EasyTranscribe.app`**을 더블클릭하면 됩니다.

---

## 사용 방법

**① 동영상 열기**  
"동영상 열기…"를 클릭하여 파일을 선택합니다. 같은 폴더에 동명의 `.srt` 파일이 있으면 자동으로 불러옵니다.  
세로 동영상(높이 > 너비)은 자동 감지되어 레이아웃이 세로로 전환됩니다.

**② 전사**  
"🎙 전사 실행"을 클릭합니다. 완료되면 오른쪽 테이블에 구간 목록이 표시됩니다.

**③ 구간 확인 및 편집**  
- 행을 클릭하면 해당 구간을 미리보기 재생 (구간 끝에서 자동 정지)
- 텍스트 열을 더블클릭하면 즉석 편집 가능
- 시작/종료 시간 열을 더블클릭하면 직접 입력 가능 (`HH:MM:SS,mmm` 형식)
- **◀ / ▶ 버튼**으로 100ms 또는 500ms 단위로 시간 미세 조정
- **우클릭 → 행 분할…** — 텍스트의 원하는 위치를 클릭하여 분할, 시간은 문자 비율로 자동 계산
- **우클릭 → 선택 행 병합** — 연속된 여러 행을 선택하여 하나로 병합
- 모든 편집은 **Ctrl+Z** 실행 취소 / **Ctrl+Y** 다시 실행 지원
- **Ctrl+H**로 찾기 및 바꾸기 열기
- **✂ 필러 컷** 으로 필러 단어가 포함된 구간을 한 번에 체크 해제
- **SRT 저장**으로 편집 내용을 원본 SRT 파일에 덮어쓰기

**④ 불필요한 구간 체크 해제**  
삭제할 행의 체크를 해제합니다. 선택된 구간의 총 시간이 실시간으로 표시됩니다.

**⑤ 내보내기**  
출력 설정을 선택하고 "▶ ffmpeg 편집 실행"을 클릭합니다.

---

## 출력 옵션

| 옵션 | 내용 |
|------|------|
| 하나의 파일로 합치기 | 선택한 구간을 하나의 동영상으로 결합 |
| 구간별 개별 파일 저장 | 각 구간을 개별 파일로 저장 |
| 재인코딩 | 정밀한 편집 가능 (속도 느림) |
| 자막 삽입 | 동영상에 자막을 직접 삽입 (아래 참조) |
| 출력 폴더 | 저장 위치를 자유롭게 지정 |

---

## 자막 삽입

출력 설정에서 **"자막 삽입"**을 체크하면 자막을 동영상에 직접 삽입할 수 있습니다.

- 폰트: 굵은 고딕체 (Mac에서는 Hiragino Kaku Gothic ProN)
- 스타일: 흰색 글자, 검은 테두리, 하단 중앙 고정
- 폰트 크기 조절 가능 (가로 동영상 기본값 40px / 세로 동영상 36px)
- **▶ 미리보기** 로 선택 구간만 렌더링하여 확인 가능

---

## 일괄 전사

**"📂 일괄 전사"**를 클릭하면 여러 동영상을 한꺼번에 전사할 수 있습니다.

1. 파일 또는 폴더 추가
2. 모델, 언어, 무음 설정 확인
3. ▶ 실행 클릭

- 현재 처리 중인 파일이 실시간으로 표시됩니다: `Processing [2/5]: lecture03.mp4`
- **처리 중에도 파일을 추가할 수 있습니다** — 즉시 큐에 반영됩니다

---

## 키보드 단축키

**SRT 테이블 조작**

| 키 | 기능 |
|----|------|
| ↓ / ↑ | 다음/이전 행으로 이동하여 재생 |
| X | 현재 행 체크 토글 |
| D | 텍스트 편집 모드로 진입 |
| Escape | 편집 모드 종료 |
| S | 분할 대화상자 열기 |
| Z | 이전 행과 병합 |
| C | 다음 행과 병합 |

**일반**

| 단축키 | 기능 |
|--------|------|
| Ctrl+Z | 실행 취소 |
| Ctrl+Y | 다시 실행 |
| Ctrl+H | 찾기 및 바꾸기 열기 |

---

## Whisper 모델

| 모델 | 정확도 | 속도 | 비고 |
|------|--------|------|------|
| large-v3 ★ | ◎ 최고 | 느림 | 권장 |
| medium ★ | ○ | 보통 | |
| small ★ | △ | 빠름 | |
| base ★ | △ | 가장 빠름 | |
| turbo | ○ | 빠름 | 첫 사용 시 자동 다운로드 |

**★** = 로컬에 다운로드 완료.  
★ 없는 모델은 첫 사용 시 자동으로 다운로드됩니다 (large-v3 약 3 GB).  
CPU로 실행 시 처리 시간은 동영상 길이의 **3～10배** 정도 소요됩니다.

---

## 주의사항

- 원본 동영상 파일은 변경되지 않습니다
- "SRT 저장"은 원본 SRT 파일을 **덮어씁니다** — 필요한 경우 백업해 두세요
- 동일한 동영상을 다시 전사하면 기존 SRT 파일이 덮어씌워집니다

---

## 면책 조항

이 도구는 연구 및 교육 목적의 실험적 소프트웨어입니다. 동작을 보장하지 않으며, 사용으로 인해 발생한 어떠한 손해에 대해서도 작성자는 책임을 지지 않습니다.

---

## 라이선스

자유롭게 사용, 수정, 배포할 수 있습니다.

---

## 피드백 및 버그 신고

사용 후기, 개선 제안, 버그 신고는 **[GitHub Issues](https://github.com/sasakireijiyagi/video-cut-editor/issues)** 로 편하게 남겨주세요. 한국어·일본어·영어 모두 가능합니다.
