Prioritize external transcription endpoint over browser Web Speech API

Previously the on-device Web Speech API (Chrome/Edge/Safari) was always
preferred, and the configured external transcription endpoint was only
used as a fallback when the browser had no speech API at all (Firefox).

Flip the priority in Composer.tsx: if a transcription endpoint is
configured in Settings, use it for dictation regardless of browser
support, since it's generally far more accurate. Fall back to the
browser's on-device SpeechRecognition only when no endpoint is set.

Update the Settings hint text and README to describe the new behavior.
Rebuilt and redeployed to the repo root.
This commit is contained in:
oliver committed 2026-11-04 14:30:51 -03:00
1 parent c7b653ff6a
commit ea1aeed1da
6 files changed
+29 -21

No files matched your search

+5 -2
View File
@@ -176,8 +176,11 @@ git push # or however the server pulls the repo
## Notes & limitations
- **Voice is client-side.** The API server has no `/transcribe` or `/tts`
endpoint, so dictation uses the browser's `SpeechRecognition` and replies use
`speechSynthesis`. Support varies by browser (best on Chrome/Edge/Safari).
endpoint. If a transcription endpoint is configured in Settings (any
OpenAI-compatible `/v1/audio/transcriptions` server), it's used for
dictation; otherwise dictation falls back to the browser's on-device
`SpeechRecognition`. Spoken replies always use `speechSynthesis`. Support
varies by browser (best on Chrome/Edge/Safari).
- **Profiles.** The API server routes profiles via a `/p/<profile>/…` prefix, and
each profile has its own `API_SERVER_KEY`. Add one connection per profile to
see them all; the sidebar switches between connections.