Design & media

transcribe

Transcribe audio into text or speaker-labeled JSON using OpenAI models and a repeatable CLI workflow.

What it does

Turn one or more audio files into plain text, JSON, or speaker-labeled JSON through OpenAI’s transcription models. The bundled CLI defaults to fast text transcription, can apply automatic chunking to longer audio, and supports diarization with reference clips for up to four known speakers. It validates transcript quality, speaker labels, and segment boundaries before saving results.

When to use it

  • Meeting transcripts with speaker labels
  • Interview transcription
  • Batch transcription of audio files
  • Known-speaker labeling from reference clips

The skill document

Audio Transcribe

Transcribe audio using OpenAI, with optional speaker diarization when requested. Prefer the bundled CLI for deterministic, repeatable runs.

Workflow

  1. Collect inputs: audio file path(s), desired response format (text/json/diarized_json), optional language hint, and any known speaker references.
  2. Verify OPENAI_API_KEY is set. If missing, ask the user to set it locally (do not ask them to paste the key).
  3. Run the bundled transcribe_diarize.py CLI with sensible defaults (fast text transcription).
  4. Validate the output: transcription quality, speaker labels, and segment boundaries; iterate with a single targeted change if needed.
  5. Save outputs under output/transcribe/ when working in this repo.

Decision rules

  • Default to gpt-4o-mini-transcribe with --response-format text for fast transcription.
  • If the user wants speaker labels or diarization, use --model gpt-4o-transcribe-diarize --response-format diarized_json.
  • If audio is longer than ~30 seconds, keep --chunking-strategy auto.
  • Prompting is not supported for gpt-4o-transcribe-diarize.

Output conventions

  • Use output/transcribe// for evaluation runs.
  • Use --out-dir for multiple files to avoid overwriting.

Dependencies (install if missing)

Prefer uv for dependency management.

uv pip install openai

If uv is unavailable:

python3 -m pip install openai

Environment

  • OPENAI_API_KEY must be set for live API calls.
  • If the key is missing, instruct the user to create one in the OpenAI platform UI and export it in their shell.
  • Never ask the user to paste the full key in chat.

Skill path (set once)

export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
export TRANSCRIBE_CLI="$CODEX_HOME/skills/transcribe/scripts/transcribe_diarize.py"

User-scoped skills install under $CODEX_HOME/skills (default: ~/.codex/skills).

CLI quick start

Single file (fast text default):

python3 "$TRANSCRIBE_CLI" \
  path/to/audio.wav \
  --out transcript.txt

Diarization with known speakers (up to 4):

python3 "$TRANSCRIBE_CLI" \
  meeting.m4a \
  --model gpt-4o-transcribe-diarize \
  --known-speaker "Alice=refs/alice.wav" \
  --known-speaker "Bob=refs/bob.wav" \
  --response-format diarized_json \
  --out-dir output/transcribe/meeting

Plain text output (explicit):

python3 "$TRANSCRIBE_CLI" \
  interview.mp3 \
  --response-format text \
  --out interview.txt

Reference map

  • references/api.md: supported formats, limits, response formats, and known-speaker notes.

Questions people ask

Can it identify different speakers in a meeting or interview?
Yes. When speaker labels are requested, it uses the diarization model and returns diarized JSON. Reference audio can be supplied for up to four known speakers.
What output formats are supported?
The workflow accepts text, JSON, and diarized JSON response formats. Plain text is the default for fast transcription, while diarized JSON is used for speaker-labeled output.
What setup is required?
Live transcription requires the OpenAI Python package and an OPENAI_API_KEY set in the local environment. If the key is missing, the workflow directs the user to create one in the OpenAI platform UI and export it in their shell rather than paste it into chat.

Related skills

Access supported Stripe administration and payment APIs through managed OAuth.

720 installs29 stars

Search YouTube data and manage account resources through Data API v3 with managed OAuth.

873 installs144 stars

Design and critique visual artifacts using measurable rules for hierarchy, spacing, type, color, and layout.

by Iván137 installs5 stars

Analyze mixed files and produce multiple requested artifacts through one agent task.

527 installs8 stars

Generate customizable adult portraits through an authenticated API with quota checks and multiple export formats.

263 installs12 stars

More from OpenAI

Browse all skills

chatgpt-apps

Official

Plan, scaffold, refactor, and validate ChatGPT Apps SDK projects with an MCP server and widget UI.

by OpenAI24.8k stars

Build or update full-page Figma screens with linked design-system components, variables, and styles.

by OpenAI24.8k stars

Builds a code-aligned Figma design system through phased creation, validation, and user approval.

by OpenAI24.8k stars

figma-use

Official

Runs Figma Plugin API scripts with the required call parameters, API rules, IDs, and validation workflow.

by OpenAI24.8k stars

hatch-pet

Official

Create and validate a Codex-compatible animated pet atlas from concepts, brand cues, or reference art.

by OpenAI24.8k stars

imagegen

Official

Generate or edit raster assets, validate the result, and place selected files into the project workspace.

by OpenAI24.8k stars