Skip to content

Wyoming TTS: Kokoro voice names parsed as language codes, breaking Home Assistant pipeline selection #592

@crudiyay

Description

@crudiyay

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-mediumen), but Kokoro voice names encode accent+gender, not locale: af_heart → announced as af (Afrikaans), am_adamam (Amharic), bm_georgebm (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

  1. agent-cli server tts --backend kokoro --model am_adam (macOS arm64, installed via uv tool install 'agent-cli[kokoro]')
  2. Add Wyoming integration in HA pointing at port 10200
  3. 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: aen-US, ben-GB, ees, ffr, 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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions