diff --git a/.gitignore b/.gitignore index 8e8ac55..c3df74b 100644 --- a/.gitignore +++ b/.gitignore @@ -21,8 +21,12 @@ venv/ # Models / data / scratch *.log models/ -samples/*.wav -samples/*.mp4 +samples/**/*.wav +samples/**/*.flac +samples/**/*.mp3 +samples/**/*.m4a +samples/**/*.mp4 +samples/**/*.mov # ─── OS / editor ────────────────────────────────────────── .DS_Store diff --git a/samples/README.md b/samples/README.md new file mode 100644 index 0000000..cb998a2 --- /dev/null +++ b/samples/README.md @@ -0,0 +1,39 @@ +# samples/ — bench 데이터셋 (KO+EN 도메인) + +`bench` 게이트(turbo vs large-v3 의 **R-WER · entity 보존율**)와 혼용어 정확도(AC-4) +검증의 입력입니다. 이 데이터가 있어야 설계 모호도 마지막 ~5%(하이브리드→단일 확정)를 +측정으로 닫을 수 있습니다. + +## 무엇이 필요한가 +1. **오디오/영상 클립** — wav/flac/mp3/m4a/mp4 등(엔진이 ffmpeg로 디코딩). 5~60초 권장, **5~20개부터** 시작 가능. +2. **정답 전사(ground truth)** — 각 클립의 올바른 한국어 텍스트. **영문 기술용어는 영문 그대로**(예: `vLLM`, `API`, `Kubernetes`). +3. (선택) **도메인 엔티티 목록** — entity 보존율 측정용. + +## 배치 형식 +``` +samples/ko_en/ + clips/0001.wav + clips/0002.wav + manifest.jsonl # 클립 ↔ 정답 매핑 (한 줄당 1 클립) + entities.txt # (선택) 한 줄당 도메인 용어 +``` + +`manifest.jsonl` 예: +```jsonl +{"audio": "clips/0001.wav", "text": "그 API 서빙할 때 vLLM 쓰면 성능 대박이야", "lang": "ko"} +{"audio": "clips/0002.wav", "text": "FastAPI로 엔드포인트 만들고 Kubernetes에 배포했어", "lang": "ko"} +``` + +`entities.txt` 예(선택): +``` +vLLM +FastAPI +Kubernetes +CTranslate2 +GPU +``` + +## 주의 +- 오디오/영상 파일은 `.gitignore`로 **커밋 제외**(용량·프라이버시). `manifest.jsonl`·`entities.txt`·이 README만 추적. +- entity 보존율은 **정답 텍스트의 영문 표기**를 기준으로 계산하니 표기를 정확히. +- `bench` 구현 시 이 형식을 그대로 소비합니다: `uv run luke-scribe bench --samples samples/ko_en/`.