agentsclimarketplace

Audio summary

Skill rperez030/accessible-agent-skills/skills/audio-summary

Claude Code skills and hooks built to make working with Claude more accessible for developers who use assistive technology.

Install
npx -y skills add rperez030/accessible-agent-skills --skill audio-summary

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use this skill whenever the user wants to summarize, analyze, or transcribe an audio file. Triggers include any request involving an audio file (.m4a, .mp3, .wav, .aac, .ogg, etc.) and words like "summarize", "transcribe", "what's in this audio", "what does this say", "analyze this recording", "who is speaking", or any variation. Also triggers when the user drops or mentions an audio file and asks what it contains. Use this skill even if the user says just "summarize this" and has previously mentioned an audio file in the conversation.

SKILL.md

5.0 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it

Audio Summary Skill

This skill uses the Gemini API to analyze audio files and produce friendly, natural-language summaries. Gemini understands speech, identifies multiple speakers, detects non-speech sounds (music, laughter, ambient noise), and handles accented or colloquial speech well.

When to use which mode

  • Summary mode (default): A friendly narrative description of what's in the recording — who's speaking, what they discuss, the mood, memorable moments. Best for voice messages, meetings, interviews, and podcasts.
  • Transcription mode: A verbatim or near-verbatim text of the speech. Use this when the user explicitly asks for a transcript, "word for word", or needs to quote specific passages.
  • Combined mode: Both a summary and a transcription. Use when the user asks for both, or when the content seems important enough to warrant the full text.

When in doubt, default to summary mode and offer to also transcribe if useful.

Step-by-step workflow

1. Locate the audio file

The user may give you a path, drop a filename, or refer to something like "the audio file in my Downloads folder." Resolve the path before proceeding. If ambiguous, ask.

2. Confirm the API key is available

This skill requires the GEMINI_API_KEY environment variable. Check it with echo "${GEMINI_API_KEY:+present}" — if empty, stop and tell the user the key is missing and how to set it (export GEMINI_API_KEY=... in their shell rc, then restart the session). Never print the key value.

If the user manages secrets through a password manager (1Password CLI, pass, etc.), suggest they wire it through their shell rc rather than hardcoding it.

3. Call the Gemini API

Use Python to encode the audio and call the API:

import base64, json, os, urllib.request

key = os.environ["GEMINI_API_KEY"]

# Encode audio
with open(audio_path, 'rb') as f:
    audio_b64 = base64.b64encode(f.read()).decode()

# MIME type mapping
mime_types = {
    '.m4a': 'audio/mp4', '.mp4': 'audio/mp4',
    '.mp3': 'audio/mpeg', '.wav': 'audio/wav',
    '.aac': 'audio/aac', '.ogg': 'audio/ogg',
    '.flac': 'audio/flac', '.webm': 'audio/webm',
}
ext = os.path.splitext(audio_path)[1].lower()
mime_type = mime_types.get(ext, 'audio/mp4')

# Call API
url = f'https://generativelanguage.googleapis.com/v1beta/models/gemini-3-flash-preview:generateContent?key={key}'
payload = {
    'contents': [{
        'parts': [
            {'inline_data': {'mime_type': mime_type, 'data': audio_b64}},
            {'text': prompt}
        ]
    }]
}
req = urllib.request.Request(
    url, data=json.dumps(payload).encode(),
    headers={'Content-Type': 'application/json'}
)
with urllib.request.urlopen(req, timeout=120) as r:
    result = json.load(r)
    print(result['candidates'][0]['content']['parts'][0]['text'])

4. Prompt template

For summary mode:

Listen to this audio and write a friendly, natural summary of what is being discussed.
Write it as if you are describing the conversation to someone who has not heard it.
Mention the people referenced by name, the topics covered, the mood and tone, and
any memorable moments or notable quotes. If there are non-speech sounds (music,
laughter, background noise), mention those too.

For transcription mode:

Please transcribe this audio as accurately as possible. Include timestamps every
30 seconds or at natural breaks. Indicate non-speech sounds in [brackets] (e.g.
[laughter], [music], [background noise]). If there are multiple speakers, label
them Speaker 1, Speaker 2, etc. (or use names if clearly stated in the audio).

5. Present the output

Return the summary or transcription as clean prose in the conversation. If the audio contains names, quotes, or notable details, light formatting (bold for names, italics for direct quotes) is fine, but keep it readable and natural.

If a word looks like it may have been misheard — especially proper nouns, brand names, or acronyms — flag it briefly rather than passing it through silently.

File size note

The inline base64 approach works well for files up to ~10MB. For larger files, use the Gemini File API instead (upload first, then reference by URI). For most voice messages and short recordings, inline is fine and simpler.

Model

Use gemini-3-flash-preview. It delivers the best combination of audio comprehension, natural language output, and speed (~10s for a 3-minute recording). If it returns a 503 (high demand), retry once before reporting the error to the user.

Gives 0 of the 12 instructions most note taking skills give in ~1.1k tokens

Counted across 686 of the 876 authors here whose files we hold, read 2026-08-06

  • include a visual element on every slidein 44 of 686, across 13 files
  • use wikilinks for internal vault linksin 35 of 686, across 11 files
  • commit to a single visual motif across every slidein 34 of 686, across 9 files
  • read pptxgenjs guide before creating presentations from scratchin 30 of 686, across 6 files
  • keep 0.5 inch minimum marginsin 30 of 686, across 7 files
  • use subagents to visually inspect rendered slidesin 30 of 686, across 6 files
  • re-verify affected slides after every fixin 27 of 686, across 5 files
  • run content QA checks before declaring successin 26 of 686, across 3 files
  • Use Markdown links for external URLs onlyin 26 of 686, across 10 files
  • pick a bold topic specific color palettein 24 of 686, across 2 files
  • read editing guide before editing existing presentationsin 23 of 686, across 1 file
  • use one dominant color across all slidesin 23 of 686, across 1 file

Said here and by no other author read

  • default to summary mode when uncertain
  • check GEMINI_API_KEY before proceeding
  • use Python to encode and call the API
  • use inline base64 for files under ten megabytes
  • flag potentially misheard words
  • retry once if a 503 error occurs

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.