Speech & TranscriptionDocumentedScanned

inworld-tts

Text-to-speech via Inworld.ai API.

Share:

Installation

npx clawhub@latest install inworld-tts

View the full skill documentation and source below.

Documentation

Inworld TTS

Generate speech audio from text using Inworld.ai's TTS API.

Setup

  • Get API key from

  • Generate key with "Voices: Read" permission

  • Copy the "Basic (Base64)" key

  • Set environment variable:
  • export INWORLD_API_KEY="your-base64-key-here"

    For persistence, add to ~/.bashrc or ~/.clawdbot/.env.

    Installation

    # Copy skill to your skills directory
    cp -r inworld-tts /path/to/your/skills/
    
    # Make script executable
    chmod +x /path/to/your/skills/inworld-tts/scripts/tts.sh
    
    # Optional: symlink for global access
    ln -sf /path/to/your/skills/inworld-tts/scripts/tts.sh /usr/local/bin/inworld-tts

    Usage

    # Basic
    ./scripts/tts.sh "Hello world" output.mp3
    
    # With options
    ./scripts/tts.sh "Hello world" output.mp3 --voice Dennis --rate 1.2
    
    # Streaming (for text >4000 chars)
    ./scripts/tts.sh "Very long text..." output.mp3 --stream

    Options

    OptionDefaultDescription
    --voiceDennisVoice ID
    --rate1.0Speaking rate (0.5-2.0)
    --temp1.1Temperature (0.1-2.0)
    --modelinworld-tts-1.5-maxModel ID
    --streamfalseUse streaming endpoint

    API Reference

    EndpointUse
    POST | Standard synthesis | | POSTStreaming for long text

    Requirements

    • curl - HTTP requests
    • jq - JSON processing
    • base64 - Decode audio

    Examples

    # Quick test
    export INWORLD_API_KEY="aXM2..."
    ./scripts/tts.sh "Testing one two three" test.mp3
    mpv test.mp3  # or any audio player
    
    # Different voice and speed
    ./scripts/tts.sh "Slow and steady" slow.mp3 --rate 0.8
    
    # Fast-paced narration
    ./scripts/tts.sh "Breaking news!" fast.mp3 --rate 1.5

    Troubleshooting

    "INWORLD_API_KEY not set" - Export the environment variable before running.

    Empty output file - Check API key is valid and has "Voices: Read" permission.

    Streaming issues - Ensure jq supports --unbuffered flag.

    Links

    • Inworld Platform:
    • API Examples: