X2Streaming-ASR: wait when uncertain, emit when ready for streaming ASR

Zhiwei Lin, Kaiqi Fu, Rime Wen, Zehan Liu, Shawn Qin +3 more
9/8/2026
cs.SDcs.AI

No confident code implementation found for this paper.

Abstract

Streaming automatic speech recognition (ASR) for real-time voice agents and full-duplex dialogue must provide accurate partial transcripts with low commit latency. Existing systems commonly use a fixed chunk size, look-ahead, or target delay, or encourage emissions near estimated acoustic boundaries. These approaches do not directly optimize how much additional context to use at each output position under a single-pass, hard-commit constraint. We propose X2Streaming-ASR, which decomposes streaming recognition into when to commit and what to commit. Its three-stage training procedure first establishes streaming recognition ability, then warm-starts the commit policy with automatically probed trajectories, and finally refines the policy using character-level, segment-assigned group-relative rewards for recognition accuracy and latency. Across AISHELL-1/2/3 and WenetSpeech, X2Streaming-ASR achieves a mean character-level commit latency of 27-84 ms relative to forced-aligned character endpoints, compared with 409-585 ms for the evaluated streaming baselines. It achieves the best streaming CER among the evaluated systems on AISHELL-1 and AISHELL-3 with substantially lower latency.

View on arXivView PDF

Code Implementations

No confident code match yet

We couldn't find an author-owned or strongly-evidenced community implementation for this paper. Any repos shown below are weak matches — verify before relying on them.

No code implementations found yet.

Know of an implementation? Let us know in the comments below!

Similar Papers

Cite this paper

@article{lin2026xstreamingasr,
  title  = {X2Streaming-ASR: wait when uncertain, emit when ready for streaming ASR},
  author = {Zhiwei Lin and Kaiqi Fu and Rime Wen and Zehan Liu and Shawn Qin and Roy Gan and Hao Wang and Qian Wang},
  year   = {2026},
  eprint = {2609.08672},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2609.08672v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2609.08672.svg)](https://codeofpaper.com/paper/2609.08672)

Discussion