audio-analysislisted
Install: claude install-skill Nagellabs/libi
# Audio Analysis (Transcription)
Use this skill whenever the user wants a transcript for a video or audio
file. The default provider is **local Whisper** — free, no API key.
## Path A — Whisper (default)
```
libi.analysis_transcribe_audio({ fileId })
```
`provider` defaults to `whisper`. The tool runs the whole pipeline
server-side: extract audio, chunk long files, run faster-whisper per
chunk, save + auto-aggregate into the `transcript_v1` step with
word-level timings.
**First-run bootstrap.** If the response is
`{ status: "needs_install", hint: ... }`, the Whisper model isn't
downloaded yet. Do this once:
1. `libi.get_install_plan({ mcpId: "whisper" })`
2. Follow it — it calls `libi.whisper_download_model({ model: "small" })`
then `libi.update_dep_status({ mcpId: "whisper", status: "installed" })`.
3. Retry `libi.analysis_transcribe_audio({ fileId })`.
**Response shape:**
```
{ status: "ready" | "partial" | "failed" | "needs_install",
totalChunks, readyChunks,
failedChunks: [{ chunkIndex, error }],
durationSeconds, wordCount, language,
provider?, hint? }
```
On `ready` — done. On `partial`/`failed` — retry only failed chunks:
`libi.analysis_transcribe_audio({ fileId, retry: true })`. Inspect with
`libi.analysis_get_audio_chunks({ fileId })` if failures persist.
### If accuracy is poor
faster-whisper quality scales with model size. To escalate:
1. `libi.whisper_list_models` — see sizes + what's installed.
2. Suggest the next size up to the user. **Downl