Audio & video

Blog Audio Generate

blog-audio-generate

Takes only a post slug, reads the spoken script produced by blog-audio-script, waits for explicit script approval so small wording tweaks don't burn TTS credits, then calls ElevenLabs text-to-speech with conversational voice settings. The MP3 lands in public/audio/posts/ for static streaming and the post's hasAudio frontmatter flips on automatically, so the audio player appears on the post without any manual wiring.

What it does

  • Accepts only a post slug - paths and storage are managed automatically
  • Requires explicit user approval of the spoken script before calling TTS
  • Checks the script was written for spoken delivery before calling TTS
  • Calls ElevenLabs with conversational voice settings that honour break tags
  • Saves the MP3 to public/audio/posts/{slug}.mp3
  • Sets hasAudio: true on the post after success

Output example

Narration generated for the post If You're Selling AI as a Cost Cutter, You're Selling It Wrong.

Example prompt

/blog-audio-generate Generate audio for the blog post ai-jargon.

Install

sh
npx dot-skills add levi-putna/twistedbrackets.com/blog-audio-generate

Installed with dot-skills, which keeps one .skills/ folder as the source of truth and links it into Claude Code, Cursor, and other agents. Learn more about dot-skills.

Needs ELEVENLABS_API_KEY and ELEVENLABS_VOICE_ID. Run npx dot-skills doctor after installing to check your environment.