원클릭으로
transcribe
// 로컬 오디오 파일(m4a 등)을 한국어로 전사하는 skill. "전사해줘", "받아쓰기", "음성 파일 텍스트로", "transcribe", "음성 받아적어줘", "녹음 파일 변환" 등 오디오 → 텍스트 변환 요청에 트리거된다.
// 로컬 오디오 파일(m4a 등)을 한국어로 전사하는 skill. "전사해줘", "받아쓰기", "음성 파일 텍스트로", "transcribe", "음성 받아적어줘", "녹음 파일 변환" 등 오디오 → 텍스트 변환 요청에 트리거된다.
지금까지의 작업을 한 번에 출하한다 — 커밋 → push → PR 생성 → squash merge. "commit push pr squash merge", "ship it", "출하해줘", "PR 만들고 머지해줘", "커밋푸시 PR 스쿼시", "변경사항 commit push 후 pr 생성하고 squash merge" 등 commit+push+PR+merge를 한 번에 끝내려는 의도에서 트리거된다. 커밋만/푸시만 원하면 commit skill을 쓴다.
한 프로젝트에서 사용자가 Claude Code에 입력한 프롬프트·작업 이력을 분석해 (1) 사용 패턴 정량화, (2) 사용자의 개발 철학 추출(근거 인용), (3) 그 철학을 렌즈로 한 메타 시스템(하니스·게이트·CI·프로세스) audit, (4) 우선순위가 매겨진 개선점 발굴을 수행한다. 트리거 — "내 프롬프트 분석해줘", "claude code 사용 패턴 분석", "내 개발 철학 추출", "메타 시스템 점검/audit", "하니스 개선점 발굴", "내가 입력한 프롬프트 기반으로 개선점 파악" 및 유사 의도.
사용자에게 Discord DM을 전송한다. 메세지 내용을 입력받아 봇을 통해 개인 메세지를 보낸다.
비즈니스 메일/답장 초안을 작성할 때 적용하는 글쓰기 매너. "초안 작성", "메일 작성", "답변 작성", "회신", "메일 써줘", "draft email", "reply" 등 메일 관련 작성 요청에 트리거된다.
gogcli를 사용하여 Gmail 메일을 검색, 조회, 발송하는 skill. "메일 검색해줘", "이메일 보내줘", "gmail search", "메일 확인해줘", "최근 메일", "메일 답장", "gmail send", "메일 보내줘", "안 읽은 메일" 등 Gmail 관련 요청에 트리거된다.
gogcli를 사용하여 Google Calendar 일정을 조회, 검색, 생성, 수정, 삭제하는 skill. "일정 확인해줘", "캘린더 보여줘", "오늘 일정", "이번주 일정", "미팅 잡아줘", "일정 추가", "calendar events", "일정 생성", "스케줄 확인", "빈 시간 확인", "일정 삭제" 등 Google Calendar 관련 요청에 트리거된다.
| name | transcribe |
| description | 로컬 오디오 파일(m4a 등)을 한국어로 전사하는 skill. "전사해줘", "받아쓰기", "음성 파일 텍스트로", "transcribe", "음성 받아적어줘", "녹음 파일 변환" 등 오디오 → 텍스트 변환 요청에 트리거된다. |
Apple Silicon 네이티브 mlx-whisper(Whisper large-v3-turbo)로 로컬 오디오 파일을 한국어 텍스트로 전사한다.
사용자가 제공한 오디오 파일 경로를 확인한다. 상대경로면 현재 작업 디렉토리 기준 절대경로로 변환한다.
지원 포맷: m4a 기본, mp3/wav/mp4 등 ffmpeg이 디코딩 가능한 포맷 모두 동작.
현재 대화 맥락에서 다음 카테고리를 적극적으로 끌어모아 한국어 한두 문장으로 조합해 --initial-prompt에 넣는다. 맥락이 있으면 가능한 한 풍부하게 채운다(없는 정보를 지어내지는 않는다).
수집할 카테고리:
예시:
--initial-prompt "이 녹음은 바이브마피아클럽 최수민과 구글의 B2B 제안 회의다. 등장 용어: 바이브마피아클럽(VMC), 구글, B2B 제안서, 견적, 라이선스."맥락이 전혀 없으면 이 단계는 건너뛴다. 단, 사용자에게 "전사 품질을 올리려면 등장 인물·고유명사를 알려주세요"라고 한 번 권유한다.
작은 목소리 화자 누락과 볼륨 편차로 인한 환각을 줄이기 위해 ffmpeg loudnorm으로 정규화한 뒤 전사한다. 이 단계는 항상 수행한다(추가 비용 거의 없음, 효과 큼).
NORMALIZED="$(mktemp -t transcribe_norm).wav"
ffmpeg -y -i "<AUDIO_PATH>" \
-af loudnorm=I=-16:TP=-1.5:LRA=11 \
-ar 16000 -ac 1 \
"$NORMALIZED"
-ar 16000 -ac 1: Whisper 내부 표현(16kHz 모노)에 맞춰 미리 변환. 모델 입력 변환 비용 절감.demucs(음성 분리) 또는 arnndn(RNNoise) 단계를 적용한다. 기본 플로우에는 넣지 않는다 — 모델 다운로드/실행 비용이 크고 깨끗한 녹음에선 오히려 음성을 깎는다.임시 출력 디렉토리에 txt 포맷으로 내보낸다. 환각 방지 플래그를 기본 적용한다.
OUTDIR="$(mktemp -d -t transcribe)"
ORIG_BASE="$(basename "<AUDIO_PATH>")"; ORIG_BASE="${ORIG_BASE%.*}"
mlx_whisper \
--model mlx-community/whisper-large-v3-turbo \
--language ko \
--output-format txt \
--output-dir "$OUTDIR" \
--output-name "$ORIG_BASE" \
--condition-on-previous-text False \
--temperature 0 \
--no-speech-threshold 0.6 \
--verbose False \
[--initial-prompt "<DOMAIN_HINT>"] \
"$NORMALIZED"
환각 방지 플래그 의도:
--condition-on-previous-text False: 한 번 잘못 인식한 텍스트가 뒤 구간으로 전염되는 문제 차단. 회의 녹음에선 거의 항상 이득.--temperature 0: 샘플링 무작위성 제거. 동일 입력에 동일 출력 보장.--no-speech-threshold 0.6: 무음/BGM 구간에서 "구독과 좋아요 부탁드립니다" 같은 환각 생성 방지. 기본값(0.6)을 명시적으로 박아둔다.기타:
{원본 오디오 basename}.txt 형태로 $OUTDIR 아래에 생성된다 (--output-name 덕분에 정규화 임시파일 이름이 새지 않음).생성된 txt 파일을 읽어 사용자에게 미리보기를 제시한다 (긴 경우 앞/뒤 일부만).
그다음 저장 위치를 사용자에게 반드시 질의한다. 저장 위치 후보:
{basename}.txtlogs/transcripts/YYYY-MM-DD_{slug}.md (frontmatter 포함)meeting-logs/YYMMDD_{title}.md (전사 후 회의록 가공까지 요청한 경우)projects/{project_id}/meeting-logs/... (프로젝트 관련 녹음)사용자가 저장 위치를 지정하면 해당 위치로 이동(mv) 또는 복사(cp)한다. 마크다운으로 저장하는 경우 ## Document Frontmatter 규칙에 따른 frontmatter를 추가한다.
임시 출력 디렉토리($OUTDIR)와 정규화된 임시 오디오 파일($NORMALIZED)은 저장 완료 후 삭제한다.
rm -rf "$OUTDIR" "$NORMALIZED"
사용자가 "화자 구분", "누가 말했는지", "speaker diarization" 등을 명시적으로 요청하면:
현재 skill은 화자 분리를 지원하지 않습니다. 추가하려면
pyannote.audio+ HuggingFace 토큰 설정이 필요합니다. 진행하시겠습니까?
라고 안내하고 사용자 결정을 기다린다. 임의로 진행하지 않는다.
--language 변경.mlx-community/whisper-large-v3-turbo. 품질 불만 시에만 whisper-large-v3 (turbo 아님, 더 느리고 품질 살짝 높음) 로 교체.사전 설치 완료된 상태를 가정한다:
mlx_whisper (uv tool install mlx-whisper)ffmpeg (brew install ffmpeg)둘 중 하나라도 없으면 사용자에게 설치 필요함을 알리고 중단한다.