Audition Kokoro TTS voices to compare quality and grade. TRIGGERS - audition voices, kokoro voices, voice comparison, tts voice, voice quality, compare voices.
From tts-tg-syncnpx claudepluginhub terrylica/cc-skills --plugin tts-tg-syncThis skill is limited to using the following tools:
references/evolution-log.mdreferences/voice-catalog.mdGuides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Optimizes cloud costs on AWS, Azure, GCP via rightsizing, tagging strategies, reserved instances, spot usage, and spending analysis. Use for expense reduction and governance.
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.13, 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.