Cc-skills synthesize
Synthesize text to speech with Kokoro TTS. TRIGGERS - speak this, kokoro tts, text to speech, synthesize voice, say this.
install
source · Clone the upstream repo
git clone https://github.com/terrylica/cc-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/terrylica/cc-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/kokoro-tts/skills/synthesize" ~/.claude/skills/terrylica-cc-skills-synthesize && rm -rf "$T"
manifest:
plugins/kokoro-tts/skills/synthesize/SKILL.mdsource content
Synthesize Speech
Generate speech from text using the Kokoro TTS CLI tool. Supports single WAV output or chunked streaming for long text.
Self-Evolving Skill: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.
Quick Usage
# Single WAV ~/.local/share/kokoro/.venv/bin/python ~/.local/share/kokoro/tts_generate.py \ --text "Hello from Kokoro TTS" --voice af_heart --lang en-us --speed 1.0 \ --output /tmp/kokoro-tts-$$.wav # Play it afplay /tmp/kokoro-tts-$$.wav
Parameters
| Parameter | Default | Description |
|---|---|---|
| (required) | Text to synthesize |
| | Voice name (see voice catalog) |
| | Language code (en-us, zh, ja, etc.) |
| | Speech speed multiplier |
| (required) | Output WAV path |
| off | Chunked streaming mode for long text |
Voice Catalog
See Voice Catalog for all available voices with quality grades.
Top voices:
| Voice ID | Name | Grade | Gender |
|---|---|---|---|
| af_heart | Heart | A | Female |
| af_bella | Bella | A- | Female |
| af_nicole | Nicole | B- | Female |
Chunked Streaming
For long text, use
--chunk to get progressive playback:
~/.local/share/kokoro/.venv/bin/python ~/.local/share/kokoro/tts_generate.py \ --text "Long text here..." --voice af_heart --lang en-us --speed 1.0 \ --output /tmp/kokoro-tts-$$.wav --chunk
Each chunk WAV path is printed to stdout as it becomes ready. The final line is
DONE <ms>.
Troubleshooting
| Issue | Cause | Solution |
|---|---|---|
| No audio output | Model not loaded | Run first |
| Empty text error | Input was blank | Provide non-empty |
| Slow generation | First-run warmup | Normal — subsequent runs faster |
Post-Execution Reflection
After this skill completes, check before closing:
- Did the command succeed? — If not, fix the instruction or error table that caused the failure.
- Did parameters or output change? — If the underlying tool's interface drifted, update Usage examples and Parameters table to match.
- Was a workaround needed? — If you had to improvise (different flags, extra steps), update this SKILL.md so the next invocation doesn't need the same workaround.
Only update if the issue is real and reproducible — not speculative.