Speech Generation (Text-to-Speech)
Step 0 — plan first. Before generating, run the visual-planning skill (the pre-generation gate for all media, audio included): clarify the ask (voice, language, format, where it's used), pin the tone/pacing, confirm the exact script and pronunciations, then generate and verify.
Use the mcp__ElevenLabs__text_to_speech tool to convert text to natural-sounding speech via ElevenLabs.
Quick Reference
| I want to create... |
Read This |
Preset to Start With |
| Product demo / explainer video |
voiceover.md |
Product Demo or Explainer Video |
| Marketing / promo voiceover |
voiceover.md |
Marketing / Promo |
| Audiobook / fiction |
narration.md |
Fiction / Audiobook |
| Documentary narration |
narration.md |
Documentary |
| Technical tutorial audio |
documentation.md |
Technical Tutorial |
| README / docs narration |
documentation.md |
README Narration |
| Podcast episode |
podcast.md |
Conversational Host |
| IVR / phone menu |
announcement.md |
IVR / Phone Menu |
| App notification sound |
announcement.md |
App Notification |
| Multi-language content |
multilingual.md |
— |
| Custom parameter tuning |
voice-settings.md |
See Named Presets table |
When to Use
- User asks to "read this aloud", "create a voiceover", "generate narration"
- User wants audio versions of text content
- User needs podcast-style audio, announcements, or voice prompts
- User is creating audio for a video or presentation
Tool Reference
text_to_speech
Key parameters:
| Parameter |
Type |
Default |
Description |
text |
string (required) |
— |
The text to convert to speech |
voice_name |
string |
— |
Name of the voice (e.g. "Rachel", "Adam", "Bella") |
voice_id |
string |
— |
Voice ID (alternative to voice_name) |
model_id |
string |
eleven_multilingual_v2 |
Model to use (see Models section) |
stability |
float (0–1) |
0.5 |
Higher = more consistent, lower = more expressive |
similarity_boost |
float (0–1) |
0.75 |
How closely to match the original voice |
style |
float (0–1) |
0 |
Style exaggeration (increases latency if > 0) |
speed |
float (0.7–1.2) |
1.0 |
Speech speed |
use_speaker_boost |
bool |
true |
Boost similarity to original speaker |
language |
string |
"en" |
ISO 639-1 language code |
output_format |
string |
"mp3_44100_128" |
Audio format (see Output Formats) |
output_directory |
string |
~/Desktop |
Where to save the file |
Only one of voice_name or voice_id can be provided. If neither is given, the default voice is used.
Models
| Model ID |
Languages |
Quality |
When to Use |
eleven_v3 |
70+ |
Highest |
Best choice — newest model, widest language support |
eleven_multilingual_v2 |
29 |
High |
Proven fallback if v3 produces artifacts |
eleven_flash_v2_5 |
32 |
Good |
Real-time / streaming, ultra-low latency |
eleven_turbo_v2_5 |
32 |
Good |
Batch processing, balanced speed/quality |
eleven_flash_v2 |
1 (EN) |
Good |
English-only, ultra-low latency |
eleven_turbo_v2 |
1 (EN) |
Good |
English-only, balanced |
eleven_monolingual_v1 |
1 (EN) |
Basic |
Legacy — avoid unless reproducing old output |
For detailed model comparison and selection guidance, see voice-settings.md.
Voice Selection
Use mcp__ElevenLabs__search_voices to find voices already in the user's library, or mcp__ElevenLabs__search_voice_library to browse the full ElevenLabs voice library.
Matching voices to content
| Content type |
Voice criteria |
| Technical tutorial |
Clear, measured, neutral pace |
| Marketing/promo |
Energetic, warm, confident |
| Narration/story |
Expressive, varied pacing |
| Announcement |
Authoritative, clear, professional |
| Conversational |
Natural, relaxed, friendly |
Voice design
Use mcp__ElevenLabs__text_to_voice to generate a custom voice from a text description (e.g. "A warm female voice with a slight British accent"). This creates 3 preview variations. Save the best one with mcp__ElevenLabs__create_voice_from_preview.
Voice cloning
Use mcp__ElevenLabs__voice_clone to create an instant voice clone from audio files.
Voice Controls
Controls are summarized below. For parameter interaction details, named presets, and advanced tuning, see voice-settings.md.
| Parameter |
Low |
Medium |
High |
| Stability (0–1) |
Expressive, emotional (0.1–0.3) |
Balanced default (0.4–0.6) |
Consistent, monotone (0.7–1.0) |
| Similarity Boost (0–1) |
More variation from base voice |
— |
Closely matches original (0.7–1.0) |
| Style (0–1) |
Fastest generation (0) |
Moderate expression (0.2–0.3) |
Maximum style, higher latency (0.5+) |
| Speed (0.7–1.2) |
Slow, deliberate (0.7) |
Normal (1.0) |
Fast-paced (1.2) |
Output Formats
| Format |
Description |
mp3_44100_128 |
MP3 128kbps (default, good balance) |
mp3_44100_192 |
MP3 192kbps (higher quality, Creator tier+) |
pcm_16000 |
PCM 16kHz (raw audio) |
pcm_44100 |
PCM 44.1kHz (high quality raw, Pro tier+) |
opus_48000_128 |
Opus 128kbps (efficient streaming) |
ulaw_8000 |
μ-law 8kHz (Twilio compatible) |
For platform-specific format recommendations, see announcement.md.
Common Patterns
Documentation narration
See documentation.md for text cleaning, code block handling, and segmentation.
text: [cleaned documentation content]
voice_name: "Rachel"
model_id: "eleven_v3"
stability: 0.55
similarity_boost: 0.80
style: 0.10
speed: 0.90
Video voiceover
See voiceover.md for timing tables, text prep, ffmpeg mixing, the timed voiceover pipeline, and golden rules.
text: "Introducing our new dashboard. With real-time analytics,
you can track performance at a glance."
voice_name: "Adam"
model_id: "eleven_v3"
stability: 0.50
similarity_boost: 0.80
style: 0.25
speed: 0.95
Announcement / notification
See announcement.md for brevity rules, templates, and platform formats.
text: "Deployment complete. All 12 services are running."
voice_name: "Bella"
model_id: "eleven_v3"
stability: 0.75
similarity_boost: 0.85
style: 0.05
speed: 1.05
Story / narrative
See narration.md for character voices, long-form strategy, and pacing.
text: [story content]
voice_name: "Rachel"
model_id: "eleven_v3"
stability: 0.25
similarity_boost: 0.80
style: 0.50
speed: 0.90
Multi-language
See multilingual.md for language tiers, pronunciation hints, and batch workflows.
Set language to the ISO 639-1 code and write text in the target language. Use eleven_v3 (70+ languages) or eleven_multilingual_v2 (29 languages).
Podcast / multi-speaker
See podcast.md for multi-speaker workflow, voice pairing, and episode structure.
Generate each speaker's lines separately with different voices, then concatenate with natural gaps.
Additional ElevenLabs Tools
| Tool |
Use case |
mcp__ElevenLabs__speech_to_speech |
Transform audio from one voice to another |
mcp__ElevenLabs__speech_to_text |
Transcribe audio to text (with optional diarization) |
mcp__ElevenLabs__isolate_audio |
Isolate vocals from background noise |
mcp__ElevenLabs__voice_clone |
Clone a voice from audio files |
mcp__ElevenLabs__text_to_voice |
Design a new voice from a text description |
Combining with Other Media Skills
Voiceover + Video
- Generate the video with
generate_video
- Generate the voiceover with
mcp__ElevenLabs__text_to_speech
- Combine with ffmpeg:
ffmpeg -i video.mp4 -i voiceover.mp3 -c:v copy -c:a aac output.mp4
Narration + Background Music
- Generate narration with
mcp__ElevenLabs__text_to_speech
- Generate background music with
generate_music
- Mix audio:
ffmpeg -i narration.mp3 -i music.wav -filter_complex "[1:a]volume=0.2[bg];[0:a][bg]amix=inputs=2:duration=longest" output.mp3
Podcast Production
- Generate each speaker's lines separately with different voices
- Generate intro/outro jingle with
generate_music
- Concatenate:
ffmpeg -i intro.wav -i part1.mp3 -i part2.mp3 -i outro.wav -filter_complex "concat=n=4:v=0:a=1" podcast.mp3
See podcast.md for the complete step-by-step workflow.
Tips
- Write text as you want it spoken — use punctuation for natural pauses
- Use "..." for longer pauses: "And the winner is... congratulations!"
- Spell out abbreviations if you want them read as words: "API" vs "A.P.I."
- For numbers, write them as words if pronunciation matters: "twenty-three" vs "23"
- Test with a short sentence first to verify the voice before generating long content
- Use
output_directory to control where files are saved (defaults to ~/Desktop)
- For advanced parameter tuning, consult voice-settings.md
- For video voiceover, follow the Golden Rules and Timed Voiceover Pipeline
- Check voice tiers before selecting a voice — library/cloned voices need a paid plan
- Use the Voice Selection Guide to match voice type to content — always test the voice before writing the full script
Reference Files
| File |
What It Covers |
When to Read |
| voice-settings.md |
Parameter interactions, named presets, model selection, output formats |
Tuning voice parameters or choosing a model |
| voiceover.md |
Product demos, explainers, marketing, corporate training |
Creating audio for video content |
| narration.md |
Audiobooks, fiction, documentaries, children's stories |
Long-form narrative or character voices |
| documentation.md |
Tutorials, READMEs, API docs, e-learning |
Converting technical docs to audio |
| podcast.md |
Multi-speaker, interviews, episode structure |
Podcast or dialogue production |
| announcement.md |
IVR, notifications, system alerts, public address |
Short-form announcements or telephony |
| multilingual.md |
Language support, pronunciation, localization |
Non-English or multi-language content |
1---2name: speech-generation3description: Generate text-to-speech audio using the ElevenLabs MCP server's text_to_speech tool. Use when the user asks to create voiceovers, narration, audio from text, spoken dialogue, podcast-style audio, audiobook readings, announcements, or voice content. Supports voice selection by name or ID, multiple models (multilingual, flash, turbo), stability/similarity/style controls, speed adjustment, and multiple output formats.4---56# Speech Generation (Text-to-Speech)78> **Step 0 — plan first.** Before generating, run the **visual-planning** skill (the pre-generation gate for all media, audio included): clarify the ask (voice, language, format, where it's used), pin the tone/pacing, confirm the exact script and pronunciations, then generate and verify.910Use the `mcp__ElevenLabs__text_to_speech` tool to convert text to natural-sounding speech via ElevenLabs.1112## Quick Reference1314| I want to create... | Read This | Preset to Start With |15|---------------------|-----------|---------------------|16| Product demo / explainer video | [voiceover.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/voiceover.md) | Product Demo or Explainer Video |17| Marketing / promo voiceover | [voiceover.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/voiceover.md) | Marketing / Promo |18| Audiobook / fiction | [narration.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/narration.md) | Fiction / Audiobook |19| Documentary narration | [narration.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/narration.md) | Documentary |20| Technical tutorial audio | [documentation.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/documentation.md) | Technical Tutorial |21| README / docs narration | [documentation.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/documentation.md) | README Narration |22| Podcast episode | [podcast.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/podcast.md) | Conversational Host |23| IVR / phone menu | [announcement.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/announcement.md) | IVR / Phone Menu |24| App notification sound | [announcement.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/announcement.md) | App Notification |25| Multi-language content | [multilingual.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/multilingual.md) | — |26| Custom parameter tuning | [voice-settings.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/voice-settings.md) | See Named Presets table |2728## When to Use2930- User asks to "read this aloud", "create a voiceover", "generate narration"31- User wants audio versions of text content32- User needs podcast-style audio, announcements, or voice prompts33- User is creating audio for a video or presentation3435## Tool Reference3637### text_to_speech3839**Key parameters:**4041| Parameter | Type | Default | Description |42|---|---|---|---|43| `text` | string (required) | — | The text to convert to speech |44| `voice_name` | string | — | Name of the voice (e.g. "Rachel", "Adam", "Bella") |45| `voice_id` | string | — | Voice ID (alternative to voice_name) |46| `model_id` | string | `eleven_multilingual_v2` | Model to use (see Models section) |47| `stability` | float (0–1) | 0.5 | Higher = more consistent, lower = more expressive |48| `similarity_boost` | float (0–1) | 0.75 | How closely to match the original voice |49| `style` | float (0–1) | 0 | Style exaggeration (increases latency if > 0) |50| `speed` | float (0.7–1.2) | 1.0 | Speech speed |51| `use_speaker_boost` | bool | true | Boost similarity to original speaker |52| `language` | string | "en" | ISO 639-1 language code |53| `output_format` | string | "mp3_44100_128" | Audio format (see Output Formats) |54| `output_directory` | string | ~/Desktop | Where to save the file |5556**Only one of `voice_name` or `voice_id` can be provided.** If neither is given, the default voice is used.5758## Models5960| Model ID | Languages | Quality | When to Use |61|---|---|---------|-------------|62| `eleven_v3` | 70+ | Highest | **Best choice** — newest model, widest language support |63| `eleven_multilingual_v2` | 29 | High | Proven fallback if v3 produces artifacts |64| `eleven_flash_v2_5` | 32 | Good | Real-time / streaming, ultra-low latency |65| `eleven_turbo_v2_5` | 32 | Good | Batch processing, balanced speed/quality |66| `eleven_flash_v2` | 1 (EN) | Good | English-only, ultra-low latency |67| `eleven_turbo_v2` | 1 (EN) | Good | English-only, balanced |68| `eleven_monolingual_v1` | 1 (EN) | Basic | Legacy — avoid unless reproducing old output |6970For detailed model comparison and selection guidance, see [voice-settings.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/voice-settings.md).7172## Voice Selection7374Use `mcp__ElevenLabs__search_voices` to find voices already in the user's library, or `mcp__ElevenLabs__search_voice_library` to browse the full ElevenLabs voice library.7576### Matching voices to content7778| Content type | Voice criteria |79|---|---|80| Technical tutorial | Clear, measured, neutral pace |81| Marketing/promo | Energetic, warm, confident |82| Narration/story | Expressive, varied pacing |83| Announcement | Authoritative, clear, professional |84| Conversational | Natural, relaxed, friendly |8586### Voice design8788Use `mcp__ElevenLabs__text_to_voice` to generate a custom voice from a text description (e.g. "A warm female voice with a slight British accent"). This creates 3 preview variations. Save the best one with `mcp__ElevenLabs__create_voice_from_preview`.8990### Voice cloning9192Use `mcp__ElevenLabs__voice_clone` to create an instant voice clone from audio files.9394## Voice Controls9596Controls are summarized below. For parameter interaction details, named presets, and advanced tuning, see [voice-settings.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/voice-settings.md).9798| Parameter | Low | Medium | High |99|-----------|-----|--------|------|100| **Stability** (0–1) | Expressive, emotional (0.1–0.3) | Balanced default (0.4–0.6) | Consistent, monotone (0.7–1.0) |101| **Similarity Boost** (0–1) | More variation from base voice | — | Closely matches original (0.7–1.0) |102| **Style** (0–1) | Fastest generation (0) | Moderate expression (0.2–0.3) | Maximum style, higher latency (0.5+) |103| **Speed** (0.7–1.2) | Slow, deliberate (0.7) | Normal (1.0) | Fast-paced (1.2) |104105## Output Formats106107| Format | Description |108|---|---|109| `mp3_44100_128` | MP3 128kbps (default, good balance) |110| `mp3_44100_192` | MP3 192kbps (higher quality, Creator tier+) |111| `pcm_16000` | PCM 16kHz (raw audio) |112| `pcm_44100` | PCM 44.1kHz (high quality raw, Pro tier+) |113| `opus_48000_128` | Opus 128kbps (efficient streaming) |114| `ulaw_8000` | μ-law 8kHz (Twilio compatible) |115116For platform-specific format recommendations, see [announcement.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/announcement.md).117118## Common Patterns119120### Documentation narration121See [documentation.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/documentation.md) for text cleaning, code block handling, and segmentation.122```123text: [cleaned documentation content]124voice_name: "Rachel"125model_id: "eleven_v3"126stability: 0.55127similarity_boost: 0.80128style: 0.10129speed: 0.90130```131132### Video voiceover133See [voiceover.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/voiceover.md) for timing tables, text prep, ffmpeg mixing, the timed voiceover pipeline, and golden rules.134```135text: "Introducing our new dashboard. With real-time analytics,136 you can track performance at a glance."137voice_name: "Adam"138model_id: "eleven_v3"139stability: 0.50140similarity_boost: 0.80141style: 0.25142speed: 0.95143```144145### Announcement / notification146See [announcement.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/announcement.md) for brevity rules, templates, and platform formats.147```148text: "Deployment complete. All 12 services are running."149voice_name: "Bella"150model_id: "eleven_v3"151stability: 0.75152similarity_boost: 0.85153style: 0.05154speed: 1.05155```156157### Story / narrative158See [narration.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/narration.md) for character voices, long-form strategy, and pacing.159```160text: [story content]161voice_name: "Rachel"162model_id: "eleven_v3"163stability: 0.25164similarity_boost: 0.80165style: 0.50166speed: 0.90167```168169### Multi-language170See [multilingual.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/multilingual.md) for language tiers, pronunciation hints, and batch workflows.171172Set `language` to the ISO 639-1 code and write text in the target language. Use `eleven_v3` (70+ languages) or `eleven_multilingual_v2` (29 languages).173174### Podcast / multi-speaker175See [podcast.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/podcast.md) for multi-speaker workflow, voice pairing, and episode structure.176177Generate each speaker's lines separately with different voices, then concatenate with natural gaps.178179## Additional ElevenLabs Tools180181| Tool | Use case |182|---|---|183| `mcp__ElevenLabs__speech_to_speech` | Transform audio from one voice to another |184| `mcp__ElevenLabs__speech_to_text` | Transcribe audio to text (with optional diarization) |185| `mcp__ElevenLabs__isolate_audio` | Isolate vocals from background noise |186| `mcp__ElevenLabs__voice_clone` | Clone a voice from audio files |187| `mcp__ElevenLabs__text_to_voice` | Design a new voice from a text description |188189## Combining with Other Media Skills190191### Voiceover + Video1921. Generate the video with `generate_video`1932. Generate the voiceover with `mcp__ElevenLabs__text_to_speech`1943. Combine with ffmpeg: `ffmpeg -i video.mp4 -i voiceover.mp3 -c:v copy -c:a aac output.mp4`195196### Narration + Background Music1971. Generate narration with `mcp__ElevenLabs__text_to_speech`1982. Generate background music with `generate_music`1993. Mix audio: `ffmpeg -i narration.mp3 -i music.wav -filter_complex "[1:a]volume=0.2[bg];[0:a][bg]amix=inputs=2:duration=longest" output.mp3`200201### Podcast Production2021. Generate each speaker's lines separately with different voices2032. Generate intro/outro jingle with `generate_music`2043. Concatenate: `ffmpeg -i intro.wav -i part1.mp3 -i part2.mp3 -i outro.wav -filter_complex "concat=n=4:v=0:a=1" podcast.mp3`205206See [podcast.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/podcast.md) for the complete step-by-step workflow.207208## Tips209210- Write text as you want it spoken — use punctuation for natural pauses211- Use "..." for longer pauses: "And the winner is... congratulations!"212- Spell out abbreviations if you want them read as words: "API" vs "A.P.I."213- For numbers, write them as words if pronunciation matters: "twenty-three" vs "23"214- Test with a short sentence first to verify the voice before generating long content215- Use `output_directory` to control where files are saved (defaults to ~/Desktop)216- For advanced parameter tuning, consult [voice-settings.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/voice-settings.md)217- For video voiceover, follow the [Golden Rules](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/voiceover.md#golden-rules-for-video-voiceover) and [Timed Voiceover Pipeline](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/voiceover.md#timed-voiceover-pipeline)218- Check [voice tiers](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/voice-settings.md#voice-tiers--api-access) before selecting a voice — library/cloned voices need a paid plan219- Use the [Voice Selection Guide](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/voiceover.md#voice-selection-guide) to match voice type to content — always test the voice before writing the full script220221## Reference Files222223| File | What It Covers | When to Read |224|------|---------------|--------------|225| [voice-settings.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/voice-settings.md) | Parameter interactions, named presets, model selection, output formats | Tuning voice parameters or choosing a model |226| [voiceover.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/voiceover.md) | Product demos, explainers, marketing, corporate training | Creating audio for video content |227| [narration.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/narration.md) | Audiobooks, fiction, documentaries, children's stories | Long-form narrative or character voices |228| [documentation.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/documentation.md) | Tutorials, READMEs, API docs, e-learning | Converting technical docs to audio |229| [podcast.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/podcast.md) | Multi-speaker, interviews, episode structure | Podcast or dialogue production |230| [announcement.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/announcement.md) | IVR, notifications, system alerts, public address | Short-form announcements or telephony |231| [multilingual.md](${CLAUDE_PLUGIN_ROOT}/skills/speech-generation/references/multilingual.md) | Language support, pronunciation, localization | Non-English or multi-language content |