Instructions to use owaski/moss-tts-realtime-delta-zh-125k with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use owaski/moss-tts-realtime-delta-zh-125k with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-to-speech", model="owaski/moss-tts-realtime-delta-zh-125k", trust_remote_code=True)# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("owaski/moss-tts-realtime-delta-zh-125k", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
MOSS-TTS-Realtime, finetuned for delta-by-delta Chinese speech
The speech half of a cascaded simultaneous speech-to-speech system. A simultaneous translation model emits short Chinese text deltas, one per input chunk; this model speaks each delta as it arrives, continuing the same utterance rather than starting a new one.
Internal run id: moss_sft_train_xl125k_zh_origin_10231704 (checkpoint-epoch-0).
Why it is finetuned at all
Stock MOSS-TTS-Realtime is asked here to do something it was not trained for: speak a two-to-six-character fragment, then another, then another, and have the result sound like one sentence. Finetuning on a corpus cut the same way the server feeds it โ one turn per emission step, cut from a single synthesized passage โ is what closes that gap. Against the stock model at the same condition it is worth roughly 13 s of LongYAAL (20596 โ 7153 ms CA at 1920 ms chunks).
Measured results
ACL 60/60 dev, enโzh, 1.0ร speed, chunk 1920 ms, paired with
owaski/infinisst-thinker-phrase-zh.
Generation job 10279835.
| metric | CU | CA |
|---|---|---|
| BLEU | 40.64 | |
| XCOMET-XL | 0.723 | |
| LongYAAL (ms) โ | 4207 | 6114 |
| Ending offset (ms) โ | 4018 | 5942 |
The BLEU is a property of the pair, not of this model alone โ the TTS is scored by transcribing what it says. What this checkpoint moves is latency and intelligibility of short deltas: 6.0% of โค4-character deltas come out near-silent, against 18.6% for a variant trained on a phrase-gated corpus.
Training
- Base:
OpenMOSS-Team/MOSS-TTS-Realtime; codecOpenMOSS-Team/MOSS-Audio-Tokenizer - Data: 125k-row enโzh TTS target corpus built from GigaSpeech โ each row one utterance synthesized as a whole, then cut at word-alignment boundaries into per-delta turns
- Recipe: 1 epoch, bf16, lr 1e-5, linear schedule with 3% warmup, global batch 16 (1 ร 4 GPUs ร 4 accumulation), 7,733 optimizer steps, weight decay 0.1, grad clip 1.0, seed 42
- Full arguments in
finetune_args.jsonin this repo.
Use
Served behind a small HTTP shim and driven one delta at a time, with the codec context carried
across turns (--codec-context conversation) โ resetting the codec stream per turn is audible
as voice drift. The speaker prompt is a fixed zero-shot reference clip; keep it fixed across
runs you intend to compare, since the prompt changes synthesized duration and therefore every
latency number.
mossttsrealtime/ ships the modeling code this checkpoint was trained and served with,
including a locally modified modeling_mossttsrealtime_local.py.
Caveats
- Chinese output only, driven by English-source deltas.
- Trained on word-aligned turn boundaries. It is the right pairing for a word-aligned or phrase-gated thinker, but a TTS corpus that is itself phrase-gated performs worse โ see the thinker card.
- One dev split at one chunk size; other chunk sizes are different operating points.
- Downloads last month
- 24
Model tree for owaski/moss-tts-realtime-delta-zh-125k
Base model
OpenMOSS-Team/MOSS-TTS-Realtime