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
text-to-speechConvert text to natural-sounding speech using each::sense AI. Generate realistic voice audio from any text in 32 languages with control over voice, speed, emotion, and style. Powered by elevenlabs-tts for studio-quality output. Use for: narration, audiobooks, accessibility, announcements, IVR systems, e-learning, localization. Triggers: text to speech, tts,…
Independent GitHub snapshot · Automated classification · Original documentation governs
Convert any text to natural-sounding speech in 32 languages 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": "Convert this text to speech with a clear, professional female voice: Artificial intelligence is reshaping how we create, communicate, and connect. What was once science fiction is now everyday reality."}],
"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": "Convert this text to speech with a clear, professional female voice: Artificial intelligence is reshaping how we create, communicate, and connect. What was once science fiction is now everyday reality."}]
)
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": "Describe this image aloud using text-to-speech. Use a warm, conversational voice as if explaining the scene to a friend."},
{"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
]
}
],
"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.
| Model | Strengths | Best For |
|---|---|---|
| elevenlabs-tts | Ultra-realistic voices, 32 languages, emotional control, multiple voice styles | All text-to-speech use cases |
elevenlabs-tts supports 32 languages with native-quality pronunciation:
| English | Spanish | French | German |
| Italian | Portuguese | Dutch | Polish |
| Russian | Swedish | Norwegian | Danish |
| Finnish | Turkish | Arabic | Hindi |
| Japanese | Korean | Chinese (Mandarin) | Chinese (Cantonese) |
| Indonesian | Filipino | Malay | Thai |
| Vietnamese | Romanian | Czech | Hungarian |
| Greek | Hebrew | Ukrainian | Bulgarian |
| Style | When to Use | Prompt Phrase |
|---|---|---|
| Professional | Corporate, presentations, news | "professional, clear, measured tone" |
| Conversational | Podcasts, vlogs, casual content | "conversational, friendly, natural pace" |
| Dramatic | Audiobooks, trailers, storytelling | "dramatic, expressive, varied pacing" |
| Calm | Meditation, wellness, bedtime | "calm, soothing, slow and gentle" |
| Energetic | Ads, promos, sports | "energetic, upbeat, enthusiastic" |
| Authoritative | Documentaries, lectures, news | "authoritative, deep, commanding" |
| Warm | E-learning, tutorials, guides | "warm, patient, encouraging" |
| Whisper | ASMR, intimate content | "soft whisper, gentle, close-mic feel" |
Convert to speech with a [voice style] [gender] voice: [Your text here]
"Read slowly and deliberately: ..."
"Speak at a fast, excited pace: ..."
"Normal conversational speed: ..."
"Read with genuine excitement and wonder: ..."
"Deliver with a somber, reflective tone: ..."
"Say this with playful sarcasm: ..."
For unusual words, names, or acronyms:
"Pronounce 'GIF' with a hard G. Read: ..."
"Pronounce 'Nguyen' as 'Win'. Read: ..."
"Read 'API' as individual letters A-P-I, not as a word: ..."
Use natural punctuation and formatting:
"The answer is... (long pause) ...forty-two."
"This is CRITICAL. Do NOT skip this step."
"First — and this is important — check your settings."
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": "Convert to speech with a warm, patient female voice suitable for an e-learning course. Moderate pace with clear enunciation: In this module, you will learn the fundamentals of machine learning. We will start with supervised learning, where the model learns from labeled examples. Think of it like a teacher showing a student flash cards — each card has a question and an answer. Over time, the student learns to predict answers on their own."}],
"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": "Convert to speech with a rich, deep male voice for an audiobook. Dramatic pacing with variation: Chapter One. The Last Signal. The radio crackled to life at three seventeen in the morning. Commander Hayes sat upright in her bunk, instantly awake. She had been waiting for this — dreading it, really — for six hundred and forty-two days. The signal was faint. Barely there. But it was unmistakably human."}],
"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": "Convert to speech in French with a professional female voice. Clear and elegant pronunciation: Mesdames et messieurs, bienvenue a bord du vol Air France sept-deux-quatre a destination de Paris Charles de Gaulle. La duree estimee du vol est de huit heures et trente minutes. Nous vous souhaitons un agreable voyage."}],
"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": "Convert to speech with an energetic, confident male voice for a product ad. Punchy delivery with building excitement: Introducing the all-new Galaxy Pro Max. Thinner. Faster. Smarter. With a battery that lasts two full days and a camera system that sees in the dark. This is not just a phone — this is your entire studio, office, and entertainment center, right in your pocket. Galaxy Pro Max. Available now."}],
"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": "Convert to speech with a clear, neutral voice at moderate speed. Optimized for accessibility and easy comprehension: Your order number four-seven-three-nine has been confirmed. Estimated delivery is Thursday, March twenty-sixth. You will receive a tracking link by email within two hours. If you need to make changes, please contact support before midnight tonight."}],
"stream": false
}'
# Convert multiple text segments to speech
SEGMENTS=(
"Welcome to our app. Let me show you around."
"First, tap the plus button to create a new project."
"Next, choose a template or start from scratch."
"That is it! You are ready to create something amazing."
)
for TEXT in "${SEGMENTS[@]}"; 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\": \"Convert to speech with a friendly female voice: $TEXT\"}],
\"stream\": false
}"
echo "---"
done