Model reference · open weights

tedlium2_streaming_transformer

Available as managed deployment NEW · this week Audio espnet Speech→text 1 variants 21 dl/mo

tedlium2_streaming_transformer is an open-weight audio or speech model from espnet. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.

Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.

What it is

Released byespnet
TypeAudio & music
TaskSpeech→text
Runs withespnet
Released2026-09-20
Popularity21 downloads / month
LicenceOpen weights

About

What tedlium2_streaming_transformer is

ESPnet2 streaming ASR model

espnet/tedlium2_streaming_transformer

A streaming Transformer: it decodes while the audio is still arriving, a block at a time, rather than waiting for the end of the utterance. Trained on TED-LIUM 2 with the egs2/tedlium2/asr1 recipe and conf/train_asr_streaming_transformer.yaml, with a BPE-500 language model beside it.

Trained and originally published by Keqi Deng, as D-Keqi/espnet_asr_train_asr_streaming_transformer_raw_en_bpe500_sp_valid.acc.ave. This copy is here so that the demo notebooks and the documentation point at a model the organization keeps alive; the weights are the same ones.

Read the full model card

Usage

import soundfile as sf
from espnet2.bin.asr_inference_streaming import Speech2TextStreaming

s2t = Speech2TextStreaming.from_pretrained(
    "espnet/tedlium2_streaming_transformer",
    device="cpu",
    beam_size=20,
    ctc_weight=0.5,
    penalty=0.0,
    nbest=1,
    disable_repetition_detection=True,
)

speech, rate = sf.read("audio.wav", dtype="float32")  # 16 kHz, one channel

# 640 samples is 40 ms: the hypothesis comes back after each slice, and grows
chunk = 640
slices = len(speech) // chunk
for i in range(slices):
    results = s2t(speech=speech[i * chunk : (i + 1) * chunk], is_final=False)
    if results:
        print(results[0][0])

results = s2t(speech=speech[slices * chunk :], is_final=True)
print(results[0][0])

There is a notebook that runs this end to end: Demos/asr_streaming_demo.ipynb.

For non-streaming recognition, OWSM-CTC is far more accurate and covers 150+ languages.

Results

TED-LIUM 2, decoded with the language model in this repository.

datasetWERCER
dev11.45.4
test10.85.3

The full tables are in exp/asr_train_asr_streaming_transformer_raw_en_bpe500_sp/RESULTS.md.

Trained with espnet 0.9.8 and pytorch 1.5.1, in November 2021, and loaded by current ESPnet through the meta.yaml in this repository.

Citing ESPnet

@inproceedings{watanabe2018espnet,
  author={Shinji Watanabe and Takaaki Hori and Shigeki Karita and Tomoki Hayashi and Jiro Nishitoba and Yuya Unno and Nelson {Enrique Yalta Soplin} and Jahn Heymann and Matthew Wiesner and Nanxin Chen and Adithya Renduchintala and Tsubasa Ochiai},
  title={{ESPnet}: End-to-End Speech Processing Toolkit},
  year={2018},
  booktitle={Proceedings of Interspeech},
  pages={2207--2211},
  doi={10.21437/Interspeech.2018-1456},
  url={http://dx.doi.org/10.21437/Interspeech.2018-1456}
}

From the published model card. Full card on the HuggingFace links in the sidebar.

How it works

How audio & music work

Audio or textinputAudio modelrecognise / synthesiseText or audiooutputSpeech-to-text turns audio into text; text-to-speech and music models turn text into audio.

Using it via the API

Call it like any OpenAI endpoint

Once AxForge deploys tedlium2-streaming-transformer for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (tedlium2-streaming-transformer below is illustrative; you get the exact model name on deployment.)

$ curl -sS https://api.axforge.ai/v1/audio/transcriptions \
  -H "Authorization: Bearer $AXFORGE_API_KEY" \
  -F model="tedlium2-streaming-transformer" -F file=@audio.mp3

Create an account — your API key is available in the console. 3M free tokens every 30 days with every new account.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms