ElevenLabs TTS Skill
Generate high-quality speech for Pompom companion using ElevenLabs Text-to-Speech API v3.
When to Use
- Pompom speaks via the TTS voice system (
pompom-voice.ts ElevenLabsEngine)
- Voice test (
/pompom:voice test)
- Commentary, assistant replies, and reaction speech events
Pompom Voice Config
- Default Voice: Jessica Anne Bogart - Chatty and Friendly
- Voice ID:
g6xIsTj2HwM6VR4iXFCw
- Model:
eleven_v3
- API Key:
ELEVENLABS_API_KEY from environment (~/.env.secrets)
- Privacy: Zero Retention Mode —
enable_logging=false query param + xi-no-log: true header
- Stability: 0.0 (Creative — maximum expressiveness for animated character)
- Similarity Boost: 0.85
- Style: 0.8
- Speed: 1.1 (slightly faster for punchy animated character lines)
- Speaker Boost: true
- Output: PCM 24kHz, wrapped in WAV for playback
Available Voices
| Name |
Voice ID |
Style |
| Jessica Anne Bogart - Chatty (default) |
g6xIsTj2HwM6VR4iXFCw |
Chatty, friendly |
| Lily - Soft, Cute and Sweet |
Pt5YrLNyu6d2s3s4CVMg |
Soft, sweet |
| Cherry Twinkle - Bubbly and Sweet |
XJ2fW4ybq7HouelYYGcL |
Bubbly |
| Flicker - Cheerful Fairy |
piI8Kku0DcvcL6TTSeQt |
Cheerful |
| Jessica Anne Bogart - Eloquent |
flHkNRp1BlvT73UL6gyz |
Eloquent, dramatic |
| Sarah - Mature, Confident |
EXAVITQu4vr4xnSDxMaL |
Professional |
Integration with Pompom
The voice engine is in extensions/pompom-voice.ts (ElevenLabsEngine class). Speech events flow:
say() in pompom.ts fires a SpeechEvent
- pompom-extension.ts routes it to
enqueueSpeech()
- Speech queue applies personality gating, cooldown, dedup
- ElevenLabsEngine.synthesize() calls the API
- Audio plays at configured volume via native OS player (afplay/paplay/aplay)
Eleven v3 Best Practices
Voice Settings for Animated Characters
- Stability 0.0 (Creative): Required for audio tags. Maximum expressiveness — perfect for animated characters with short, emotional utterances
- Similarity Boost 0.85: High fidelity to source voice while allowing emotional range
- Style 0.8: Strong stylistic expression for character personality
- Speed 1.1: Slightly faster delivery suits short, punchy lines like "Yum!", "Wheee!", "Got it!"
Audio Tags (v3 Only)
Eleven v3 supports emotional audio tags — used throughout Pompom's speech:
[excited] — energetic reactions (ball, dance, game, treats)
[happy] — warm moments (petting, hugs, feeding, accessories)
[whispers] — quiet moments (sleep, nap)
[sighs] — contentment (waking from nap)
[mischievously] — playful moments (peekaboo)
[sings] — musical moments (la la la)
[curious] — weather observations (clouds rolling in)
[concerned] — weather warnings (storm brewing)
Rules:
- Tags only work with stability 0.0 — NOT 0.5 or 1.0
- One tag per utterance (Pompom's lines are short)
- Match tag to the voice's character — don't force mismatched emotions
- Tag goes at the start of the text:
[excited] Catch the stars!
Text Preparation
- Keep sentences short and conversational (Pompom's lines are 2-6 words)
- Use contractions ("I'm", "that's", "let's")
- Use exclamation marks for energy, ellipses for pauses
- CAPITALIZATION adds emphasis and urgency
- No special characters — sanitized by
sanitizeSpeechText()
Pauses & Pacing
v3 does NOT support SSML <break> tags. Use instead:
- Ellipses (...) — adds pause and weight ("Time for a nap... zZz")
- Dashes (—) — short pause
- CAPITALIZATION — increases emphasis
Engine-Specific Behavior
Audio tags like [laughs], [sighs], [excited] are ElevenLabs v3 only.
When Kokoro or Deepgram is the active engine, tags are automatically stripped
before synthesis — the text "Hello!" still reaches the engine, but "[laughs]" is removed.
No engine loses features because of another engine's limitations.
Kokoro supports Markdown pronunciation: [word](/IPA/) and stress: [word](+2)
Deepgram Aura-2 uses natural prosody from punctuation — no markup needed.
Stability Settings (v3 exact values only)
- 0.0 (Creative): Most expressive — our default for Pompom
- 0.5 (Natural): Balanced — good for professional/mentor personalities
- 1.0 (Robust): Very stable, less responsive — good for zen personality
1---2name: elevenlabs-tts3description: Generate high-quality speech for Pompom companion using ElevenLabs TTS API v34---56# ElevenLabs TTS Skill78Generate high-quality speech for Pompom companion using ElevenLabs Text-to-Speech API v3.910## When to Use11- Pompom speaks via the TTS voice system (`pompom-voice.ts` ElevenLabsEngine)12- Voice test (`/pompom:voice test`)13- Commentary, assistant replies, and reaction speech events1415## Pompom Voice Config16- **Default Voice:** Jessica Anne Bogart - Chatty and Friendly17- **Voice ID:** `g6xIsTj2HwM6VR4iXFCw`18- **Model:** `eleven_v3`19- **API Key:** `ELEVENLABS_API_KEY` from environment (`~/.env.secrets`)20- **Privacy:** Zero Retention Mode — `enable_logging=false` query param + `xi-no-log: true` header21- **Stability:** 0.0 (Creative — maximum expressiveness for animated character)22- **Similarity Boost:** 0.8523- **Style:** 0.824- **Speed:** 1.1 (slightly faster for punchy animated character lines)25- **Speaker Boost:** true26- **Output:** PCM 24kHz, wrapped in WAV for playback2728## Available Voices29| Name | Voice ID | Style |30|------|----------|-------|31| Jessica Anne Bogart - Chatty (default) | `g6xIsTj2HwM6VR4iXFCw` | Chatty, friendly |32| Lily - Soft, Cute and Sweet | `Pt5YrLNyu6d2s3s4CVMg` | Soft, sweet |33| Cherry Twinkle - Bubbly and Sweet | `XJ2fW4ybq7HouelYYGcL` | Bubbly |34| Flicker - Cheerful Fairy | `piI8Kku0DcvcL6TTSeQt` | Cheerful |35| Jessica Anne Bogart - Eloquent | `flHkNRp1BlvT73UL6gyz` | Eloquent, dramatic |36| Sarah - Mature, Confident | `EXAVITQu4vr4xnSDxMaL` | Professional |3738## Integration with Pompom39The voice engine is in `extensions/pompom-voice.ts` (ElevenLabsEngine class). Speech events flow:401. `say()` in pompom.ts fires a SpeechEvent412. pompom-extension.ts routes it to `enqueueSpeech()`423. Speech queue applies personality gating, cooldown, dedup434. ElevenLabsEngine.synthesize() calls the API445. Audio plays at configured volume via native OS player (afplay/paplay/aplay)4546## Eleven v3 Best Practices4748### Voice Settings for Animated Characters49- **Stability 0.0 (Creative):** Required for audio tags. Maximum expressiveness — perfect for animated characters with short, emotional utterances50- **Similarity Boost 0.85:** High fidelity to source voice while allowing emotional range51- **Style 0.8:** Strong stylistic expression for character personality52- **Speed 1.1:** Slightly faster delivery suits short, punchy lines like "Yum!", "Wheee!", "Got it!"5354### Audio Tags (v3 Only)55Eleven v3 supports emotional audio tags — used throughout Pompom's speech:56- `[excited]` — energetic reactions (ball, dance, game, treats)57- `[happy]` — warm moments (petting, hugs, feeding, accessories)58- `[whispers]` — quiet moments (sleep, nap)59- `[sighs]` — contentment (waking from nap)60- `[mischievously]` — playful moments (peekaboo)61- `[sings]` — musical moments (la la la)62- `[curious]` — weather observations (clouds rolling in)63- `[concerned]` — weather warnings (storm brewing)6465**Rules:**66- Tags only work with stability 0.0 — NOT 0.5 or 1.067- One tag per utterance (Pompom's lines are short)68- Match tag to the voice's character — don't force mismatched emotions69- Tag goes at the start of the text: `[excited] Catch the stars!`7071### Text Preparation72- Keep sentences short and conversational (Pompom's lines are 2-6 words)73- Use contractions ("I'm", "that's", "let's")74- Use exclamation marks for energy, ellipses for pauses75- CAPITALIZATION adds emphasis and urgency76- No special characters — sanitized by `sanitizeSpeechText()`7778### Pauses & Pacing79v3 does NOT support SSML `<break>` tags. Use instead:80- **Ellipses (...)** — adds pause and weight ("Time for a nap... zZz")81- **Dashes (—)** — short pause82- **CAPITALIZATION** — increases emphasis8384### Engine-Specific Behavior85Audio tags like `[laughs]`, `[sighs]`, `[excited]` are **ElevenLabs v3 only**.86When Kokoro or Deepgram is the active engine, tags are automatically stripped87before synthesis — the text "Hello!" still reaches the engine, but "[laughs]" is removed.88No engine loses features because of another engine's limitations.8990**Kokoro** supports Markdown pronunciation: `[word](/IPA/)` and stress: `[word](+2)`91**Deepgram** Aura-2 uses natural prosody from punctuation — no markup needed.9293### Stability Settings (v3 exact values only)94- **0.0 (Creative):** Most expressive — our default for Pompom95- **0.5 (Natural):** Balanced — good for professional/mentor personalities96- **1.0 (Robust):** Very stable, less responsive — good for zen personality