Awesome-omni-skill TTS Setup and Configuration

This skill activates when users ask about text-to-speech setup, configuration, troubleshooting, voice selection, or TTS functionality. Trigger phrases include "how do I set up TTS", "configure text to speech", "TTS not working", "change TTS voice", "TTS help", "troubleshoot TTS", "TTS speed", "disable TTS", or any questions about the TTS plugin functionality.

install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/tools/tts-setup-and-configuration" ~/.claude/skills/diegosouzapw-awesome-omni-skill-tts-setup-and-configuration && rm -rf "$T"
manifest: skills/tools/tts-setup-and-configuration/SKILL.md
source content

TTS Setup and Configuration for Claude Code

Provide comprehensive guidance for setting up, configuring, and troubleshooting the TTS (text-to-speech) plugin for Claude Code. This skill covers installation prerequisites, configuration options, voice selection, troubleshooting, and usage patterns.

Prerequisites and Installation

kokoro-tts Installation

Before using this plugin, kokoro-tts must be installed. Guide the user through verification:

  1. Check if kokoro-tts is installed:

    which kokoro-tts
    
  2. If not installed, direct user to installation:

  3. Verify model files exist:

    • Model:
      ~/.local/share/kokoro-tts/kokoro-v1.0.onnx
    • Voices:
      ~/.local/share/kokoro-tts/voices-v1.0.bin
    • If missing, kokoro-tts installation may be incomplete

Plugin Installation

The TTS plugin should already be installed if the user is asking about it. If not:

  1. Install plugin to Claude Code plugins directory
  2. Enable in Claude Code settings or with
    cc --plugin-dir
  3. Restart Claude Code for hooks to load

Initial Configuration

Quick Start

Guide user through quick configuration:

  1. Run the configure command:

    /tts-plugin:configure
    
  2. Choose "Quick Setup" for common settings:

    • TTS_ENABLED: true (to enable TTS)
    • TTS_VOICE: Select preferred voice (af_bella, af_sarah, etc.)
    • TTS_LANG: Select language (en-gb, en-us, etc.)
    • TTS_SPEED: Set speech speed (1.0-1.5 recommended)
  3. Save and restart Claude Code for changes to take effect

Test TTS

After configuration, test that it works:

/tts-plugin:test

Expected: Should hear "This is a test of the text to speech system"

Voice and Language Selection

Available Voices

Run

kokoro-tts --help-voices
to see all available voices.

Common voices:

  • af_bella - Female, British accent (default)
  • af_sarah - Female, British accent
  • af_sky - Female, British accent
  • bf_emma - Female, British accent
  • bf_isabella - Female, British accent
  • am_adam - Male, British accent
  • am_michael - Male, British accent

Available Languages

Run

kokoro-tts --help-languages
to see all available languages.

Common languages:

  • en-gb - English (British) (default)
  • en-us - English (American)
  • es - Spanish
  • fr - French
  • de - German
  • ja - Japanese

Testing Different Voices

Test voices without changing configuration:

/tts-plugin:test --voice af_sarah
/tts-plugin:test --voice bf_emma --speed 1.5
/tts-plugin:test "Custom message" --voice am_michael

Once you find a voice you like, save it with

/tts-plugin:configure
.

Configuration Options

Basic Settings

TTS_ENABLED (true/false)

  • Master enable/disable switch
  • Affects all TTS hooks
  • Default: true

TTS_VOICE (voice name)

  • Voice to use for speech
  • See kokoro-tts --help-voices for options
  • Default: af_bella

TTS_LANG (language code)

  • Language for speech
  • See kokoro-tts --help-languages for options
  • Default: en-gb

TTS_SPEED (0.5-2.0)

  • Speech speed multiplier
  • 1.0 = normal speed
  • 1.3-1.5 = faster but still clear (recommended)
  • Default: 1.3

Advanced Settings

TTS_PRETOOL_ENABLED (true/false)

  • Enable PreToolUse hook (speaks before each tool execution)
  • Can be verbose, disabled by default
  • Only active if TTS_ENABLED=true
  • Default: false

TTS_USE_TTS_SECTION (true/false)

  • Extract "## TTS Response" section from Claude's responses
  • When true, only speaks TTS-optimized content
  • When false, speaks entire response
  • Default: true

TTS_MAX_LENGTH (number)

  • Maximum characters to speak per message
  • Prevents extremely long TTS
  • Default: 5000

