| name | transcribe |
| description | Transcribe audio files to text with optional diarization and known-speaker hints. Use when a user asks to transcribe speech from audio/video, extract text from recordings, or label speakers in interviews or meetings. |
| zh_description | 用于将音频或视频中的语音转写为文本,并可结合说话人分离和已知说话人提示。 |
| version | 1.0.0 |
| author | seaworld008 |
| source | in-house |
| source_url | |
| tags | ["transcribe"] |
| created_at | 2026-03-04 |
| updated_at | 2026-06-29 |
| quality | 3 |
| complexity | intermediate |
Audio Transcribe
Transcribe audio using OpenAI, with optional speaker diarization when requested. Prefer the bundled CLI for deterministic, repeatable runs.
Workflow
- Collect inputs: audio file path(s), desired response format (text/json/diarized_json), optional language hint, and any known speaker references.
- Verify
OPENAI_API_KEY is set. If missing, ask the user to set it locally (do not ask them to paste the key).
- Run the bundled
transcribe_diarize.py CLI with sensible defaults (fast text transcription).
- Validate the output: transcription quality, speaker labels, and segment boundaries; iterate with a single targeted change if needed.
- 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/<job-id>/ 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"