---
name: elevenlabs-stt
description: Transcribe audio files with ElevenLabs Speech-to-Text (Scribe v2) from the local CLI. Use when you need local audio transcription with optional speaker diarization, language hints, event tagging, or JSON output via scripts/transcribe.sh.
---

# ElevenLabs Speech-to-Text

Use `scripts/transcribe.sh` to transcribe a local audio file with ElevenLabs STT.

## Requirements

Preferred: set `ELEVENLABS_API_KEY` in the environment before running the script.

Fallback: if the environment variable is not set, the script will try to read the key from local OpenClaw config files in `~/.openclaw/`.

Required binaries:
- `curl`
- `jq`
- `python3`

## Usage

Run from the skill directory or call the script by full path.

Examples:

```bash
scripts/transcribe.sh /path/to/audio.mp3
scripts/transcribe.sh /path/to/audio.mp3 --diarize --lang en
scripts/transcribe.sh /path/to/audio.mp3 --json
scripts/transcribe.sh /path/to/audio.mp3 --events
```

## Options

- `--diarize` — enable speaker diarization
- `--lang CODE` — pass an ISO language code hint such as `en`, `es`, or `fr`
- `--json` — print the full JSON response instead of only transcript text
- `--events` — include audio event tagging when supported

## Notes

- The script uploads a local file directly to ElevenLabs.
- The model is fixed to `scribe_v2` in the current script.
- The script returns plain transcript text by default, or pretty-printed JSON with `--json`.
- If the API returns an error payload, the script prints the error and exits non-zero.
