Updates to Voice list in settings: removing duplicates, other languages#189
Open
e28eta wants to merge 3 commits into
Open
Updates to Voice list in settings: removing duplicates, other languages#189e28eta wants to merge 3 commits into
e28eta wants to merge 3 commits into
Conversation
* Some voices match the current language *and* region - show all of them * Some voices match the current language, but are from a different region. Add them if we don't already have that voice. For example, in english, there might be voices with accents from Australia or India. The user might want to use one of those. * Some voices are provided for multiple languages & regions. I don't think it's worth exposing that complexity in the UI. * Some voices have the same name, but differing quality levels. Shows each quality level available for each voice. * Don't show voices that don't match the current language. Looks like this app doesn't have any localization done (yet?). So this is driven off the system language & region. I think that is the best choice, but there might be room to improve! Especially if we knew the LLM was using a different language.
As a new user, "Default" looked like it was the default voice choice, and that was super confusing because > 95% of my installed voices had that text. Take a cue from Apple, and only show the quality if it is Enhanced or Premium.
…xplicit choice A better default than the first voice is the voice currently chosen in System Settings. As soon as the user chooses & saves a different voice, the app will stick with that one. Unless that voice is uninstalled. Then the in-app Settings display picker gets out of order (showing nothing selected and logging an error). However, the SpeechSynthesizer class will correctly use whatever the currently selected system voice is.
eulicesl
pushed a commit
to eulicesl/enchanted
that referenced
this pull request
Nov 27, 2025
- PR gluonfield#131: Make macOS input field scrollable when text exceeds max height - Wrap TextField in ScrollView with height tracking - Cap scrollable area at 130 points (similar to iMessage behavior) - Add ViewHeightKey preference key for dynamic height updates - PR gluonfield#189: Improve voice list in settings - Filter voices to current system language - Remove duplicate voice entries - Only show quality indicator for Enhanced/Premium voices - Use system default voice unless user explicitly overrides - PR gluonfield#186: Add iOS 18 dark mode icon support - Add dark and tinted icon variants to Contents.json - Add .gitignore with .DS_Store entry - Add placeholder icon files (replace with actual dark/tinted designs)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This might be a partial fix for #149. There are other ideas in that issue that I haven't looked at.
This PR does the following:
After:
Before (truncated Picker list, it's 3-4x longer):
Side note:
in order to build & test, I had to do something with
swift-markdown-ui. I didn't see #154 / #155 , but made a similar change locally.