ASR Transcribe to Text (Speaker-Labeled)
Turns audio and video into speaker-labeled, timestamped transcripts — and owns ASR audio preprocessing as a first-class job.
Image & VideoAdvanced★ 1,323⑂ 212AI score 9/10Last updated: Aug 8, 2026
What it does
- Takes local audio/video files or media URLs (including podcast episode pages) and produces
[00:12 - 00:30] SPEAKER_01: ...transcripts plus a CSV. - On Apple Silicon it runs fully local via MLX (Qwen3-ASR + mlx-whisper + pyannote) at 15–27x realtime for free; elsewhere it calls a remote API such as a self-hosted vLLM endpoint.
- Uses a decoupled, WhisperX-style pipeline: the audio is never chopped before ASR, so transcription keeps full-file context; word timings and speaker segments are aligned afterwards, with an
anchored_ratiotrust signal. - Preprocessing is a standalone feature: resample to 16 kHz mono 16-bit, merge multi-segment recorder dumps (DJI TX01/TX02), pitch-preserved 1.3x speedup to cut metered ASR billing, and destination-aware format choice (wav/m4a/ogg/flac).
- Documents the real-world gotchas: truncation detection, vLLM's 25 MB and 600 s caps, MP3 rejection arriving as HTTP 200, and
pkill -fkilling your own shell.
Who it's for
- Anyone who needs meeting or interview transcripts with "who said what".
- Podcast, lecture, and video creators building searchable text archives.
- Apple Silicon Mac users who want local, private transcription with no cloud upload.
- Engineers running a self-hosted vLLM ASR endpoint who keep hitting format/size limits.
Examples
- Two-hour meeting: hand it
meeting.m4aand get a speaker-split.txtplus.csvready for summarization and action-item extraction. - Merging a recorder dump:
TX02_MIC024.wav+TX02_MIC025.wavare sorted by filename timestamp, merged, and self-verified (duration delta and splice-boundary volume checks). - Cutting metered ASR cost: transcode to M4A and apply pitch-preserved 1.3x speedup — roughly 5x smaller upload and ~23% fewer billed minutes.
· · · Install guide · · ·
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the daymade-audio/asr-transcribe-to-text folder from the GitHub repo daymade/claude-code-skills into my ~/.claude/skills/asr-transcribe-to-text/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/daymade/claude-code-skills.git /tmp/daymade-skills && mkdir -p ~/.claude/skills && cp -r /tmp/daymade-skills/daymade-audio/asr-transcribe-to-text ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Install prerequisites first. On macOS:
brew install ffmpeg uv— both ffmpeg and uv are required. - Clone the repository:
git clone https://github.com/daymade/claude-code-skills.git /tmp/daymade-skills - Copy the skill into your Claude Code skills directory:
mkdir -p ~/.claude/skills cp -r /tmp/daymade-skills/daymade-audio/asr-transcribe-to-text ~/.claude/skills/ - For speaker labels, accept the terms at https://hf.co/pyannote/speaker-diarization-3.1 and run
huggingface-cli loginonce (or exportHF_TOKEN). Skip it and you get plain text only. - Restart Claude Code and ask something like "transcribe this recording with speaker labels". On first run the skill detects your platform and asks whether to use local MLX or a remote endpoint.
- Before a long job, smoke-test once:
uv run ~/.claude/skills/asr-transcribe-to-text/scripts/transcribe_local_mlx.py --smoke-test.
View source on GitHub ↗License: MIT