---
name: whisper
description: 음성 파일을 텍스트로 변환한다. 사용자가 오디오 파일을 첨부했거나 "이 파일 전사해줘", "회의록 작성해줘", "전사해줘" 등 음성 인식 요청을 할 때 사용한다. 텍스트가 거의 없어도 첨부 메타가 오디오면 이 스킬이 1차 후보다.
---

# whisper

음성 인식 및 텍스트 전사 스킬.

## Trigger

- `transcribe`: 음성 파일 전사 요청
- `voice_to_text`: 음성 데이터를 텍스트로 변환
- "음성 파일 텍스트로", "회의록" 등 자연어 요청
- 첨부 파일 조건 (확장자): `.m4a`, `.mp3`, `.wav`, `.aac`, `.ogg`, `.flac`, `.opus`, `.webm`(오디오 컨테이너인 경우) 등 일반적인 음성 파일
- 첨부 파일 조건 (MIME): `audio/*` (예: `audio/mpeg`, `audio/mp4`, `audio/wav`, `audio/x-m4a`, `audio/ogg`), `application/octet-stream`이어도 확장자가 오디오 목록이면 오디오로 분류
- 무텍스트·단문: 사용자 본문이 비어 있거나 매우 짧아도 `file_summary` 또는 `file_inputs` 상 단일 오디오 첨부면 1차 후보
- 혼합 첨부: 문서·이미지와 오디오가 함께이면 단일 스킬로 억지 분류하지 않고 `needs_clarify` 정책을 우선 검토

## Do

- 업로드된 음성 파일 전사
- 오디오 URL 기반 음성 전사

## Do Not

- 실시간 스트리밍 음성 전사 (파일 기반만 지원)
- 타인의 음성 무단 전사 및 도용
- PDF, DOCX, XLSX, PPTX, TXT, MD, CSV, JSON 등 문서 분석·요약·RAG 처리
- JPG, PNG, WEBP, GIF 등 이미지 단독 처리
- EXE, DMG, APP, SH, BAT 등 실행·스크립트 파일 처리
- ZIP, 7Z, RAR, TAR 등 압축 아카이브 처리
- 확장자·MIME 모두 비오디오인 알 수 없는 바이너리 처리

## 연계 (다음 스킬 후보)

- 전사 결과는 텍스트로만 반환한다. 사용자가 같은 스레드에서 "이 전사본을 문서로 올려서 검색해", "첨부한 내용 RAG에 넣어"처럼 문서 인덱싱·검색을 요청하면 `skill-rag-file`이 다음 후보가 된다.
- 오디오 파일 자체를 `skill-rag-file`에 직접 넘기지 않는다. 오디오는 항상 `whisper`가 선행한다.

## API

- `POST /api/whisper/transcribe` - 파일 기반 전사
- `POST /api/whisper/transcribe-url` - URL 기반 전사

## 환경변수

- `SKILL_WHISPER_URL`
- `OPENAI_API_KEY`
