Back to Skills

blog-audio

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", "

1,560stars274forksUpdated 8/4/2026

Security Assessment

Safe(92/100)
Security Score92/100

About blog-audio

Blog Audio is a skill in the claude-blog toolkit that turns written blog posts into spoken audio using Google's Gemini text-to-speech. It solves the problem of making written content accessible in an audio format, letting authors offer a listen-along option or a podcast-style version of an article without leaving their writing workflow. It can be invoked directly through the `/blog audio` command or triggered internally by the companion blog-write skill, and it degrades gracefully by returning silently when no API key is configured so it never blocks the writing process.

The skill offers three narration modes: a 200-300 word spoken summary, a full article read-aloud, and a two-speaker podcast/dialogue mode. It ships a catalog of 30 prebuilt Gemini voices (each with a tonal characteristic such as Informative, Firm, or Breezy), supports 80+ languages via automatic detection, and recommends voice pairings by content type. Claude prepares the spoken text while a bundled Python script (invoked through a `run.py` wrapper that manages a local virtual environment) performs the actual TTS call, producing MP3 output with HTML5 embed code. It documents current Gemini TTS model IDs and uses FFmpeg for WAV-to-MP3 conversion, falling back to WAV when FFmpeg is missing.

The primary users are bloggers, content marketers, and publishers who want to add audio versions or podcast segments to their posts. Typical use cases include generating a quick audio overview of a long guide, producing a full narrated read of an article, or creating a conversational two-host podcast from written content, all with a chosen voice tuned to the blog's tone.

FAQ

What do I need before I can generate audio?

Python 3.11+ (the run.py wrapper manages the virtual environment automatically), a GOOGLE_AI_API_KEY environment variable, and optionally FFmpeg for WAV-to-MP3 conversion. Without FFmpeg it falls back to WAV output.

What narration modes are available?

Three: summary (a 200-300 word spoken overview), full (a complete read-aloud of the article), and dialogue (a two-speaker podcast-style conversation about the article).

What happens if the API key is not set?

When invoked directly it guides you to obtain a free Google AI key and export it. When called internally from blog-write it returns silently so it never blocks the writing workflow.

How many voices and languages are supported?

30 prebuilt Gemini voices, each with a tonal characteristic, and 80+ languages via automatic BCP-47 detection. Voice characteristics carry across languages.

Does it support SSML for fine-grained control?

No. Gemini TTS does not support SSML. Style is controlled through natural-language phrasing, punctuation for pacing, and a sparse set of audio tags on the 3.1 TTS model.

All Files

8 files
references/voices.md5.2 KB
View
scripts/run.py3.4 KB
View
scripts/requirements.lock41.5 KB
View
scripts/requirements.txt0.5 KB
View
scripts/__init__.py0.1 KB
View
scripts/setup_environment.py4.9 KB
View
scripts/generate_audio.py19.3 KB
View
SKILL.md8.6 KB
View

Install blog-audio

Download and extract the skill files to your .claude/skills/ directory.

Quick Setup:

  1. Copy the skill folder to .claude/skills/
  2. Claude will automatically detect and use the skill