Transcribe local audio or video files without an API key using ffmpeg extraction plus faster-whisper on CPU. Use when OpenAI transcription is unavailable, when a user wants local-only transcription, or when extracting insights from recordings in mp4/m4a/mp3/wav formats.
Use this skill for local transcription when OPENAI_API_KEY is unavailable or when the user explicitly wants a local-only path.
scripts/local_transcribe.py.--initial-prompt or --hotwords.output/local-transcribe/<job>/.The script expects:
imageio-ffmpegfaster-whisperInstall if missing:
python -m pip install imageio-ffmpeg faster-whisper
Single file, plain text:
python ~/.codex/skills/local-transcribe/scripts/local_transcribe.py \
/path/to/input.mp4 \
--language en \
--out-dir output/local-transcribe/job-name
Faster first pass:
python ~/.codex/skills/local-transcribe/scripts/local_transcribe.py \
/path/to/input.mp4 \
--model tiny \
--language en \
--chunk-minutes 10 \
--out-dir output/local-transcribe/job-name
Higher-accuracy follow-up on selected sections:
python ~/.codex/skills/local-transcribe/scripts/local_transcribe.py \
/path/to/input.mp4 \
--model small \
--language en \
--beam-size 3 \
--initial-prompt "GMPA, MOYA Analytics, Moya Cascade, NDC Partnership, NCCS, ASEAN Centre for Energy, Benedict Chia" \
--hotwords "GMPA, MOYA, Cascade, NDC, NCCS, ASEAN, Benedict Chia" \
--start 00:20:00 \
--duration 00:10:00 \
--out-dir output/local-transcribe/job-name-section
Keep chunk WAVs only when you need to debug alignment or model quality:
python ~/.codex/skills/local-transcribe/scripts/local_transcribe.py \
/path/to/input.mp4 \
--model small \
--language en \
--keep-temp-files \
--out-dir output/local-transcribe/job-name-debug
tiny is good for quick discovery.small is better for higher-value excerpts.--initial-prompt helps with acronyms, speaker names, and domain vocabulary.--hotwords helps when the same terms recur many times and spelling matters.--keep-temp-files only when debugging.