← ClaudeAtlas

ffmpeg-audiolisted

The prod audio convention made declarative — coerce any container (.m4a/.mp3/.webm/.wav) to mono 16 kHz signed-16-bit PCM WAV (`-ac 1 -ar 16000 -c:a pcm_s16le`), the input shape voiceprint, diarization, whisper, and training pipelines expect. Four ops (normalize · trim · concat · probe) plus a YAML reconcile mode. Idempotent, dry-run by default (nothing runs without --apply). Use when the user says "normalize this audio", "make a 16k wav", "extract an enroll clip", "convert to mono 16k", "prep audio for whisper/diarization", or "batch-convert these recordings".
iansteitz1-eng/aria-skills · ★ 0 · Data & Documents · score 72
Install: claude install-skill iansteitz1-eng/aria-skills
# ffmpeg-audio One ffmpeg shape recurs across the voiceprint, diarization, whisper, and training lanes: **mono · 16 kHz · signed-16-bit PCM WAV** — `ffmpeg -ac 1 -ar 16000 -c:a pcm_s16le`. This skill is that convention as a single idempotent CLI, so the same bytes come out every time regardless of who runs it or what container went in. **Defaults are the convention** (`SR=16000`, `CH=1`, `CODEC=pcm_s16le`). Change them in one place at the top of `ffmpeg_audio.py` if a lane ever needs a different target. ## Safety model - **Dry-run by default.** Every op prints the exact `ffmpeg` command it *would* run and changes nothing until `--apply`. - **Idempotent.** An output that already exists and is newer than its input(s) is **skipped** — re-running a batch is a no-op. `--force` rebuilds anyway. - **Read-only `probe`** never writes. ## The four ops 1. **normalize** — any audio → mono 16k PCM WAV (the canonical convention). ```sh python3 ~/.claude/skills/ffmpeg-audio/ffmpeg_audio.py normalize output.m4a -o alice.wav --apply ``` Batch a roster with globs + `--suffix` (no `-o`): ```sh python3 .../ffmpeg_audio.py normalize alice.* bob.* carol.* --suffix .16k.wav --apply ``` 2. **trim** — slice `--start`/`--duration` then normalize (the enroll-clip pattern: `superwhisper/recordings/<ts>/output.wav` → `~/enroll/alice.wav`, 22s). ```sh python3 .../ffmpeg_audio.py trim output.wav --start 0 --duration 22 -o ~/enroll/alice.wav --apply ``` 3. **conc