Parakeet MLX Transcribe
Overview
Use parakeet-mlx to transcribe media files and generate txt, srt, vtt, or json outputs on macOS systems with parakeet-mlx installed. For video inputs, extract audio with ffmpeg first, then transcribe the extracted audio.
Execution Context
Before using this skill, verify the host is macOS and the CLI is installed:
test "$(uname -s)" = "Darwin"
command -v parakeet-mlx
If either check fails, do not use this skill. Tell the user that parakeet-mlx transcription requires macOS with parakeet-mlx installed.
Run parakeet-mlx in an environment with access to MLX/Metal. Restricted agent sandboxes may block device initialization even when the same command works in a normal terminal session.
Workflow
- Confirm input files exist and are readable.
- Confirm the host is macOS and
parakeet-mlxis installed. - If the input is video, extract audio first with
ffmpeg. - Run
parakeet-mlxwith explicit output format and output directory. - Return output file paths and summarize what was generated.
Quick Start
Transcribe a single audio file:
parakeet-mlx input.wav --output-dir ./transcripts --output-format srt
Transcribe and produce all formats:
parakeet-mlx input.m4a --output-dir ./transcripts --output-format all
Transcribe with word highlighting in subtitles:
parakeet-mlx input.wav --output-dir ./transcripts --output-format srt --highlight-words
Video Input Handling
Extract mono 16k WAV, then transcribe:
ffmpeg -y -i input.mp4 -vn -ac 1 -ar 16000 ./tmp/input.wav
parakeet-mlx ./tmp/input.wav --output-dir ./transcripts --output-format srt
Prefer scripts/transcribe_media.sh for repeatable handling of mixed audio/video inputs.
Decoding and Segmentation
Use decoding options only when needed:
- Default:
--decoding greedy - Higher quality but slower:
--decoding beam --beam-size 5 --patience 3.5 - Sentence splitting:
--max-words,--silence-gap,--max-duration - Long files: tune
--chunk-durationand--overlap-duration
Output and Naming
Set deterministic naming with --output-template:
parakeet-mlx input.wav \
--output-dir ./transcripts \
--output-format json \
--output-template '{filename}_{date}_{index}'
Useful template variables: {filename}, {parent}, {date}, {index}.
Environment Variables
Use env vars for persistent defaults:
PARAKEET_MODELPARAKEET_OUTPUT_FORMATPARAKEET_OUTPUT_TEMPLATEPARAKEET_DECODINGPARAKEET_CHUNK_DURATIONPARAKEET_OVERLAP_DURATIONPARAKEET_BEAM_SIZEPARAKEET_LENGTH_PENALTYPARAKEET_PATIENCEPARAKEET_DURATION_REWARDPARAKEET_MAX_WORDSPARAKEET_SILENCE_GAPPARAKEET_MAX_DURATIONPARAKEET_FP32PARAKEET_LOCAL_ATTENTIONPARAKEET_LOCAL_ATTENTION_CTXPARAKEET_CACHE_DIR
Troubleshooting
- If
parakeet-mlx --helpcrashes with MLX/Metal initialization errors, rerun in a normal macOS terminal session with active GPU access. - If transcription fails for video files, check
ffmpegavailability and confirm audio extraction succeeded. - If model download fails, set
--cache-dirorPARAKEET_CACHE_DIRto a writable path.
Resources
- Use
scripts/transcribe_media.shfor one-command transcription of audio/video files. - Read
references/cli-options.mdfor the complete option map used by this skill.