Skip to content

[Task]: Improve Edge TTS voice selection during setup #11

@crankshift

Description

@crankshift

Summary

Improve the setup command flow for Edge TTS voice selection so users can keep the default voice or choose a different voice through guided, validated selection.

Context

When a user selects Edge TTS during setup, the current flow should offer a default voice path and an alternate voice selection path. If the user chooses another voice, setup should first present a country list with autocomplete. Free text must not be submittable; users should only be able to continue after selecting a country from the list. After country selection, setup should show a paginated voice list for that country because Edge TTS enforces pagination for countries with large voice lists. The voice selection should support keyboard navigation and autocomplete.

Acceptance Criteria

  • Edge TTS setup prompts the user to keep the default voice or select another voice.
  • Selecting another voice opens a country selector with autocomplete and keyboard navigation.
  • Country selection rejects arbitrary free text and only accepts an item selected from the provided list.
  • After country selection, setup shows a paginated list of available voices for that country.
  • Voice selection supports keyboard navigation and autocomplete.
  • Pagination handles countries with large voice lists without attempting to fetch or display all voices at once.
  • The selected voice is saved in setup configuration.
  • Tests cover default selection, country validation, paginated voice selection, and saved config output.

Notes

Edge TTS API pagination is a constraint for countries with large voice lists. Keep this flow inside setup/config UX and avoid hardcoding a static global voice list if the API is the source of truth.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions