TTS engine status check, speaker test, and troubleshooting
Check TTS engine status, list available speakers, test synthesis, and troubleshoot issues. Supports COEIROINK v2 (port 50032) and VOICEVOX (port 50021).
# Check COEIROINK v2
curl -s --connect-timeout 2 http://localhost:50032/v1/speakers > /dev/null && echo "COEIROINK v2 is running" || echo "COEIROINK v2 is NOT running"
# Check VOICEVOX
curl -s --connect-timeout 2 http://localhost:50021/speakers > /dev/null && echo "VOICEVOX is running" || echo "VOICEVOX is NOT running"
For COEIROINK v2:
curl -s http://localhost:50032/v1/speakers | python3 -c "
import json, sys
speakers = json.load(sys.stdin)
for s in speakers:
styles = ', '.join(f'{st[\"styleName\"]}(id={st[\"styleId\"]})' for st in s['styles'])
print(f' {s[\"speakerName\"]} (uuid={s[\"speakerUuid\"]}): {styles}')
"
For VOICEVOX:
curl -s http://localhost:50021/speakers | python3 -c "
import json, sys
speakers = json.load(sys.stdin)
for s in speakers:
styles = ', '.join(f'{st[\"name\"]}(id={st[\"id\"]})' for st in s['styles'])
print(f' {s[\"name\"]}: {styles}')
"
Test via the project's TTS dispatcher:
# Auto-detect engine
python3 .claude/hooks/mascot_tts.py --emotion Joy "テストです"
# Force specific engine
TTS_ENGINE=coeiroink python3 .claude/hooks/mascot_tts.py --emotion Gentle "テストです"
TTS_ENGINE=voicevox python3 .claude/hooks/mascot_tts.py --emotion Gentle "テストです"
TTS_ENGINE=none python3 .claude/hooks/mascot_tts.py --emotion Gentle "テストです"
TTS engine not running
Speaker not found
speaker_name in .claude/hooks/tts_config.tomlNo audio playback
afplay is available: which afplaymascot_tts.py uses PowerShell System.Media.SoundPlayer (no extra tools needed). Check volume settingsCheck logs
cat ~/.claude/logs/mascot_tts.log
Signal file not working
ls ~/.claude/utsutsu-code/~/.claude/utsutsu-code/mascot_speaking.claude/hooks/tts_config.toml or TTS_ENGINE / TTS_SPEAKER env vars/tsukuyomi-setup — Full setup/tsukuyomi-cleanup — Cleanup/mascot-run — Launch mascot app/tts — Manual TTS execution