TTS_STATE_DIR (path)

  • Directory for session state files
  • Tracks what's been spoken to avoid repeats
  • Default: ~/.local/state/claude-tts/session-state

TTS_LOG_DIR (path)

  • Directory for TTS log files
  • Useful for debugging
  • Default: ~/.local/state/claude-tts/logs

Configuration File Location

All settings stored in:

~/.claude/tts-plugin.env

Edit this file directly or use

/tts-plugin:configure
for interactive setup.

How TTS Works

Event Flow

  1. User submits prompt (UserPromptSubmit hook):

    • Interrupts any ongoing TTS playback
    • Injects instruction asking Claude to add "## TTS Response" section
    • Marks current messages as read
  2. Claude generates response:

    • Includes TTS-optimized content in "## TTS Response" section
    • This section has markdown removed, simplified paths, natural language
  3. Claude finishes responding (Stop hook):

    • Extracts new messages from transcript
    • Looks for "## TTS Response" section
    • Speaks the text using kokoro-tts
    • Updates session state
  4. Optional: Before each tool (PreToolUse hook, if enabled):

    • Speaks any new text that appeared
    • Provides real-time audio feedback
  5. Session ends (SessionEnd hook):

    • Cleans up session state files

TTS Response Section

Claude adds a "## TTS Response" section to responses when TTS is active. This section contains:

  • Same information as main response
  • Markdown formatting removed
  • URLs converted to domain names
  • File paths simplified to filenames
  • Natural, spoken language

Users see both the normal response AND the TTS Response section. TTS only speaks the TTS Response section (if TTS_USE_TTS_SECTION=true).

Common Use Cases

Enable TTS for Session

Temporarily enable TTS without saving:

/tts-plugin:enable

Enable TTS Permanently

Save enable setting to .env:

/tts-plugin:enable --persistent

Disable TTS Temporarily

Stop TTS for current session:

/tts-plugin:disable

Disable TTS Permanently

Save disable setting to .env:

/tts-plugin:disable --persistent

Change Voice

/tts-plugin:configure
# Choose Quick Setup
# Select new voice

Adjust Speed

/tts-plugin:configure
# Choose Quick Setup
# Set new speed (1.0-2.0)

Enable PreToolUse Hook

For real-time TTS during tool execution:

/tts-plugin:configure
# Choose Advanced Setup
# Set TTS_PRETOOL_ENABLED=true

Note: This can be verbose as it speaks before each tool.

Troubleshooting

TTS Not Speaking

Problem: TTS is enabled but nothing plays

Solutions:

  1. Verify kokoro-tts is installed:
    which kokoro-tts
  2. Test TTS directly:
    /tts-plugin:test
  3. Check TTS_ENABLED in configuration:
    /tts-plugin:configure
  4. Verify system audio is working
  5. Check logs:
    ~/.local/state/claude-tts/logs/
  6. Restart Claude Code (hooks load at startup)

TTS Interrupted Immediately

Problem: TTS starts but stops right away

Solutions:

  1. Don't submit new prompts while TTS is speaking
  2. UserPromptSubmit hook intentionally interrupts TTS
  3. This is normal behavior to prevent overlapping speech

Wrong Voice or Language

Problem: TTS uses different voice than expected

Solutions:

  1. Check current configuration:
    /tts-plugin:configure
    → View Current Settings
  2. Update configuration:
    /tts-plugin:configure
    → Quick Setup
  3. Restart Claude Code after changes
  4. Test new settings:
    /tts-plugin:test

TTS Too Fast/Slow

Problem: Speech speed is uncomfortable

Solutions:

  1. Test different speeds:
    /tts-plugin:test --speed 1.0
    (try 0.8-1.5)
  2. Save preferred speed:
    /tts-plugin:configure
    → Quick Setup → Set TTS_SPEED
  3. Restart Claude Code after changes

TTS Too Verbose

Problem: TTS speaks too much or too often

Solutions:

  1. Disable PreToolUse hook:
    /tts-plugin:configure
    → Advanced → TTS_PRETOOL_ENABLED=false
  2. Reduce max length:
    /tts-plugin:configure
    → Advanced → TTS_MAX_LENGTH=2000
  3. Disable completely:
    /tts-plugin:disable --persistent

TTS Speaks Full Response

Problem: TTS speaks entire response instead of optimized section

Solutions:

  1. Ensure TTS_USE_TTS_SECTION=true in configuration
  2. Verify Claude is adding "## TTS Response" section (check responses)
  3. If section missing, TTS instruction injection may not be working
  4. Check UserPromptSubmit hook is active (restart Claude Code)

