Back to the collection
speech·Content & media

speech: create and refine a voiceover from a finished script (legacy standalone Skill)

This guide covers an older version from the deprecated openai/skills repository. Check the current official project before installing. Current OpenAI plugins

On this page

Use speech when a product demo or narration already has a script. This standalone version uses built-in voices through a bundled helper and supports single clips or batches. Specify pacing, pauses and emphasis separately from text that must remain verbatim, so performance directions do not accidentally rewrite the message.

Install and prepare

This guide covers the standalone Skill retained in openai/skills. That repository is deprecated and current examples have moved to openai/plugins; the instructions here describe the linked standalone version, not the latest plugin.

Enter this line in the Codex conversation, not a terminal. If the installed Skill does not appear, restart Codex.

Prompt
$skill-installer speech
  • Final text, intended language and output format
  • Python and the openai package
  • A local OPENAI_API_KEY and access to the audio API

Keep pronunciation, pacing and emotional directions separate from the script. API documentation requires a clear disclosure to listeners that the voice is AI-generated. This Skill covers built-in voices; other API voice capabilities should not be assumed to exist in this retained version. [4]

Try a first task

Start by listening to a short script, for example:

Prompt
$speech
Generate an MP3 voiceover for this exact product-demo script:
“Welcome to our reporting tool. Choose a date range, then select Generate report.”
Use a built-in voice, clear and steady delivery, and a short pause before the second sentence. Preserve every word. First check dependencies and API configuration, then state the model and voice without revealing the key. Save output/speech/report-demo.mp3 and record the final text and parameters.

Work through the task

  1. Lock the input. Specify the exact script, voice preference, format and output destination. Assign stable filenames for multiple jobs.

  2. Generate a sample. Use a representative passage to confirm voice and rhythm before producing the full script or batch. Check that the old helper’s default model remains available.

  3. Change one thing and listen. Adjust pacing, pronunciation guidance or voice independently so you can understand why the result changed.

Produce a short sample first

Give the agent the final text, language, audience, voice preference, delivery and output format. For a product introduction, generate the opening two or three sentences first and listen for names, numbers and pauses before making the full recording. Avoid generating a large batch only to discover a pronunciation problem. Configure OPENAI_API_KEY locally; do not paste it into a prompt or commit it to the repository.

A practical request is: “Use an available built-in voice for a short Chinese narration sample, with a natural pace and English pronunciation for the product name. Return one WAV sample and its file path; wait for my review before generating the full script.” This is a suggested input, not a promised outcome. Split long text at paragraph boundaries to respect API limits, use stable filenames and listen to the joins after assembly. Available models, voices and formats depend on the current API project.

Check the audio before handoff

Return the audio file path, final script, voice and generation settings. Listen to the start, end, names, numbers and joins; check for omissions, repetition and truncation, then ask intended listeners to confirm comprehension when useful. If delivery is too fast, change one factor at a time to compare results. A successful file write does not establish that the voiceover fits the video timing. Disclose the AI-generated voice to end listeners when publishing.

Another case: a batch of phone prompts

Do not combine many clips into one long request. The Skill’s batch workflow accepts one JSONL job per line. Two prompts can specify their own text, voice, format and filename:

jsonl
{"input":"Thank you for calling. Please hold.","voice":"cedar","response_format":"mp3","out":"hold.mp3"}
{"input":"For sales, press 1. For support, press 2.","voice":"marin","response_format":"wav","out":"menu.wav"}

These are sample inputs, not clips that have been generated or reviewed. Ask the agent to run the bundled script and match each delivered file to its final text. If one clip misreads a number, regenerate that clip while keeping approved clips unchanged. Check request rate, input length and available models against the current API project.

Common blockers

The script is too long. This Skill limits a request to 4096 characters. Split at meaningful boundaries and keep voice and instructions consistent.

A specialized term sounds wrong. Provide pronunciation guidance and regenerate a short sample. Confirm any proposed text changes before altering verbatim content.

You want to clone a person’s voice. Custom voice creation is outside this standalone Skill; use a built-in voice or choose a separate suitable workflow.

Preview phrase clips before assembling a track

Batch speech can also serve language practice. One user used the same underlying OpenAI TTS API to create separate English–French phrase MP3s, then used FFmpeg to insert practice pauses and assemble a roughly ten-minute track. With this skill, start by generating a few named phrase files and checking pronunciation and order. Adding silence and merging files are later audio-editing steps, not an automatic feature of the skill. Listen through the boundaries, repetitions, and omissions in the final track.

How did your first task go?

These choices help us understand where readers get stuck through site analytics. Blocking analytics may prevent delivery; use email for a specific issue.

References

  1. speech: standalone Skill instructionsOpenAI
  2. openai/skills repository status and installationOpenAI
  3. Codex: build and install SkillsOpenAI
  4. Text to speech API guideOpenAI
  5. Creating audio files (mp3) via OpenAIHilborn592
Found outdated or incorrect information? Let us know