uttrflow / uttrflow/uttrflow-swift
Skipping the on-device model's tidy for longer dictations would halve the wait, but needs real recordings to judge
- Dominant language
- Swift
- Stars
- 4
- Forks
- 17
- Avg merge
- 3h 32m
- Merged PRs (30d)
- 277
Description
## What happens
For a longer dictation, most of the one-shot wait is the tidy by Apple's on-device model, after recognition. On 120 synthetic English clips, the tidied result was identical to the rules-only result on 117 of them (`Docs/performance.md`, "Measured and not taken", around line 1288), so skipping the model past some length would roughly halve the wait.
It was not taken, because synthetic speech has none of the pauses, fillers, restarts and slips of real speech, which are exactly what the model is there to clean. Equal results on synthetic clips are not evidence about real dictation.
## Why it matters
A halved wait on long dictations is one of the largest latency wins available. Getting it wrong would make long dictations noticeably messier for everyone.
## What is needed
- A corpus of real recorded dictations of varying length, recorded with consent and containing no personal content (`uttrflow-eval record-corpus` exists for this), including natural fillers and self-corrections.
- A comparison of rules-only and model-tidied output against reference text, by length.
## Acceptance criteria
- Results by dictation length are recorded in `Docs/performance.md`.
- A decision is written down: a length threshold (or none), and what "identical enough" means.
- If adopted, the threshold is a named constant with tests on both sides of it.
`help wanted` for recordings; `needs-info` for the threshold decision.
Contributor guide
Research direction
Start with the measured results around line 1288 of Docs/performance.md and review the uttrflow-eval record-corpus workflow. Collect consented, non-personal real dictations of varying lengths, compare rules-only and model-tidied output against reference text, and record results by length. Document the threshold decision and definition of “identical enough”; if adopted, add tests on both sides of the named threshold constant.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- macos, swift
- Domain
- accessibility, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100