Skip to content

feat: add configurable streaming latency for Parakeet and Nemotron models#1666

Open
nub235 wants to merge 1 commit into
cjpais:mainfrom
nub235:streaming-latency
Open

feat: add configurable streaming latency for Parakeet and Nemotron models#1666
nub235 wants to merge 1 commit into
cjpais:mainfrom
nub235:streaming-latency

Conversation

@nub235

@nub235 nub235 commented Jul 12, 2026

Copy link
Copy Markdown

Before Submitting This PR

Please confirm you have done the following:

If this is a feature or change that was previously closed/rejected:

  • I have explained in the description below why this should be reconsidered
  • I have gathered community feedback (link to discussion below)

Human Written Description

Currently, the app only lets you use Parakeet Unified and Nemotron models on the highest latency setting, 1120 ms for Nemotron and 2080 ms for Parakeet. I added a slider in each model's settings card so users can choose between four latency options for each model to get their preferred balance of speed and accuracy. I did not expose specific latency in milliseconds in the interface, in order to keep it simple and intuitive. For Nemotron models, it sets the right context value, and for Parakeet Unified, it sets a tuple of left, chunk, and right values, depending on the position of the slider.

Community Feedback

There is a discussion at #1654

Testing

I thoroughly tested each of the four latency options for each of the three models, including on long dictations.

In my testing, I found Parakeet Unified can lag behind on very low latency, so I set the minimum latency for this model to 320 ms. On weak hardware running on CPU only, 320 ms may also lag behind after a while, so I warned about that in the Streaming Latency tooltip.

The only other issue I found is that for Nemotron Speech Streaming EN, on the second latency setting (160 ms), after around a minute, it sometimes drops sentences, I was not able to figure out why this happens. It's not a super big deal, but I thought it was worth mentioning.

Screenshots/Videos (if applicable)

Screenshot 2026-07-12 at 1 34 28 PM

AI Assistance

  • No AI was used in this PR
  • AI was used (please describe below)

If AI was used:

  • Tools used: OpenCode
  • How extensively: I basically just used it to write the code, everything else was done by me.

@nub235

nub235 commented Jul 12, 2026

Copy link
Copy Markdown
Author

I tested Parakeet Unified with CPU only, and the first two latency settings still cause it to lag behind, so those only really work on a machine that has good GPU, like a Mac, or high end Windows laptop. Nemotron models still work fine, even at the lowest latency setting, since they use cache aware streaming and therefore do not have to recompute left context every time. It defaults to highest latency setting for these models, so it will not harm the out of the box experience. But it is worth noting, especially if users don't read the tooltip and then think the app is broken when they use lower latency.

…dels

Add a speed-to-accuracy slider in Model Settings for streaming-capable
models. Auto-detects model type at runtime and selects the correct
stream extension:

- Nemotron 3.5/Speech (cache-aware): att_context_right ∈ {0, 3/1, 6, 13}
- Parakeet Unified (buffered): (left_ms, chunk_ms, right_ms) tuples
  at {320, 480, 1120, 2080}ms lookahead

Includes reset button on the Slider component.
@nub235
nub235 force-pushed the streaming-latency branch from c15e752 to be9f358 Compare July 15, 2026 23:53
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