mcpField
T
transcribe

transcribe

github.com/letta-aiCreative & media152118 installsUpdated 4w ago
Repository

About transcribe

transcribe is a skill for transcribing audio with OpenAI, intended for users who need a repeatable workflow. Its bundled CLI handles plain transcripts and optional speaker diarization.

Key features

  1. 01Transcribe audio with OpenAI
  2. 02Support text and JSON output
  3. 03Diarize speakers when requested
  4. 04Specify language and speaker references
  5. 05Set output directories for multiple files

Use cases

  1. 01Turn recordings into text transcripts
  2. 02Label speakers in meeting recordings
  3. 03Transcribe multiple audio files

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/letta-ai/skills --skill transcribe

After installing, type/transcribein Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

LICENSE.txt
agents/
openai.yaml
assets/
transcribe-small.svg
references/
api.md
scripts/
transcribe_diarize.py

Details

From the project README

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/<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)

# Set to the directory containing this SKILL.md
export TRANSCRIBE_CLI="<path-to-skill>/scripts/transcribe_diarize.py"

Replace <path-to-skill> with the actual skill installation directory (e.g. .skills/transcribe or ~/.letta/skills/transcribe).

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.

Comments

Markdown supported