Install any skill in seconds. Free to start, no credit card required.
Get Started Free →sonichi/audio-transcribe
Transcribes audio files and voice notes to text via Gemini 2.5-flash. Integrates with Slack, Discord, and Telegram bridges so voice clips surface as readable text in tasks.
Passed 13 of 19 test cases with the skill, and 7 of 19 without it.
and 5 more in the full report
8 fixed7 passed either way6 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 8 test cases the skill fixed. Same model, same prompt, with and without the skill.
If Discord config directory is absent, what is the final channel directory checked for API keys?
| Checked | Without skill | With skill |
|---|---|---|
| Checks $CLAUDE_CONFIG_DIR/channels/telegram/.env. | Missed | Passed |
The instructions your model reads when the skill loads.
Transcribes audio files (voice notes, clips) to text via Gemini 2.5-flash. Used by the Slack, Discord, and Telegram bridges to surface voice-note content in task bodies so the core agent can act on the words instead of a bare file path.
skills/audio-transcribe/scripts/transcribe.py <audio_file_path>
Reads the file, sends it inline (base64) to the Gemini 2.5-flash generateContent endpoint, and prints the transcript to stdout. Exits 0 on success, 1 on any failure (unsupported format, missing API key, network error, API error).
Fail-open design. Every bridge wraps the call in a helper that returns None
on a non-zero exit. A failed transcription never blocks the task — the
[File attached: /path] line still goes through so the agent can at least see
a file was sent.
.m4a (Slack voice clips), .mp3, .ogg, .oga, .opus, .wav, .webm,
.aac, .flac, .mp4
GEMINI_API_KEY or GOOGLE_API_KEY in the process environment<workspace>/.env (resolved via resolve_workspace())$CLAUDE_CONFIG_DIR/channels/slack/.env$CLAUDE_CONFIG_DIR/channels/discord/.env$CLAUDE_CONFIG_DIR/channels/telegram/.envEach bridge calls _transcribe_via_skill(local_path) after downloading a file.
The helper locates the skill script relative to src/ (or the app bundle), runs
it, and returns the transcript string or None. The bridge then appends either:
[Voice transcript: <text>] — when transcription succeedstest cases passed, vs 7 / 19 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.