agentsclimarketplace

Whisper transcribe

Skill oyzh888/whisper-transcribe

GPU-accelerated audio transcription for meetings, interviews, lectures. Uses WhisperX (faster-whisper + Pyannote VAD) for the best quality-speed tradeoff. Handles Chinese-English mixed audio correctly, 30-40x faster than stock whisper. Triggers on "transcribe this audio", "转录一下", "这个录音", "会议录音", "字幕", meeting m4a/wav/mp3 files, or when given audio/video file paths.From its SKILL.md

Install
npx -y skills add oyzh888/whisper-transcribe

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

5.5 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it

whisper-transcribe — GPU meeting transcription

Batteries-included transcription for Steve's environment. Defaults tuned for 会议录音 on H100/H200 GPUs.

When to use

  • User says "转录", "transcribe", "字幕", "会议录音", "听写", "记录一下这个录音"
  • User provides an audio/video path (.m4a, .mp3, .wav, .mp4, .m4v, .mov)
  • Need text from audio: meetings, podcasts, interviews, lectures, screen recordings

Quick start

# Default: WhisperX large-v3, bs=16, auto language (best for Chinese+English meetings)
~/.claude/skills/whisper-transcribe/scripts/transcribe.sh <audio_file>

# Output files written to same dir as input:
#   <input>.txt                 plain transcript
#   <input>.segments.txt        [timestamp] text lines
#   <input>.json                full WhisperX JSON

Common invocations

Use caseCommand
Default (meeting, auto)transcribe.sh meeting.m4a
Chinese only (faster, monolingual only)transcribe.sh meeting.m4a --lang zh
English only (monolingual only)transcribe.sh meeting.m4a --lang en
Fast mode (bs=32, nearly identical quality)transcribe.sh meeting.m4a --fast
Quality mode (bs=8, slightly better)transcribe.sh meeting.m4a --quality
Speaker diarization (who said what)transcribe.sh meeting.m4a --diarize
SRT subtitlestranscribe.sh video.mp4 --srt
Word-level timestampstranscribe.sh audio.wav --words

Performance (H100 80GB, benchmarked 2026-05-05)

Audio lengthExpected wall timeRealtime factor
10 min~7s90x
30 min~20s90x
60 min~40s90x
2 hours~80s90x
  • Model: Whisper large-v3 fp16 via CTranslate2
  • VAD: Pyannote V3 (auto-splits silence, handles code-switching)
  • GPU util: ~50% avg SM activity, ~26% compute utilization (memory-bound, normal)
  • VRAM: ~10 GB at bs=16, ~15 GB at bs=32

Why this skill

Compared alternatives on 54-min Chinese-English meeting:

MethodTimeQualityNotes
openai-whisper (stock)18 min❌ mixes zh/enBaseline
faster-whisper bs=3228s⚠️ mixes zh/en in segmentsFastest
WhisperX bs=16 (this skill)36s✅ Correct zh/en segmentationBest balance

WhisperX wins on quality: Pyannote VAD correctly segments Chinese-English code-switched speech into language-consistent chunks.

Requirements

Already installed in Steve's env (verified 2026-05-05):

  • whisperx (pip) — includes faster-whisper + Pyannote
  • ffmpeg at /opt/ffmpeg/bin/ffmpeg (for audio conversion)
  • CUDA-capable GPU (H100/H200/A100)
  • HuggingFace token cached (for Pyannote VAD model, only needed once)

If running on a fresh machine, the setup script handles everything:

~/.claude/skills/whisper-transcribe/scripts/setup.sh

Agent guidance

Default is the right answer 99% of the time. Just run:

~/.claude/skills/whisper-transcribe/scripts/transcribe.sh <audio>

Only add flags when the user explicitly asks:

  • --lang zh / --lang enonly when audio is truly monolingual. Forcing a single language on code-switched audio causes hallucination loops. Leave blank for mixed zh/en — auto-detect + VAD handle it correctly.
  • --diarize → user asks "谁说了什么", "who said what", speaker labels
  • --srt → user asks for subtitles
  • --fast → user says "快一点", "quick", "draft quality is fine"
  • --quality → user says "最高质量", "highest accuracy"
  • --words → user asks for word-level timestamps or karaoke-style output

After transcription:

  • For short files (<5 min), show a preview of the text to user
  • For long files, summarize + mention output file paths
  • If the audio is a meeting, offer to summarize key points / extract TODOs

Troubleshooting

ProblemFix
Failed to load audioThe raw WAV may lack a header; script auto-reconverts via ffmpeg
CUDA OOMUse --fast with lower batch (8 or 4) via --bs 4
Poor quality on a single languageExplicitly set --lang zh or --lang en
Missing HF token (for diarization)Run huggingface-cli login once
Model download slowFirst run downloads ~3 GB to ~/.cache/huggingface/; subsequent runs are cached

Script contract

scripts/transcribe.sh behavior:

  1. Accepts any audio/video path (m4a, mp3, wav, mp4, mov, mkv, webm)
  2. Converts to 16kHz mono WAV via ffmpeg if needed (cached next to input)
  3. Runs WhisperX large-v3 fp16 on CUDA
  4. Writes 3 outputs next to input file:
    • <name>.txt — plain transcript (joined segments)
    • <name>.segments.txt[NNNs] text timestamped lines
    • <name>.json — full WhisperX result (includes word timings if --words)
  5. On stderr: progress, GPU utilization sample, final timing summary

Exit codes: 0 success, 1 bad input, 2 transcription error, 3 missing dependency.

What ships with it: 6 files

13.9 KB alongside SKILL.md, 3 of them executable

scripts/

Gives 0 of the 12 instructions most video audio skills give in ~1.4k tokens

Counted across 622 of the 795 authors here whose files we hold, read 2026-08-07

  • Read individual rule files for detailed explanationsin 21 of 622, across 10 files
  • Render final videoin 13 of 622, across 6 files
  • Use WAV PCM 16kHz mono audio formatin 12 of 622, across 3 files
  • Use this skill when dealing with Remotion codein 11 of 622, across 4 files
  • Save generated audio to a WAV filein 11 of 622, across 4 files
  • Handle conversion errors gracefullyin 10 of 622, across 6 files
  • Add captions to videos alwaysin 10 of 622, across 4 files
  • Generate music from text descriptions using MusicGenin 9 of 622, across 2 files
  • Do not skip pipeline layersin 9 of 622, across 3 files
  • Do not make one tool do everythingin 9 of 622, across 3 files
  • Use Azure Document Intelligence for complex PDFsin 9 of 622, across 4 files
  • Never ask the user to paste their full API keyin 9 of 622, across 3 files

Said here and by no other author read

  • Run the default transcription script on the audio path
  • Use default flags for mixed audio
  • Pass language flag only for monolingual audio
  • Show a preview for short audio files
  • Summarize transcript and list output paths for long files
  • Offer to summarize key points for meetings

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 326,506. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.