# moodcast > Transform any text into emotionally expressive audio with ambient soundscapes using ElevenLabs v3 audio tags and Sound Effects API - Author: clawdhub[bot] - Repository: openclaw/skills - Version: 20260130050700 - Stars: 640 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/openclaw/skills - Web: https://mule.run/skillshub/@@openclaw/skills~moodcast:20260130050700 --- --- name: moodcast description: Transform any text into emotionally expressive audio with ambient soundscapes using ElevenLabs v3 audio tags and Sound Effects API metadata: {"moltbot":{"requires":{"env":["ELEVENLABS_API_KEY"]},"primaryEnv":"ELEVENLABS_API_KEY","homepage":"https://github.com/ashutosh887/moodcast"}} --- # 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