Skip to content

More robius-speech improvements (mostly to avoid losing word chunks) - #27

Merged
kevinaboos merged 4 commits into
mainfrom
speech_to_text
Sep 11, 2026
Merged

kevinaboos merged 4 commits into
mainfrom
speech_to_text

Conversation

@kevinaboos

Copy link
Copy Markdown
Member

Apple's on-device recognizer ends a segment after two seconds or so
of silence, but then restarts the best transcription without
setting "is final". But our swift bridge code didn't really
account for that, which means it got revised into one "utterance".

we now never drop any words that were already "sent" (digested?)
in the segment tracker. We "commit" each chunk of words when it's over,
and then make sure that we still allow shorter replacements
(corrections?) to take effect and replace previously committed chunks.

i tested this with a ton of different phrases and it's solid.
For example, "three hundred and forty seven" does get replaced with "347"
using the proper native revision.

Apple's on-device recognizer ends a segment after two seconds or so
of silence, but then restarts the best transcription without
setting "is final". But our swift bridge code didn't really
account for that, which means it got revised into one "utterance".

we now never drop any words that were already "sent" (digested?)
in the segment tracker. We "commit" each chunk of words when it's over,
and then make sure that we still allow shorter replacements
(corrections?) to take effect and replace previously committed chunks.

i tested this with a ton of different phrases and it's solid.
For example, "three hundred and forty seven" does get replaced with "347"
using the proper native revision.
…shown

If dictation got an empty transcript after we already drew pending words,
then we might end up replacing all of the pending words with that empty
transcript, which looks like the drafted recognition was randomly erased.

Now, across all the backends, an empty transcript doesn't change anything,
only a final commit can change what was pending.
Of course you can still replace the current "utterance" with revisions
that come from the native service.
this makes sure we don't lose any word chunks that were already shown
in the text input, even if an error happens or something else occurs
that causes a final commit to never occur.
@kevinaboos
kevinaboos merged commit 71966dc into main Sep 11, 2026
4 checks passed
@kevinaboos
kevinaboos deleted the speech_to_text branch September 11, 2026 23:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant