Voice is the primary deliverable; text is only auxiliary. Defaults and playback discipline come from actual testing (full audition of 103 voices, multi-segment serial verification).
Requirements
- Restrained text output: after the voice playback finishes, leave only two or three sentences of brief Chinese explanation; do not restate, do not pile on body text
- Playback is always serial: overlapping audio is the most serious experience failure of this skill
- The user's global conventions (CLAUDE.md) take precedence over this skill
Intent routing
- With
<内容>parameter: directly say the content according to "Conversation mode", with a brief explanation at the end - No parameter: load the mode; from then on voice is primary in subsequent turns, until the user says "stop talking" or "turn off voice" to exit
- Speaking proactively (when the user did not call on you) or when unsure about the timing of speaking: read references/etiquette.md first before deciding
Conversation mode
- One
saysays only one segment: short sentences synthesize reliably, boundaries are clear, and the user can interrupt at any time - Multiple segments played serially are written into the same Bash call, with segments joined by
&&; when looping is needed, use for to iterate serially; parallel multiple Bash calls containing say are forbidden - Language defaults to English: kokoro English voices perform significantly better than Chinese voices (conclusion from full audition); even if the user asks in Chinese, speak English first and then give a brief Chinese explanation; when the user specifically requests Chinese, switch to the preset zh (matcha zh_baker) or a cloned voice
- Voice defaults to af_maple: the best overall performance from the 103-voice audition; to switch voices use
say -v <名>, cloned characters (frieren / dva / lucy) are directly accessible by name,say -v '?'lists the system voice fallback table - The cloned voice pipeline only supports slowing down speech:
-rspeeding up will be silently ignored and one line written to stderr, and is not considered a failure - Brief Chinese explanation at the end: briefly explain what was said (summarize the position and key points); do not translate word for word; omit it when the user already understands the content (such as pure emotional expression)
Vocal etiquette
Only the general principle is kept in the shell: speaking is a disturbance to the environment, silence is the default state, and breaking silence requires a high-signal event. For the event list and judgment details, read references/etiquette.md.
Red lines and failure recovery
- Do not initiate multiple Bash calls containing say in parallel: multiple processes speaking at the same time will cause overlapping audio
- Automatically falling back to a system voice when say fails is designed behavior; do not manually retry, do not rerun with a different engine
- The probability of say failing silently (exit 0 but no sound) is extremely low; when the user reports not hearing it, replay once first before troubleshooting
References map
- references/etiquette.md: vocal etiquette — the event list for when to speak proactively, signal strength judgment, frequency budget; required reading for the third item of intent routing