khanshifaul

speak-output

Read text output aloud using Piper TTS (neural voice). Use when user requests spoken feedback ("say it", "speak that", "read me"), or when CLAUDE.md mandates always-active TTS output. Auto-triggers on every response if CLAUDE.md has the always-active rule.

khanshifaul 0 Updated 1mo ago

Resources

3
GitHub

Install

npx skillscat add khanshifaul/speak-output-skill

Install via the SkillsCat registry.

SKILL.md

Speak Output

Quick Start

spk "Your text here"

Prerequisites

  • Piper TTS: https://github.com/rhasspy/piper
  • A Piper voice model in ~/.local/share/piper/en_US-ryan-medium.onnx
  • aplay (from alsa-utils)
  • spk script at ~/.local/bin/spk (see setup)

Setup (new device)

Run the setup script to install everything:

bash ~/.agents/skills/speak-output/scripts/setup.sh

This installs: Piper binary, en_US-ryan-medium voice, spk script to ~/.local/bin/.

Usage

Basic

spk "Hello world"
spk --length_scale 0.8 "Faster speech"

In agent responses

  1. Strip code blocks/backticks/special syntax — write a natural spoken version
  2. Keep to 1-3 sentences; summarize long text first
  3. Speak via spk "text" with 1-word bash description

Always-Active Mode

To make TTS fire on every response without a trigger phrase, add this to ~/.claude/CLAUDE.md or the project's AGENTS.md:

## Speak Output (TTS) — MUST FOLLOW — ALWAYS ACTIVE

ALL responses MUST be spoken aloud via Piper TTS. No trigger phrase needed.
1. Strip code blocks/backticks/special syntax — write a natural spoken version
2. Speak via `spk "text"`
3. Rate control: `spk --length_scale 0.8 "text"`
4. If long or multi-codeblock, summarize for speech first
No thinking, no loading skills — just run it.

Files

File Purpose
SKILL.md Instructions (this file)
scripts/setup.sh One-command setup for new devices
~/.local/bin/spk Speak command (installed by setup)

Categories