✓ Verified ✍️ Content Creation ✓ Enhanced Data

Elevenlabs Transcribe

Transcribe audio to text using ElevenLabs.

Rating
3.9 (293 reviews)
Downloads
1,883 downloads
Version
1.0.0

Overview

Transcribe audio to text using ElevenLabs.

Complete Documentation

View Source →

ElevenLabs Speech-to-Text

Official ElevenLabs skill for speech-to-text transcription.

Convert audio to text with state-of-the-art accuracy. Supports 90+ languages, speaker diarization, and realtime streaming.

Prerequisites

  • ffmpeg installed (brew install ffmpeg on macOS)
  • ELEVENLABS_API_KEY environment variable set
  • Python 3.8+ (dependencies auto-install on first run)

Usage

bash
{baseDir}/scripts/transcribe.sh <audio_file> [options]
{baseDir}/scripts/transcribe.sh --url <stream_url> [options]
{baseDir}/scripts/transcribe.sh --mic [options]

Examples

Batch Transcription

Transcribe a local audio file:

bash
{baseDir}/scripts/transcribe.sh recording.mp3

With speaker identification:

bash
{baseDir}/scripts/transcribe.sh meeting.mp3 --diarize

Get full JSON response with timestamps:

bash
{baseDir}/scripts/transcribe.sh interview.wav --diarize --json

Realtime Streaming

Stream from a URL (e.g., live radio, podcast):

bash
{baseDir}/scripts/transcribe.sh --url https://npr-ice.streamguys1.com/live.mp3

Transcribe from microphone:

bash
{baseDir}/scripts/transcribe.sh --mic

Stream a local file in realtime (useful for testing):

bash
{baseDir}/scripts/transcribe.sh audio.mp3 --realtime

Quiet Mode for Agents

Suppress status messages on stderr:

bash
{baseDir}/scripts/transcribe.sh --mic --quiet

Options

OptionDescription
--diarizeIdentify different speakers in the audio
--lang CODEISO language hint (e.g., en, pt, es, fr)
--jsonOutput full JSON with timestamps and metadata
--eventsTag audio events (laughter, music, applause)
--realtimeStream local file instead of batch processing
--partialsShow interim transcripts during realtime mode
-q, --quietSuppress status messages (recommended for agents)

Output Format

Text Mode (default)

Plain text transcription:

text
The quick brown fox jumps over the lazy dog.

JSON Mode (--json)

json
{
  "text": "The quick brown fox jumps over the lazy dog.",
  "language_code": "eng",
  "language_probability": 0.98,
  "words": [
    {"text": "The", "start": 0.0, "end": 0.15, "type": "word", "speaker_id": "speaker_0"}
  ]
}

Realtime Mode

Final transcripts print as they're committed. With --partials:

text
[partial] The quick
[partial] The quick brown fox
The quick brown fox jumps over the lazy dog.

Supported Formats

Audio: MP3, WAV, M4A, FLAC, OGG, WebM, AAC, AIFF, Opus Video: MP4, AVI, MKV, MOV, WMV, FLV, WebM, MPEG, 3GPP

Limits: Up to 3GB file size, 10 hours duration

Error Handling

The script exits with non-zero status on errors:

  • Missing API key: Set ELEVENLABS_API_KEY environment variable
  • File not found: Check the file path exists
  • Missing ffmpeg: Install with your package manager
  • API errors: Check API key validity and rate limits

When to Use Each Mode

ScenarioCommand
Transcribe a recording./transcribe.sh file.mp3
Meeting with multiple speakers./transcribe.sh meeting.mp3 --diarize
Live radio/podcast stream./transcribe.sh --url
Voice input from user./transcribe.sh --mic --quiet
Need word timestamps./transcribe.sh file.mp3 --json

Installation

Terminal bash

openclaw install elevenlabs-transcribe
    
Copied!

💻Code Examples

{baseDir}/scripts/transcribe.sh --mic [options]

basedirscriptstranscribesh---mic-options.txt
## Examples

### Batch Transcription

Transcribe a local audio file:

{baseDir}/scripts/transcribe.sh interview.wav --diarize --json

basedirscriptstranscribesh-interviewwav---diarize---json.txt
### Realtime Streaming

Stream from a URL (e.g., live radio, podcast):

{baseDir}/scripts/transcribe.sh audio.mp3 --realtime

basedirscriptstranscribesh-audiomp3---realtime.txt
### Quiet Mode for Agents

Suppress status messages on stderr:

{baseDir}/scripts/transcribe.sh --mic --quiet

basedirscriptstranscribesh---mic---quiet.txt
## Options

| Option | Description |
|--------|-------------|
| `--diarize` | Identify different speakers in the audio |
| `--lang CODE` | ISO language hint (e.g., `en`, `pt`, `es`, `fr`) |
| `--json` | Output full JSON with timestamps and metadata |
| `--events` | Tag audio events (laughter, music, applause) |
| `--realtime` | Stream local file instead of batch processing |
| `--partials` | Show interim transcripts during realtime mode |
| `-q, --quiet` | Suppress status messages (recommended for agents) |

## Output Format

### Text Mode (default)

Plain text transcription:

}

.txt
### Realtime Mode

Final transcripts print as they're committed. With `--partials`:
example.sh
{baseDir}/scripts/transcribe.sh <audio_file> [options]
{baseDir}/scripts/transcribe.sh --url <stream_url> [options]
{baseDir}/scripts/transcribe.sh --mic [options]
example.json
{
  "text": "The quick brown fox jumps over the lazy dog.",
  "language_code": "eng",
  "language_probability": 0.98,
  "words": [
    {"text": "The", "start": 0.0, "end": 0.15, "type": "word", "speaker_id": "speaker_0"}
  ]
}
example.txt
[partial] The quick
[partial] The quick brown fox
The quick brown fox jumps over the lazy dog.

Tags

#speech_and-transcription

Quick Info

Category Content Creation
Model Claude 3.5
Complexity One-Click
Author paulasjes
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install elevenlabs-transcribe