All skills
openai avatar

/speech

@33a75a7 official
by openaiopenai/skills28k stars
1,891

Use when the user asks for text-to-speech narration or voiceover, accessibility reads, audio prompts, or batch speech generation via the OpenAI Audio API; run the bundled CLI (`scripts/text_to_speech.py`) with built-in voices and require `OPENAI_API_KEY` for live calls. Custom voice creation is out of scope.

Use this Skill: https://skilld.dev/gh/openai/skills/speech

This session only. Nothing lands on disk.

referencesprompting.md

≈389 tokens on demand. Your agent reads this file only when SKILL.md points to it.

Instructioning best practices (TTS)

Contents

  • Structure
  • Specificity
  • Avoiding conflicts
  • Pronunciation and names
  • Pauses and pacing
  • Iterate deliberately
  • Where to find copy/paste recipes

Structure

  • Use a consistent order: affect -> tone -> pacing -> emotion -> pronunciation/pauses -> emphasis -> delivery.
  • For complex requests, use short labeled lines instead of a long paragraph.

Specificity

  • Name the delivery you want ("calm and steady" vs "friendly").
  • If you need a specific cadence, call it out explicitly ("slow and measured", "brisk and energetic").

Avoiding conflicts

  • Do not mix opposing instructions ("fast and slow", "formal and casual").
  • Keep instructions short: 4 to 8 lines are usually enough.

Pronunciation and names

  • For acronyms, write the pronunciation hint in text ("A-I" instead of "AI").
  • For names or brands, add a simple phonetic guide in the input text if clarity matters.
  • If a word must be emphasized, add an Emphasis line and repeat the word exactly.

Pauses and pacing

  • Use punctuation or short line breaks in the input text to create natural pauses.
  • Use the Pauses line for intentional pauses ("pause after the greeting").

Iterate deliberately

  • Start with a clean base instruction set, then make one change at a time.
  • Repeat critical constraints on each iteration ("keep pacing steady").

Where to find copy/paste recipes

For copy/paste instruction templates, see references/sample-prompts.md. This file focuses on principles, structure, and iteration patterns.

Source: SKILL.md on GitHub

1 warning17d5 checks · Risk SAFE
  • Gen Agent Trust Hub17d

    This skill enables text-to-speech generation using the OpenAI Audio API through a bundled Python script. It supports both single and batch audio synthesis tasks, requiring an API key for execution. The skill is documented with clear usage instructions and security considerations regarding environment configuration.

  • Socket17d

    No alerts

  • Snyk17d

    Risk: LOW · No issues

  • Runlayer7mo

    9/14 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 33a75a7. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 months ago.

Activeupdated 8 months ago
  • API
  • text-to-speech
  • openai
  • audio
  • accessibility
  • voiceover
  • tts
  • batch-processing

README badge

README badge for openai/skills/speech

Generates spoken audio from text using the OpenAI Audio API, supporting single clips or batch jobs via a bundled Python CLI. Includes built-in voices (cedar, marin) and instruction templates for narration, demo voiceovers, IVR prompts, and accessibility reads; requires OPENAI_API_KEY and limits input to 4096 characters per request.

Generated from the current SKILL.md.

What models and voices does this skill support?
The skill defaults to gpt-4o-mini-tts-2025-12-15 and built-in OpenAI voices (cedar and marin are the defaults). Custom voice creation is out of scope. Other models can be used but instructions are only supported on GPT-4o mini TTS, not tts-1 or tts-1-hd.
Do I need an API key to use this skill?
Yes. You must set OPENAI_API_KEY as an environment variable before making any live API call. The skill will guide you through creating a key in the OpenAI platform UI if needed.
What are the input limits and rate limits?
Text input is capped at 4096 characters per request (longer text must be split into chunks). The skill enforces a 50 requests/minute rate limit.
Can I generate speech in batch?
Yes. For multiple lines or files, the skill supports batch mode by writing a temporary JSONL file, running it once, then cleaning up. Single clips use the single-clip workflow.
Where are output files saved?
Final outputs are written to output/speech/ by default. Intermediate batch files are created in tmp/speech/ and deleted after processing.

Generated from the current SKILL.md. These answers refresh after source changes.