Bug
agent_cli/server/tts/wyoming_handler.py (v0.101.0, line 206) derives each voice's Wyoming language metadata from the voice name:
languages=[status.name.split("_")[0] if "_" in status.name else "en"],
This works for Piper-style names (en_US-lessac-medium → en), but Kokoro voice names encode accent+gender, not locale: af_heart → announced as af (Afrikaans), am_adam → am (Amharic), bm_george → bm (Bambara).
Impact
Home Assistant's Wyoming integration reads these languages from describe and grays out the agent-cli TTS engine for English voice pipelines — the server is unusable as a HA pipeline TTS with Kokoro voices until patched.
Repro
agent-cli server tts --backend kokoro --model am_adam (macOS arm64, installed via uv tool install 'agent-cli[kokoro]')
- Add Wyoming integration in HA pointing at port 10200
- Settings → Voice assistants → pipeline → TTS: agent-cli-tts is grayed out (no English voices announced)
Suggested fix
For the kokoro backend, map the name prefix properly (first char: a → en-US, b → en-GB, e → es, f → fr, etc. per hexgrad/Kokoro-82M voice naming), or take languages from the backend rather than the voice name. Local workaround we applied: hardcode languages=["en"].
Also cosmetic: the description/attribution for Kokoro voices says "Piper TTS" (same file, lines 199-203).
Bug
agent_cli/server/tts/wyoming_handler.py(v0.101.0, line 206) derives each voice's Wyoming language metadata from the voice name:This works for Piper-style names (
en_US-lessac-medium→en), but Kokoro voice names encode accent+gender, not locale:af_heart→ announced asaf(Afrikaans),am_adam→am(Amharic),bm_george→bm(Bambara).Impact
Home Assistant's Wyoming integration reads these languages from
describeand grays out the agent-cli TTS engine for English voice pipelines — the server is unusable as a HA pipeline TTS with Kokoro voices until patched.Repro
agent-cli server tts --backend kokoro --model am_adam(macOS arm64, installed viauv tool install 'agent-cli[kokoro]')Suggested fix
For the kokoro backend, map the name prefix properly (first char:
a→en-US,b→en-GB,e→es,f→fr, etc. per hexgrad/Kokoro-82M voice naming), or take languages from the backend rather than the voice name. Local workaround we applied: hardcodelanguages=["en"].Also cosmetic: the description/attribution for Kokoro voices says "Piper TTS" (same file, lines 199-203).