Model Files Not Found

Problem: Error about missing model or voices files

Solutions:

  1. Verify model file exists:
    ls ~/.local/share/kokoro-tts/kokoro-v1.0.onnx
  2. Verify voices file exists:
    ls ~/.local/share/kokoro-tts/voices-v1.0.bin
  3. If missing, reinstall kokoro-tts
  4. Update paths in configuration if files are in different location

Changes Not Taking Effect

Problem: Configuration changes don't work

Solutions:

  1. Restart Claude Code - hooks and configuration load at startup
  2. Verify changes saved to ~/.claude/tts-plugin.env
  3. Check for syntax errors in .env file
  4. Test with
    /tts-plugin:test
    to verify settings

Best Practices

Recommended Settings

For most users:

TTS_ENABLED=true
TTS_PRETOOL_ENABLED=false       # Disable verbose PreToolUse
TTS_VOICE=af_bella              # Or your preferred voice
TTS_LANG=en-gb                  # Or your preferred language
TTS_SPEED=1.3                   # Faster but clear
TTS_USE_TTS_SECTION=true        # Use optimized content
TTS_MAX_LENGTH=5000             # Prevent overly long TTS

When to Enable PreToolUse Hook

Enable if you want:

  • Real-time audio feedback during long operations
  • To hear progress updates as tools execute
  • Maximum awareness of what Claude is doing

Disable if you want:

  • Less verbose TTS (recommended)
  • Only hear final responses
  • Avoid hearing tool execution messages

Speed Recommendations

  • 0.8-1.0: Slower, easier to understand, good for learning
  • 1.0-1.3: Normal speed, comfortable listening
  • 1.3-1.5: Faster but clear, efficient (recommended)
  • 1.5-2.0: Very fast, may be hard to follow

Voice Selection Tips

  1. Test multiple voices:
    /tts-plugin:test --voice VOICE_NAME
  2. Consider accent preference (British vs American)
  3. Consider gender preference (male vs female voices)
  4. Listen for clarity at your preferred speed
  5. Save favorite:
    /tts-plugin:configure

Advanced Topics

Temporarily Disabling TTS

To quickly silence TTS without changing configuration:

/tts-plugin:disable

Re-enable when ready:

/tts-plugin:enable

Session State Management

TTS tracks what's been spoken in session state files:

  • Location: ~/.local/state/claude-tts/session-state/
  • Files named: claude-tts-state-{session_id}.txt
  • Automatically cleaned up on SessionEnd
  • Prevents re-speaking already-heard messages

Log Files

TTS logs to:

  • Location: ~/.local/state/claude-tts/logs/
  • Files named: claude-tts-{session_id}.log
  • Useful for debugging
  • Check these if TTS isn't working

Custom Model/Voices Paths

If kokoro-tts files are in non-standard location:

/tts-plugin:configure
# Choose Advanced Setup
# Set TTS_MODEL=/custom/path/to/model.onnx
# Set TTS_VOICES=/custom/path/to/voices.bin

Quick Reference

Commands

  • /tts-plugin:enable [--persistent]
    - Enable TTS
  • /tts-plugin:disable [--persistent]
    - Disable TTS
  • /tts-plugin:configure
    - Configure settings
  • /tts-plugin:test [message] [--voice V] [--speed S] [--lang L]
    - Test TTS

Configuration File

  • Location: ~/.claude/tts-plugin.env
  • Template: Plugin includes .env.example
  • Edit: Use
    /tts-plugin:configure
    or edit file directly

Key Settings

  • TTS_ENABLED: Master on/off switch
  • TTS_VOICE: Voice selection
  • TTS_SPEED: Speech speed (0.5-2.0)
  • TTS_PRETOOL_ENABLED: Enable verbose PreToolUse hook

Getting Help

  1. Ask about TTS setup: "How do I configure TTS?"
  2. Run test:
    /tts-plugin:test
  3. Check configuration:
    /tts-plugin:configure
    → View Current Settings
  4. Check logs:
    ~/.local/state/claude-tts/logs/
  5. Check kokoro-tts:
    kokoro-tts --help

When helping users with TTS:

  1. Start by understanding their issue or goal
  2. Guide them through relevant commands
  3. Provide specific troubleshooting steps
  4. Test changes with
    /tts-plugin:test
  5. Remind to restart Claude Code after configuration changes