executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
speech-to-textTranscribe audio to text using each::sense AI. Convert speech from audio and video files into accurate text with punctuation, speaker detection, and timestamp support. Handles multiple languages, accents, and noisy environments. Use for: transcription, subtitles, meeting notes, interview transcripts, podcast show notes, accessibility, captioning. Triggers: …
Independent GitHub snapshot · Automated classification · Original documentation governs
Transcribe audio and video into accurate text using each::sense — the intelligent AI agent that automatically selects the best model for your request.
Requires an each::labs API key. Get one at eachlabs.ai.
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [{"role": "user", "content": [
{"type": "text", "text": "Transcribe this audio recording into text. Include punctuation and paragraph breaks."},
{"type": "image_url", "image_url": {"url": "https://example.com/meeting-recording.mp3"}}
]
}
],
"stream": false
}'
from openai import OpenAI
client = OpenAI(
api_key="YOUR_EACHLABS_API_KEY",
base_url="https://eachsense-agent.core.eachlabs.run/v1"
)
response = client.chat.completions.create(
model="eachsense/beta",
messages=[{"role": "user", "content": "Transcribe this audio recording into text. Include punctuation and paragraph breaks."}],
# Images are included in the message content array above
)
print(response.choices[0].message.content)
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [{"role": "user", "content": [
{"type": "text", "text": "Transcribe the speech in this video clip. Include timestamps for each sentence."},
{"type": "image_url", "image_url": {"url": "https://example.com/presentation-video.mp4"}}
]
}
],
"stream": false
}'
Images are sent inside messages using the OpenAI multimodal content format. Maximum 4 images per request.
Set "stream": true for real-time SSE responses, or "stream": false for complete result in a single response. Streaming is useful for showing progress in UIs; non-streaming is simpler for scripts and automation.
| Feature | Description | How to Request |
|---|---|---|
| Basic Transcription | Plain text output with punctuation | "Transcribe this audio" |
| Timestamps | Time codes for each segment | "Transcribe with timestamps" |
| Speaker Labels | Identify different speakers | "Transcribe and label each speaker" |
| Paragraph Breaks | Logical text segmentation | "Transcribe with paragraph breaks" |
| Language Detection | Auto-detect spoken language | "Detect the language and transcribe" |
| Translation | Transcribe and translate | "Transcribe and translate to English" |
| Summary | Transcribe and summarize | "Transcribe and provide a summary" |
| SRT Format | Subtitle file format | "Transcribe in SRT subtitle format" |
| Type | Formats |
|---|---|
| Audio | MP3, WAV, M4A, FLAC, OGG, AAC, WMA, WEBM |
| Video | MP4, MOV, AVI, MKV, WEBM |
Be explicit about how you want the transcription structured:
"Transcribe this audio verbatim, including filler words like
um and uh. Add timestamps every 30 seconds. Format as:
[00:00] Text here
[00:30] More text here"
For multi-speaker audio:
"Transcribe this conversation and label each speaker as
Speaker 1, Speaker 2, etc. Start a new line when the
speaker changes."
# Verbatim (includes everything)
"Transcribe exactly as spoken, including filler words, false starts, and repetitions"
# Clean (polished)
"Transcribe cleanly, removing filler words and false starts. Fix grammar for readability."
For non-English audio or to guide recognition:
"This audio is in German. Transcribe it in German."
"This audio is in Japanese. Transcribe in Japanese and provide an English translation."
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [{"role": "user", "content": [
{"type": "text", "text": "Transcribe this meeting recording. Label each speaker (Speaker 1, Speaker 2, etc.). Add timestamps at the start of each speaker turn. Include a brief summary of key decisions and action items at the end."},
{"type": "image_url", "image_url": {"url": "https://example.com/team-meeting.mp3"}}
]
}
],
"stream": false
}'
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [{"role": "user", "content": [
{"type": "text", "text": "Transcribe this video into SRT subtitle format. Each subtitle should be 1-2 lines, maximum 42 characters per line. Format:\n\n1\n00:00:01,000 --> 00:00:04,000\nSubtitle text here\n\n2\n00:00:04,500 --> 00:00:08,000\nNext subtitle here"},
{"type": "image_url", "image_url": {"url": "https://example.com/tutorial-video.mp4"}}
]
}
],
"stream": false
}'
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [{"role": "user", "content": [
{"type": "text", "text": "Transcribe this interview recording. Format as a clean Q&A transcript with the interviewer questions in bold and interviewee answers in regular text. Remove filler words and false starts. Add paragraph breaks for readability."},
{"type": "image_url", "image_url": {"url": "https://example.com/interview.mp3"}}
]
}
],
"stream": false
}'
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [{"role": "user", "content": [
{"type": "text", "text": "This audio is a Spanish-language podcast episode. Transcribe it in the original Spanish, then provide a complete English translation below. Maintain paragraph structure in both versions."},
{"type": "image_url", "image_url": {"url": "https://example.com/spanish-podcast.mp3"}}
]
}
],
"stream": false
}'
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [{"role": "user", "content": [
{"type": "text", "text": "Transcribe this podcast episode and generate structured show notes. Include: 1) Episode summary (2-3 sentences), 2) Key topics discussed with timestamps, 3) Notable quotes, 4) Any resources or links mentioned, 5) Full transcript with speaker labels and timestamps."},
{"type": "image_url", "image_url": {"url": "https://example.com/podcast-episode.mp3"}}
]
}
],
"stream": false
}'
# Transcribe multiple audio files
AUDIO_FILES=(
"https://example.com/recording-1.mp3"
"https://example.com/recording-2.mp3"
"https://example.com/recording-3.mp3"
)
for AUDIO in "${AUDIO_FILES[@]}"; do
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d "{
\"messages\": [{\"role\": \"user\", \"content\": \"Transcribe this audio with timestamps and speaker labels. Clean transcription, no filler words.\"}],
\"image_urls\": [\"$AUDIO\"],
\"stream\": false
}"
echo "---"
done