How it uses Jev
R2T2 streams recognized words and timestamps; alignment selects mismatched words for Jev. Jev judges whether each aligned word matches the reference (Noul), classifies mismatch type (Choice), and returns a raw 0–4 Score for sentence meaning, which code converts to a 1–5 display scale. Local arithmetic calculates omissions, insertions, pace, pauses, and the weighted total.
What Jev decides
Did the reader pronounce the reference word despite this ASR substitution?
The shared state contains the reference sentence and committed ASR text. A substitution generates same_0; meaning is asked on every request.
Does the heard text preserve the reference sentence’s meaning?
The shared state contains the reference sentence and committed ASR text. A substitution generates same_0; meaning is asked on every request.
App workflow
- Stream speech recognition
Capture microphone audio and receive incremental R2T2 text with timestamps and stable prefixes.
- Align reference and transcript
Compare recognized words with the source passage and select mismatches that need semantic judgment.
- Judge textual errors
Ask Jev whether words match, classify mismatch kinds, and score whether the sentence meaning remains intact.
- Calculate and display results
Compute omissions, extra words, timing, pace, and weighted score locally, then highlight words and show the summary.
Why it is interesting
The stable-prefix streaming transcript lets the app avoid revising already submitted words and limits model questions to alignment discrepancies. The README clearly excludes acoustic pronunciation, stress, and accent scoring because Jev receives text.