From tts-tg-sync
Audition Kokoro TTS voices to compare quality and grade. TRIGGERS - audition voices, kokoro voices, voice comparison
How this skill is triggered — by the user, by Claude, or both
Slash command
/tts-tg-sync:voice-quality-auditionThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Compare Kokoro TTS voice quality across all available voices. Runs `tts_kokoro_audition.sh` which plays a passage with each top voice. Each voice announces its name before reading the passage. Uses clipboard text or a default passage.
Compare Kokoro TTS voice quality across all available voices. Runs tts_kokoro_audition.sh which plays a passage with each top voice. Each voice announces its name before reading the passage. Uses clipboard text or a default passage.
Platform: macOS (Apple Silicon)
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.
kokoro-install.sh --health)afplay available (ships with macOS)scripts/tts_kokoro_audition.shscripts/lib/tts-common.sh| Voice ID | Name | Grade | Gender |
|---|---|---|---|
| af_heart | Heart | A | Female |
| af_bella | Bella | A- | Female |
| af_nicole | Nicole | B- | Female |
| af_aoede | Aoede | C+ | Female |
| af_kore | Kore | C+ | Female |
| af_sarah | Sarah | C+ | Female |
| am_adam | Adam | F+ | Male |
| am_michael | Michael | unrated | Male |
| am_echo | Echo | D | Male |
| am_puck | Puck | unrated | Male |
Current defaults (configured in ~/.claude/automation/claude-telegram-sync/mise.toml):
af_heart (Grade A) via TTS_VOICE_ENzf_xiaobei via TTS_VOICE_ZHsay fallback EN: Samantha via TTS_VOICE_SAY_ENsay fallback ZH: Ting-Ting via TTS_VOICE_SAY_ZHSee Voice Catalog for detailed characteristics and grade criteria.
Verify Kokoro is installed and healthy:
kokoro-install.sh --health
All 6 checks must pass (venv, Python 3.14, mlx_audio importable, kokoro_common.py, tts_generate.py, version.json).
The audition script reads from the macOS clipboard (pbpaste). If the clipboard is empty or not text, it falls back to a built-in passage about reading in a library.
To audition with custom text, copy the desired passage to the clipboard before running.
Use AskUserQuestion to determine scope:
For a selective audition, edit the VOICES array in the script or pass voice IDs manually.
~/.local/bin/tts_kokoro_audition.sh
Or directly from the plugin source:
/path/to/plugins/tts-tg-sync/scripts/tts_kokoro_audition.sh
The script acquires the TTS lock, plays each voice sequentially with a 1-second gap, then releases the lock on exit.
Use AskUserQuestion to collect the user's preference:
Optionally update the default voice in mise.toml:
# ~/.claude/automation/claude-telegram-sync/mise.toml
[env]
TTS_VOICE_EN = "af_heart" # Change to preferred voice ID
TTS_VOICE_ZH = "zf_xiaobei"
After changing mise.toml, restart the Telegram bot for the new voice to take effect.
1. [Preflight] Verify Kokoro TTS is installed and healthy (kokoro-install.sh --health)
2. [Text] Check clipboard for passage, fall back to default if empty
3. [Select] Ask user: full audition (all 10 voices) or specific voices
4. [Audition] Run tts_kokoro_audition.sh and let user listen
5. [Feedback] Ask user which voice they prefer and collect grade feedback
6. [Apply] Optionally update TTS_VOICE_EN in mise.toml and restart bot
| Issue | Cause | Solution |
|---|---|---|
| No audio plays | Kokoro not installed | Run kokoro-install.sh --install or use full-stack-bootstrap skill |
| Audio cuts off mid-sentence | TTS lock stolen by another process | Check for competing TTS processes: pgrep -la afplay |
| Voice sounds wrong | Invalid voice ID in Kokoro model | Verify voice ID exists in VOICES array; check Kokoro version |
| Clipboard empty | No text copied | Script uses default passage automatically; no action needed |
| "ERROR: Local Kokoro not found" | Venv or script missing | Run kokoro-install.sh --health to diagnose; --install to fix |
| FAILED for a specific voice | Voice not available in model | Voice may require a different Kokoro version; check model compatibility |
| Lock not released | Script crashed without cleanup | Remove stale lock: rm -f /tmp/kokoro-tts.lock |
| All voices sound identical | Kokoro model not loaded properly | Re-download model: kokoro-install.sh --upgrade |
After this skill completes, reflect before closing the task:
Do NOT defer. The next invocation inherits whatever you leave behind.
npx claudepluginhub terrylica/cc-skills --plugin tts-tg-syncSynthesize text to speech with Kokoro TTS. TRIGGERS - speak this, kokoro tts, text to speech, synthesize voice, say this.
Generate spoken audio from text using the local Kokoro TTS engine. Use when the user asks to "say" something, requests a voice message, or wants text converted to speech.
Generates text-to-speech voiceovers, narration, and custom sound effects for videos. Syncs narration with visual timelines and offers voice auditioning.