X2-NativeCursor: Native-Token Text Progress Tracking for Incremental-Text Streaming Codec TTS

Zehan Liu, Carl Chen, Rime Wen, Kaiqi Fu, Altman Lin +5 more
9/9/2026
cs.CL

Official code: X-Square-Robot/X2Streaming-TTS (26 stars, MIT, last commit 2026-09-08).

Abstract

Incremental-text streaming text-to-speech (TTS) needs online text progress tracking for synchronized highlighting, interruption handling, and dialogue-history updates. Input text arrives before it is spoken, so text arrival alone cannot indicate speech progress. Existing waveform-based alignment requires complete audio or adds acoustic processing during streaming. We propose X2-NativeCursor, a lightweight observer that tracks progress from native speech tokens before waveform decoding without changing the TTS generator. Its normalization plan links spoken labels to their original-text spans. Text and native-token encoders feed a local matcher that estimates the current label position. A separate output rule converts revisable position estimates into a cursor that never moves backward. Mean absolute error against an automatic reference is 0.151 Chinese characters with 80-ms lookahead, versus 1.253 characters with 320-ms lookahead for an online waveform baseline. Alignment real-time factor also decreases from 0.3598 to 0.0180 relative to this baseline. Lower tracking error is retained under a second automatic alignment reference. We evaluate X2-NativeCursor on Qwen3-TTS and validate its adaptation to CosyVoice2 by training a separate observer for each backbone. Code is publicly available at https://github.com/X-Square-Robot/X2Streaming-TTS.

View on arXivView PDF

Code Implementations(1)

MIT
263PythonAug 12, 20261 months agoMIT

Similar Papers

Cite this paper

@article{liu2026xnativecursor,
  title  = {X2-NativeCursor: Native-Token Text Progress Tracking for Incremental-Text Streaming Codec TTS},
  author = {Zehan Liu and Carl Chen and Rime Wen and Kaiqi Fu and Altman Lin and Shawn Qin and Lights Shi and Roy Gan and Hao Wang and Qian Wang},
  year   = {2026},
  eprint = {2609.09677},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2609.09677v1}
}

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.09677.svg)](https://codeofpaper.com/paper/2609.09677)

Discussion