Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Add warm-ups for RTFX calculation in streaming ASR pipelines#15313

Merged
naymaraq merged 3 commits into
mainfrom
dkarmyan/warmups_for_rtfx
Jan 24, 2026
Merged

Add warm-ups for RTFX calculation in streaming ASR pipelines#15313
naymaraq merged 3 commits into
mainfrom
dkarmyan/warmups_for_rtfx

Conversation

@naymaraq
Copy link
Copy Markdown
Collaborator

@naymaraq naymaraq commented Jan 23, 2026

Important

The Update branch button must only be pressed in very rare occassions.
An outdated branch is never blocking the merge of a PR.
Please reach out to the automation team before pressing that button.

What does this PR do ?

  • Keep the original file path order
  • Perform warm-ups before the RTFX calculation
  • Small refactoring

Collection: [ASR]

Impact of Warmup

Dataset - LS-Other
GPU - NVIDIA RTX 5000
Batch Size - 256

Pipeline Setup Model Warmup RTFX WER
buffered-rnnt 1.6-4.8-1.6 parakeet-rnnt-1.1b false 633.32 3.22%
buffered-rnnt 1.6-4.8-1.6 parakeet-rnnt-1.1b true 729.5 3.22%
cache-aware-rnnt 1.12 nemotron-speech-streaming-en-0.6b false 623.76 5.01%
cache-aware-rnnt 1.12 nemotron-speech-streaming-en-0.6b true 657.35 5.01%

Changelog

  • Add specific line by line info of high level changes in this PR.

Usage

  • You can potentially add a usage example below
# Add a code snippet demonstrating how to use this 

GitHub Actions CI

The Jenkins CI system has been replaced by GitHub Actions self-hosted runners.

The GitHub Actions CI will run automatically when the "Run CICD" label is added to the PR.
To re-run CI remove and add the label again.
To run CI on an untrusted fork, a NeMo user with write access must first click "Approve and run".

Before your PR is "Ready for review"

Pre checks:

  • Make sure you read and followed Contributor guidelines
  • Did you write any new necessary tests?
  • Did you add or update any necessary documentation?
  • Does the PR affect components that are optional to install? (Ex: Numba, Pynini, Apex etc)
    • Reviewer: Does the PR have correct import guards for all optional libraries?

PR Type:

  • New Feature
  • Bugfix
  • Documentation

If you haven't finished some of the above items you can still open "Draft" PR.

Who can review?

Anyone in the community is free to review the PR once the checks have passed.
Contributor guidelines contains specific people who can review PRs to various areas.

Additional Information

  • Related to # (issue)

@github-actions github-actions Bot added the ASR label Jan 23, 2026
@naymaraq naymaraq changed the title keep filepath order, add warmups for rtfx calculation Add warm-ups for RTFX calculation in streaming ASR pipelines Jan 23, 2026
@naymaraq naymaraq requested review from artbataev and Copilot January 23, 2026 19:01
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request enhances the streaming ASR inference pipeline by adding warm-up runs before RTFx (Real-Time Factor) calculations and preserving the original file path order in output. The changes improve the reliability of performance measurements by allowing the system to stabilize before taking measurements.

Changes:

  • Renamed get_audio_filepaths() to prepare_audio_data() with extended return values including ASR request options and filepath ordering
  • Added warmup and run step loop to perform multiple inference runs and average the timing measurements
  • Added filepath order preservation to maintain original input ordering in outputs

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
nemo/collections/asr/inference/utils/manifest_io.py Renamed function to prepare_audio_data(), added options extraction from manifest and filepath order tracking
examples/asr/asr_streaming_inference/asr_streaming_infer.py Implemented warmup/run loop for RTFx measurements, integrated with new prepare_audio_data function
examples/asr/conf/asr_streaming_inference/cache_aware_rnnt.yaml Added warmup_steps and run_steps configuration parameters
examples/asr/conf/asr_streaming_inference/cache_aware_ctc.yaml Added warmup_steps and run_steps configuration parameters
examples/asr/conf/asr_streaming_inference/buffered_rnnt.yaml Added warmup_steps and run_steps configuration parameters
examples/asr/conf/asr_streaming_inference/buffered_ctc.yaml Added warmup_steps and run_steps configuration parameters

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread examples/asr/asr_streaming_inference/asr_streaming_infer.py
Comment thread examples/asr/asr_streaming_inference/asr_streaming_infer.py Outdated
Comment thread examples/asr/asr_streaming_inference/asr_streaming_infer.py
Comment thread examples/asr/conf/asr_streaming_inference/cache_aware_rnnt.yaml
Comment on lines +44 to +46
def prepare_audio_data(
audio_file: str, sort_by_duration: bool = True
) -> tuple[list[str], list[dict] | None, list[ASRRequestOptions] | None, dict[str, int]]:
Copy link

Copilot AI Jan 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The function get_audio_filepaths has been renamed to prepare_audio_data, but the file tests/functional_tests/asr_transcribe_boost_ground_truth.py (line 20 and line 52) still imports and uses the old function name. This will cause an ImportError. Either the old function should be kept as an alias for backward compatibility, or all usages should be updated.

Copilot uses AI. Check for mistakes.
Comment thread nemo/collections/asr/inference/utils/manifest_io.py Outdated
Comment thread nemo/collections/asr/inference/utils/manifest_io.py
Comment thread nemo/collections/asr/inference/utils/manifest_io.py Outdated
naymaraq added 2 commits January 23, 2026 23:45
Signed-off-by: naymaraq <[email protected]>
Signed-off-by: naymaraq <[email protected]>
@github-actions
Copy link
Copy Markdown
Contributor

[🤖]: Hi @naymaraq 👋,

We wanted to let you know that a CICD pipeline for this PR just finished successfully.

So it might be time to merge this PR or get some approvals.

//cc @chtruong814 @ko3n1g @pablo-garay @thomasdhc

Copy link
Copy Markdown
Collaborator

@artbataev artbataev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@naymaraq naymaraq merged commit 0d713e5 into main Jan 24, 2026
257 checks passed
@naymaraq naymaraq deleted the dkarmyan/warmups_for_rtfx branch January 24, 2026 12:45
nune-tadevosyan pushed a commit to nune-tadevosyan/NeMo that referenced this pull request Mar 13, 2026
…NeMo#15313)

* keep filepath order, add warmups for rtfx calculation

Signed-off-by: naymaraq <[email protected]>

* fix typos, minor fixes

Signed-off-by: naymaraq <[email protected]>

* fix broken tests

Signed-off-by: naymaraq <[email protected]>

---------

Signed-off-by: naymaraq <[email protected]>
Co-authored-by: naymaraq <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants