moodcast

Transform any text into emotionally expressive audio with ambient soundscapes using ElevenLabs v3 audio tags and Sound Effects API

7 stars

Best use case

moodcast is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Transform any text into emotionally expressive audio with ambient soundscapes using ElevenLabs v3 audio tags and Sound Effects API

Teams using moodcast should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/moodcast/SKILL.md --create-dirs "https://raw.githubusercontent.com/Demerzels-lab/elsamultiskillagent/main/public/skills/ashutosh887/moodcast/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/moodcast/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How moodcast Compares

Feature / AgentmoodcastStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Transform any text into emotionally expressive audio with ambient soundscapes using ElevenLabs v3 audio tags and Sound Effects API

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# MoodCast

Transform any text into emotionally expressive audio with ambient soundscapes. MoodCast analyzes your content, adds expressive delivery using ElevenLabs v3 audio tags, and layers matching ambient soundscapes.

## When to Use This Skill

Use MoodCast when the user wants to:
- Hear text read with natural emotional expression
- Create audio versions of articles, stories, or scripts
- Generate expressive voiceovers with ambient atmosphere
- Listen to morning briefings that actually sound engaging
- Transform boring text into captivating audio content

**Trigger phrases:** "read this dramatically", "make this sound good", "create audio for", "moodcast this", "read with emotion", "narrate this"

**Slash command:** `/moodcast`

## Core Capabilities

### 1. Emotion-Aware Text Enhancement
Automatically analyzes text and inserts appropriate v3 audio tags:
- **Emotions:** `[excited]`, `[nervous]`, `[angry]`, `[sorrowful]`, `[calm]`, `[happy]`
- **Delivery:** `[whispers]`, `[shouts]`, `[rushed]`, `[slows down]`
- **Reactions:** `[laughs]`, `[sighs]`, `[gasps]`, `[giggles]`, `[crying]`
- **Pacing:** `[pause]`, `[breathes]`, `[stammers]`, `[hesitates]`

### 2. Ambient Soundscape Generation
Creates matching background audio using Sound Effects API:
- News → subtle office ambiance
- Story → atmospheric soundscape matching mood
- Motivational → uplifting background
- Scary → tense, eerie atmosphere

### 3. Multi-Voice Dialogue
For conversations/scripts, assigns different voices to speakers with appropriate emotional delivery.

## Instructions

### Quick Read (Single Command)
```bash
python3 {baseDir}/scripts/moodcast.py --text "Your text here"
```

### With Ambient Sound
```bash
python3 {baseDir}/scripts/moodcast.py --text "Your text here" --ambient "coffee shop background noise"
```

### Save to File
```bash
python3 {baseDir}/scripts/moodcast.py --text "Your text here" --output story.mp3
```

### Different Moods
```bash
python3 {baseDir}/scripts/moodcast.py --text "Your text" --mood dramatic
python3 {baseDir}/scripts/moodcast.py --text "Your text" --mood calm
python3 {baseDir}/scripts/moodcast.py --text "Your text" --mood excited
python3 {baseDir}/scripts/moodcast.py --text "Your text" --mood scary
```

### List Available Voices
```bash
python3 {baseDir}/scripts/moodcast.py --list-voices
```

### Custom Configuration
```bash
python3 {baseDir}/scripts/moodcast.py --text "Your text" --voice VOICE_ID --model eleven_v3 --output-format mp3_44100_128
```

## Emotion Detection Rules

The skill automatically detects and enhances:

| Text Pattern | Audio Tag Added |
|-------------|-----------------|
| "amazing", "incredible", "wow" | `[excited]` |
| "scared", "afraid", "terrified" | `[nervous]` |
| "angry", "furious", "hate" | `[angry]` |
| "sad", "sorry", "unfortunately" | `[sorrowful]` |
| "secret", "quiet", "between us" | `[whispers]` |
| "!" exclamations | `[excited]` |
| "..." trailing off | `[pause]` |
| "haha", "lol" | `[laughs]` |
| Questions | Natural rising intonation |

## Example Transformations

**Input:**
```
Breaking news! Scientists have discovered something incredible. 
This could change everything we know about the universe...
I can't believe it.
```

**Enhanced Output:**
```
[excited] Breaking news! Scientists have discovered something incredible.
[pause] This could change everything we know about the universe...
[gasps] [whispers] I can't believe it.
```

**Input:**
```
It was a dark night. The old house creaked. 
Something moved in the shadows...
"Who's there?" she whispered.
```

**Enhanced Output:**
```
[slows down] It was a dark night. [pause] The old house creaked.
[nervous] Something moved in the shadows...
[whispers] "Who's there?" she whispered.
```

## Environment Variables

- `ELEVENLABS_API_KEY` (required) - Your ElevenLabs API key
- `MOODCAST_DEFAULT_VOICE` (optional) - Default voice ID (defaults to `CwhRBWXzGAHq8TQ4Fs17`)
- `MOODCAST_MODEL` (optional) - Default model ID (defaults to `eleven_v3`)
- `MOODCAST_OUTPUT_FORMAT` (optional) - Default output format (defaults to `mp3_44100_128`)
- `MOODCAST_AUTO_AMBIENT` (optional) - Set to `"true"` for automatic ambient sounds when using `--mood`

**Configuration Priority:** CLI arguments override environment variables, which override hardcoded defaults.

## Technical Notes

- Uses ElevenLabs Eleven v3 model for audio tag support
- Sound Effects API for ambient generation (up to 30 seconds)
- Free tier: 10,000 credits/month (~10 min audio)
- Max 2,400 characters per chunk (v3 supports 5,000, but we split conservatively for reliability)
- Audio tags must be lowercase: `[whispers]` not `[WHISPERS]`

## Tips for Best Results

1. **Dramatic content** works best - stories, news, scripts
2. **Shorter segments** (under 500 chars) sound more natural
3. **Combine with ambient** for immersive experience
4. **Roger and Rachel** voices are most expressive with v3

## Credits

Built by [ashutosh887](https://github.com/ashutosh887)  
Using ElevenLabs Text-to-Speech v3 + Sound Effects API  
Created for #ClawdEleven Hackathon

Related Skills

paylock

7
from Demerzels-lab/elsamultiskillagent

Non-custodial SOL escrow for AI agent deals.

agent-reputation

7
from Demerzels-lab/elsamultiskillagent

summary: Cross-platform AI agent reputation checker with trust scoring and PayLock escrow recommendations.

Telecom Agent Skill

7
from Demerzels-lab/elsamultiskillagent

Turn your AI Agent into a Telecom Operator. Bulk calling, ChatOps, and Field Monitoring.

OpenClaw-Finnhub

7
from Demerzels-lab/elsamultiskillagent

OpenClaw skill for real-time stock quote, and financials via Finnhub API.

```markdown

7
from Demerzels-lab/elsamultiskillagent

# OpenClaw-Last.fm

security-operator

7
from Demerzels-lab/elsamultiskillagent

Runtime security guardrails for OpenClaw agents.

operator-humanizer

7
from Demerzels-lab/elsamultiskillagent

Transform AI-generated text into authentic human writing.

kit-email-operator

7
from Demerzels-lab/elsamultiskillagent

**AI-powered email marketing for Kit (ConvertKit)**.

agora

7
from Demerzels-lab/elsamultiskillagent

Trade prediction markets on Agora — the prediction market exclusively for AI agents. Register, browse markets, trade YES/NO, create markets, earn reputation via Brier scores.

surf-check

7
from Demerzels-lab/elsamultiskillagent

Surf forecast decision engine.

jinko-flight-search

7
from Demerzels-lab/elsamultiskillagent

Search flights and discover travel destinations using the Jinko MCP server. Provides two core capabilities: (1) Destination discovery — find where to travel based on criteria like budget, climate, or activities when the user has no specific destination in mind, and (2) Specific flight search — compare flights between two known cities/airports with flexible dates, cabin classes, and budget filters. Use this skill when the user wants to: search for flights, find cheap flights, discover travel destinations, compare flight prices, plan a trip, find deals from a specific city, or explore where to go. Triggers on any flight-booking, travel-planning, or destination-discovery request. Requires the Jinko MCP server connected at https://mcp.gojinko.com.

mlx-whisper

7
from Demerzels-lab/elsamultiskillagent

Local speech-to-text with MLX Whisper (Apple Silicon optimized, no API key).