blog-audio
Generate audio narration of blog posts using Google Gemini TTS.
Skill by Infrasity-Labs
Chalk Labs
Need help deploying blog-audio?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/infrasity-labs-blog-audio
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/blog-audio
What's inside
- Skill name
blog-audio- Description
- Generate audio narration of blog posts using Google Gemini TTS. Supports summary narration, full article read-aloud, and two-speaker podcast/dialogue mode with 30 voice options. Outputs MP3 with HTML5 audio embed code. Works standalone via /blog audio or internally from blog-write. Falls back gracefully when API key is not configured. Use when user says "blog audio", "narrate blog", "audio version", "text to speech", "tts", "podcast mode", "read aloud", "audio narration", "voice", "narration", "generate audio".
- License
- MIT
- Instructions
- 232 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (8)
- SKILL.md
- voices.md · references/
- __init__.py · scripts/
- generate_audio.py · scripts/
- requirements.lock · scripts/
- requirements.txt · scripts/
- run.py · scripts/
- setup_environment.py · scripts/
SKILL.md (first lines)
# Blog Audio: Gemini TTS Narration for Blog Posts
Generate professional audio narration of blog content using Google's Gemini TTS.
Three modes: summary (200-300 word spoken overview), full article read-aloud,
or two-speaker podcast dialogue. 30 voices, 80+ languages, HTML5 embed output.
## Quick Reference
| Command | What it does |
|---------|-------------|
| `/blog audio generate <file>` | Generate audio narration of a blog post |
| `/blog audio voices` | Show available voices with characteristics |
| `/blog audio setup` | Check/configure API key for Gemini TTS |
## Prerequisites
- Python 3.11+ (venv managed automatically by `run.py`)
- `GOOGLE_AI_API_KEY` environment variable (same key used by blog-image)
- FFmpeg (for WAV-to-MP3 conversion; falls back to WAV if missing)
## Always Use run.py Wrapper
```bash
# CORRECT:
python3 scripts/run.py generate_audio.py --text "..." --voice Charon --json
# WRONG:
python3 scripts/generate_audio.py --text "..." # Fails without venv
```
## API Key Check (Gate Pattern)
Before generating audio, check for the API key:
```bash
echo $GOOGLE_AI_API_KEY
```
- If set: proceed with generation
- If not set: guide the user:
"Audio generation requires a Google AI API key. Get one free at https://aistudio.google.com/apikey
Then set it: `export GOOGLE_AI_API_KEY=your-key`
This is the same key used by `/blog image`: if image generation works, audio works too."
- **When called internally** (from blog-write): return silently if key is missing.
Never block the writing workflow.
## Setup
For `/blog audio setup`:
1. Check if `GOOGLE_AI_API_KEY` is set in environment
2. If blog-image is configured (check `.mcp.json`), the key is already available
3. If not, guide user to https://aistudio.google.com/apikey
4. Verify with a dry run: `python3 scripts/run.py generate_audio.py --text "Test" --dry-run --json`
## Voice Selection
For `/blog audio voices`:
Load `references/voices.md` and present the voice catalog to the user.
Ask the user which voice they prefer, or recommend based on content type:
- **Article narration**: Charon (Informative) or Sadaltager (Knowledgeable)
- **Tutorial/how-to**: Achird (Friendly) or Sulafat (Warm)
- **News/analysis**: Rasalgethi (Informative) or Schedar (Even)
- **Lifestyle/wellness**: Aoede (Breezy) or Vindemiatrix (Gentle)
- **Dialogue host**: Puck (Upbeat) or Laomedeia (Upbeat)
- **Dialogue expert**: Kore (Firm) or Charon (Informative)
## Generation Workflow
For `/blog audio generate <file>`:
### Step 1: Read the Blog Post
Read the file and extract:
- Title (from H1 or frontmatter)
- Full content (markdown body)
- Approximate word count
### Step 2: Choose Mode
Ask the user (or auto-select if they specified `--mode`):
| Mode | When to use | Output |
|------|-------------|--------|
| **Summary** | Quick audio overview (1-2 min) | 200-300 word spoken summary |
| **Full** | Complete read-aloud (5-15 min) | Full article as natural speech |
| **Dialogue** | Podcast-style (3-8 min) | Two-person conversation about the article |
### Step 3: Prepare Text
**CRITICAL:** Claude prepares the text. The script does TTS only.
**Summary mode:**
Write a 200-300 word spoken summary of the article. Rules:
- Write as natural speech, not written text
- Open with the article's key finding or answer
- Cover 3-5 main takeaways
- Close with actionable advice
- No markdown, no "In this article...", no meta-commentary
- Use conversational transitions ("Here's what matters...", "The key finding is...")
**Full mode:**
Strip the markdown content to clean spoken text:
- Headings become natural transitions ("Next, let's look at...")
- Links become plain text (remove URLs, keep anchor text)
- Images and charts: omit or briefly describe ("As the data shows...")
- Code blocks: describe verbally ("The code uses a for-loop to...")
- Lists: convert to natural sentences
- Remove frontmatter, schema markup, HTML tags
- Add brief intro: "This is [title], published on [date]."
**Dialogue mode:**
Write a 2-person conversation script about the article:
- Speaker1 = Host (curious, asks good questions)
- Speaker2 = Expert (knowledgeable, gives clear answers)
- Format each line as: `[Speaker1] What's the key takeaway here?`
- Cover the article's main points conversationallyFrom Infrasity-Labs/dev-gtm-claude-skills, MIT.
More from Infrasity-Labs/dev-gtm-claude-skills
- 0.675score
landing-page-auditor
Infrasity
Audits any landing or service page across 48 checks in 10 categories for LLM/AI discoverability, GEO readiness, content clarity, schema markup, internal…
SkillCFreshness: C★ 144Claude Code +9 - 0.508score
code-reviewer
Infrasity-Labs
Code review automation for TypeScript, JavaScript, Python, Go, Swift, Kotlin, C#, .NET, Java, C, C++, Rust, Ruby, PHP, and Dart/Flutter.
SkillCFreshness: C★ 144Claude Code +9 - 0.508score
blog-cluster
Infrasity-Labs
Semantic topic cluster planning and automated execution engine for claude-blog.
SkillCFreshness: C★ 144Claude Code +9 - 0.508score
churn-prevention
Infrasity-Labs
When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies.
SkillCFreshness: C★ 144Claude Code +9 - 0.508score
blog-image
Infrasity-Labs
AI image generation and editing for blog content powered by Gemini via MCP.
SkillCFreshness: C★ 144Claude Code +9 - 0.508score
anydesign
Infrasity-Labs
Analyze images, websites, and Figma files to extract their design and generate a `design.md` with token system, component inventory, and reconstruction notes.
SkillCFreshness: C★ 144Claude Code +9 - 0.508score
blog-google
Infrasity-Labs
Google API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection…
SkillCFreshness: C★ 144Claude Code +9 - 0.508score
ads
Infrasity-Labs
When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms.
SkillCFreshness: C★ 144Claude Code +9 - 0.508score
blog-translate
Infrasity-Labs
Translate existing blog posts into one or more target languages with SEO-optimized localization.
SkillCFreshness: C★ 144Claude Code +9 - 0.508score
claude-md-starter
Infrasity-Labs
Generates a fully structured, project-specific CLAUDE.md by scanning the repo for signal files (package.json, Makefile, .github/workflows/, .env.example…
SkillCFreshness: C★ 144Claude Code +9 - 0.508score
agile-product-owner
Infrasity-Labs
Agile product ownership for backlog management and sprint execution.
SkillCFreshness: C★ 144Claude Code +9 - 0.508score
cold-email
Infrasity-Labs
Write B2B cold emails and follow-up sequences that get replies.
SkillCFreshness: C★ 144Claude Code +9
Signals
- Stars
- 144
- Forks
- 16
- Open issues
- 1
- Last commit (this folder)
- Jun 9, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Infrasity-Labs
- 0.508score
blog-cluster
Infrasity-Labs
Semantic topic cluster planning and automated execution engine for claude-blog.
SkillCFreshness: C★ 144Claude Code +9 - 0.508score
blog-google
Infrasity-Labs
Google API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection…
SkillCFreshness: C★ 144Claude Code +9 - 0.508score
anydesign
Infrasity-Labs
Analyze images, websites, and Figma files to extract their design and generate a `design.md` with token system, component inventory, and reconstruction notes.
SkillCFreshness: C★ 144Claude Code +9 - 0.508score
ads
Infrasity-Labs
When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms.
SkillCFreshness: C★ 144Claude Code +9 - 0.508score
agile-product-owner
Infrasity-Labs
Agile product ownership for backlog management and sprint execution.
SkillCFreshness: C★ 144Claude Code +9 - 0.508score
blog-image
Infrasity-Labs
AI image generation and editing for blog content powered by Gemini via MCP.
SkillCFreshness: C★ 144Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get blog-audio running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
blog-audio skill. Agent Mart. https://agentmart.dev/skills/infrasity-labs-blog-audio (last updated 2026-10-24)