speak()'s lang now defaults to detectLang(text) (any Han/kana -> zh-CN, else en-US) instead of always en-US, so reading a Chinese passage picks the Piper zh voice rather than spelling out characters with the English voice. Explicit lang still overrides. Claude-Session: https://claude.ai/code/session_016Yr6jELuRc7hyzYLccQKZd