The Speech Model panel asks about the engine, the model size, the specialization and the language.
I know what language I speak and whether I want it faster or more accurate. I do not know whether I want Medium or Small — that depends on my GPU and my RAM, not on my preferences. I also do not know whether I want multilingual or English-only, because that is the question "do you only speak English" asked in implementation terms.
The app can already work both of those out. It detects the backend and the memory, it knows the selected language, and from that it computes a model which it prints as a recommendation (#778). It just does not use that to set the panel.
Simple mode
Language
Main language: [ Polish v ]
[ ] I also dictate whole texts in other languages
Unchecked pins the language, checked turns on auto-detect. The engine takes one language or none, a pair cannot be passed, so those are exactly the two available options.
There is deliberately no separate field for a second language. With the main language pinned, the multilingual model handles inserted foreign words — "zrób refactor tego handlera" does not require declaring English. A second language starts to matter only for whole utterances, and the checkbox covers that. Worth confirming with a short test before freezing the UI.
Priority: fastest / balanced / most accurate
Privacy: everything local / cloud allowed
Engine, size and specialization follow from those unambiguously.
Where the main language comes from
Order: keyboard layout, then system settings, then a fallback. Reasoning in #777. The detected value should be shown on first run and easy to correct, not applied silently.
Advanced mode
Today's four controls unchanged, plus a note on what simple mode would have picked, and a way back to automatic.
Two things to account for
With English selected, the .en variant weighs the same and recognises better, so the derivation should pick it. That is #776.
The Large size has no English-only variant, only multilingual ones. "English only + highest accuracy" is therefore not satisfiable, and simple mode has to say so, otherwise the language choice gets silently ignored. Similar to #681 and #692.
Storing the configuration
Simple mode should store what the user chose — languages, priority, privacy — and compute the model at startup. Advanced mode is an explicit pin that overrides the derivation.
Right now the configuration keeps five parallel records of the model choice, and that is where the divergences in #681 and #692 come from.
Question
What should the fallback be when neither the keyboard layout nor the system settings point at a supported language — English, or auto-detect?
The Speech Model panel asks about the engine, the model size, the specialization and the language.
I know what language I speak and whether I want it faster or more accurate. I do not know whether I want Medium or Small — that depends on my GPU and my RAM, not on my preferences. I also do not know whether I want multilingual or English-only, because that is the question "do you only speak English" asked in implementation terms.
The app can already work both of those out. It detects the backend and the memory, it knows the selected language, and from that it computes a model which it prints as a recommendation (#778). It just does not use that to set the panel.
Simple mode
Language
Unchecked pins the language, checked turns on auto-detect. The engine takes one language or none, a pair cannot be passed, so those are exactly the two available options.
There is deliberately no separate field for a second language. With the main language pinned, the multilingual model handles inserted foreign words — "zrób refactor tego handlera" does not require declaring English. A second language starts to matter only for whole utterances, and the checkbox covers that. Worth confirming with a short test before freezing the UI.
Priority: fastest / balanced / most accurate
Privacy: everything local / cloud allowed
Engine, size and specialization follow from those unambiguously.
Where the main language comes from
Order: keyboard layout, then system settings, then a fallback. Reasoning in #777. The detected value should be shown on first run and easy to correct, not applied silently.
Advanced mode
Today's four controls unchanged, plus a note on what simple mode would have picked, and a way back to automatic.
Two things to account for
With English selected, the
.envariant weighs the same and recognises better, so the derivation should pick it. That is #776.The Large size has no English-only variant, only multilingual ones. "English only + highest accuracy" is therefore not satisfiable, and simple mode has to say so, otherwise the language choice gets silently ignored. Similar to #681 and #692.
Storing the configuration
Simple mode should store what the user chose — languages, priority, privacy — and compute the model at startup. Advanced mode is an explicit pin that overrides the derivation.
Right now the configuration keeps five parallel records of the model choice, and that is where the divergences in #681 and #692 come from.
Question
What should the fallback be when neither the keyboard layout nor the system settings point at a supported language — English, or auto-detect?