Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
alsk1992 avatar

Tts

  • 72 installs
  • 610 repo stars
  • Updated June 26, 2026
  • alsk1992/cloddsbot

tts is a skill that converts text to speech using ElevenLabs, macOS say, or espeak.

About

This skill converts text to speech using ElevenLabs, the macOS say command, or espeak. It selects voices, sets speed, pitch, and volume, streams synthesis for long text, and supports SSML with ElevenLabs. A developer uses it to speak bot alerts and messages aloud, for example announcing that a trade was filled.

  • Text-to-speech via ElevenLabs, macOS say, or espeak
  • Voice selection, speed, pitch, volume, and queue management
  • Streaming synthesis and SSML support with ElevenLabs

Tts by the numbers

  • 72 all-time installs (skills.sh)
  • Ranked #846 of 1,335 Generative Media skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

tts capabilities & compatibility

ElevenLabs needs ELEVENLABS_API_KEY (~$5/100k chars); macOS say and espeak are free.

Capabilities
text to speech · voice selection · streaming synthesis
Use cases
transcription
Platforms
macOS
Runs
Runs locally
Pricing
Freemium
From the docs

What tts says it does

Convert text to natural-sounding speech using ElevenLabs, macOS say, or espeak.
SKILL.md
Use streaming** — For long text, reduces time to first audio
SKILL.md
npx skills add https://github.com/alsk1992/cloddsbot --skill tts

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs72
repo stars610
Last updatedJune 26, 2026
Repositoryalsk1992/cloddsbot

What it does

Convert text to spoken audio via ElevenLabs, macOS say, or espeak.

Who is it for?

Speaking bot alerts and messages aloud with selectable voices.

Skip if: Speech-to-text transcription or music generation.

When should I use this skill?

You need to synthesize or speak text, choose a voice, or stream long-form audio.

What you get

Synthesized speech output with chosen voice, speed, and provider.

  • Synthesized audio
  • Spoken alert playback

By the numbers

  • 8 ElevenLabs voices listed
  • 3 providers (ElevenLabs, say, espeak)

Files

SKILL.mdMarkdownGitHub ↗

TTS (Text-to-Speech) - Complete API Reference

Convert text to natural-sounding speech using ElevenLabs, macOS say, or espeak.

---

Chat Commands

Synthesize Speech

/speak "Your order has been filled"         Speak text aloud
/speak "Market alert" --voice rachel        Use specific voice
/speak "Portfolio up 5%" --speed 1.2        Adjust speed

Voice Management

/voices                                     List available voices
/voices preview rachel                      Preview a voice
/voice set rachel                           Set default voice

Settings

/tts status                                 Check TTS status
/tts provider elevenlabs                    Set provider
/tts speed 1.0                              Set default speed
/tts volume 0.8                             Set volume (0-1)

---

TypeScript API Reference

Create TTS Service

import { createTTSService } from 'clodds/tts';

const tts = createTTSService({
  provider: 'elevenlabs',
  apiKey: process.env.ELEVENLABS_API_KEY,

  // Defaults
  defaultVoice: 'rachel',
  defaultSpeed: 1.0,
  defaultPitch: 1.0,
});

Synthesize Speech

// Basic synthesis
const audio = await tts.synthesize('Hello, your trade was executed.');

// Play immediately
await tts.speak('Portfolio value is $10,000');

// With options
await tts.speak('Market alert: BTC crossed $100k', {
  voice: 'josh',
  speed: 1.2,
  pitch: 1.0,
  volume: 0.8,
});

Streaming Synthesis

// Stream for long text (lower latency)
const stream = await tts.streamSynthesize(longText, {
  voice: 'rachel',
});

stream.on('data', (chunk) => {
  // Play audio chunks as they arrive
  audioPlayer.write(chunk);
});

stream.on('end', () => {
  console.log('Synthesis complete');
});

List Voices

// Get available voices
const voices = await tts.listVoices();

for (const voice of voices) {
  console.log(`${voice.id}: ${voice.name}`);
  console.log(`  Gender: ${voice.gender}`);
  console.log(`  Accent: ${voice.accent}`);
  console.log(`  Use case: ${voice.useCase}`);
}

Voice Preview

// Preview a voice
await tts.preview('rachel', 'This is a preview of the Rachel voice.');

Queue Management

// Queue multiple messages
tts.queue('First message');
tts.queue('Second message');
tts.queue('Third message');

// Messages play in order

// Clear queue
tts.clearQueue();

// Skip current
tts.skip();

---

ElevenLabs Voices

Voice IDNameGenderAccentBest For
rachelRachelFAmericanNarration
domiDomiFAmericanConversational
bellaBellaFAmericanSoft, gentle
antoniAntoniMAmericanNarration
joshJoshMAmericanDeep, authoritative
arnoldArnoldMAmericanGruff, character
adamAdamMAmericanDeep, narration
samSamMAmericanRaspy, character

---

Providers

ProviderQualityLatencyCostSetup
ElevenLabsPremium~500ms$5/100k charsAPI key
say (macOS)Good~100msFreeBuilt-in
espeakBasic~50msFreeInstall

Provider Configuration

// ElevenLabs (best quality)
const tts = createTTSService({
  provider: 'elevenlabs',
  apiKey: process.env.ELEVENLABS_API_KEY,
});

// macOS say (free, local)
const tts = createTTSService({
  provider: 'say',
  defaultVoice: 'Samantha',  // macOS voice
});

// espeak (cross-platform, free)
const tts = createTTSService({
  provider: 'espeak',
  defaultVoice: 'en-us',
});

---

Audio Output

// Set output device
tts.setOutputDevice('Built-in Speakers');

// Get available devices
const devices = await tts.listOutputDevices();

---

SSML Support (ElevenLabs)

// Use SSML for advanced control
await tts.speak(`
  <speak>
    <prosody rate="slow">Important alert:</prosody>
    <break time="500ms"/>
    Your stop loss was triggered.
  </speak>
`, { ssml: true });

---

Best Practices

1. Use streaming — For long text, reduces time to first audio 2. Cache common phrases — "Order filled", "Alert triggered" 3. Adjust speed — Faster for alerts, slower for details 4. Queue management — Don't overlap important messages 5. Fallback provider — Use say/espeak if ElevenLabs unavailable

Related skills

FAQ

Which TTS providers are supported?

ElevenLabs (premium), macOS say (free, local), and espeak (cross-platform, free).

Does it support SSML?

Yes, SSML for prosody and breaks is supported with ElevenLabs.

Generative Mediallmautomation

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.