| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| ESPnet version 202609 source code.tar.gz | 2026-09-02 | 21.1 MB | |
| ESPnet version 202609 source code.zip | 2026-09-02 | 25.6 MB | |
| README.md | 2026-09-02 | 8.8 kB | |
| Totals: 3 Items | 46.7 MB | 0 | |
Summary
Overview
ESPnet3 reaches a working end-to-end recipe: egs3/librispeech_100 trains, decodes
and scores an E-Branchformer from run.py alone and reproduces the ESPnet2 result.
The CI was rebuilt around a prebuilt container image, halving compute per run and
cutting the longest job from 75 to 32 minutes, with nine configuration invariants
now enforced rather than assumed. OpenBEATs lands as encoder, pretraining and an
AudioSet-2M recipe, and ten new recipes arrive across five task types. This release
requires Python 3.12 or 3.13.
Requirements — read before upgrading
| 202604 | 202609 | |
|---|---|---|
| Python | >=3.10 |
>=3.12,<3.14 |
| PyTorch | 2.9.1 | 2.9.1, 2.10.0, 2.11.0 |
Python 3.10 and 3.11 are no longer supported. A date-based version number gives
no hint of this, so: pip install espnet on 3.10 or 3.11 will resolve to 202604 or
earlier. 3.12 is the new floor because 3.10 reaches end of life in October 2026.
PyTorch tops out at 2.11.0 because torchaudio has no 2.12 or 2.13 release and
ESPnet installs the two as a matched pair.
Important PRs
🎯 ESPnet3 runs a complete recipe
- PR [#6418]: Added the LibriSpeech-100h recipe —
egs3/librispeech_100. Trains, decodes and scores fromrun.py, configured with OmegaConf / Hydra rather than shell stages, and reaches parity with the ESPnet2 result (pretrained model). - PR [#6416]: Config file names become the default experiment and inference directory names.
- PR [#6342] & [#6338]: Added the demo and publication stages.
- PR [#6517]: Added
BaseIteratorwith DDP epoch-end synchronisation for dataloaders. - PR [#6494]: Added the TER metric.
- PR [#6514]: General component for TTS recipes (f5-tts groundwork).
- PR [#6509], [#6487], [#6469], [#6443], [#6350]: Fixes to
AverageCheckpointsCallback, the preprocessor, the publication stage, parallel processing, and the data organizer / dataloader. - PR [#6392] & [#6434]: Integration tests for the ASR and demo stages.
- PR [#6513]: Fixed
data_aug_effectsnesting in thelibrispeech_100E-Branchformer config.
🚀 CI rebuilt on a prebuilt image
Measured against a run from before this work: total compute per run 2414 → 1226 min, longest single job 75 → 32 min.
- PR [#6563], [#6573], [#6575], [#6576], [#6577]: The environment moved into a prebuilt
image published per python × pytorch variant, replacing ~8 min of setup in each
of ~100 jobs.
resolve_ci_imageprobes the registry and falls back to building the environment when the image for a hash is not published, so a PR that changes the image inputs degrades to slow-but-correct rather than failing. - PR [#6579] & [#6588]: Split the two longest jobs. The
asrintegration task (61 min) became three, and theasrconfiguration task (64 min) became three round-robin shards, chosen from the measured per-item distribution. - PR [#6589]: A newer master run now cancels the superseded one, instead of every merge leaving a full run alive.
- PR [#6583], [#6585], [#6596]: Every workflow declares least-privilege
permissions. The repository default turned out to be write on almost everything, on jobs that check out and run pull request code. - PR [#6591] & [#6593]: Every third-party action is pinned to a commit SHA, and
CODECOV_TOKEN— a secret since 2024 — is actually used. - PR [#6586]: Removed
actions/checkout@masterfrom nine workflows. That branch was abandoned in July 2020, so those jobs had been checking out with v2-era code. - PR [#6595]: Python 3.12 / 3.13, and deleted
tools/setup.py, which duplicatedpyproject.toml, could not execute, and had been attracting Dependabot PRs. - PR [#6597]: k2 is installed again. The pin dated from November 2021 and its
guard refused any newer PyTorch, so the installer had been skipping silently for
four years and the
use_k2integration tests had never run once. - PR [#6582], [#6584], [#6578], [#6590], [#6601]: Five infrastructure flakes fixed at the
cause — apt repository 403s, a chocolatey install reporting success after
installing nothing,
torch.hub's anonymous GitHub API limit, Hugging Face 429s during tests, and TLS handshake failures fetching the kaldi binary. - PR [#6565], [#6568]:
kaldiiois an optional extra, because its licence does not permit redistribution, and the image build fails if it is ever baked in.
🔊 OpenBEATs
- PR [#6436]: BEATs encoder and tokenizer modules.
- PR [#6437]: BEATs pretraining.
- PR [#6498]: AudioSet-2M pretraining recipe —
egs2/audioset/ssl1.
📚 New recipes
Ten new recipes across five task templates.
- PR [#6491]:
heroico/asr1— Spanish ASR. - PR [#6476]:
kn_openslr126/asr1— IISc-MILE Kannada ASR. - PR [#6461]:
ta_openslr127/asr1— IISc-MILE Tamil ASR. - PR [#6274]:
marathi_lrec2020— Marathi ASR, from the ESPnet bootcamp. - PR [#6452]:
magicdata_ramc/asr1— MagicData-RAMC conversational Mandarin ASR. - PR [#6539]:
thorsten/tts1— Thorsten-Voice German single-speaker TTS. - PR [#6488]:
dailytalk/tts1— multi-speaker VITS. - PR [#6524]:
meld/cls1— speech emotion recognition. - PR [#6457]:
multimed_st/s2t1— MultiMed-ST with OWSM v4 small fine-tuning. - PR [#6449]: Refined ML-SUPERB2 MMS CTC recipes (existing corpus).
🔒 Behaviour changes worth knowing about
- PR [#6526] & [#6541]:
safe_torch_loadno longer falls back to unsafe loading automatically; it must be opted into explicitly, and the BEATs checkpoint paths no longer carry an implicit fallback. - PR [#6413]:
trust_remote_codeis no longer hardcoded toTrue; it is configurable and defaults toFalse.
🗣️ SpeechLM
Landing in pieces; not yet recipe-complete.
- PR [#6421]: Updated modeling files.
- PR [#6423]: Trainer and utilities.
- PR [#6422]: Parallel strategies.
- PR [#6420]: Multimodal IO and dataloader modules.
🐛 Bug fixes and stability
- PR [#6548]: Fixed broken CommonVoice downloads across covost2, cvss, commonvoice, open_li52, open_li110 and owsm_v3.
- PR [#6571]:
utterance_mvnwas including zero padding in its variance. - PR [#6567]:
DownSample.forwardpassed a stray argument, raisingTypeErroron every call. - PR [#6427]:
espnet2reported version0.0.0afterpip install. - PR [#6424]: Replaced deprecated
torch.cuda.ampwithtorch.ampacrossespnet2. - PR [#6362]: Fixed division by zero in CTC builtin2 when every sample had a NaN gradient.
- PR [#6490]:
CategoryIterFactorywas built with an unmappedfoldedbatch_type. - PR [#6587]: Fixed trs-mode data preparation in
puebla_nahuatlandyoloxochitl_mixtec—TextRefinewas missingtext_format. - PR [#6492]: Silenced log spam from the text-length warning in
CommonPreprocessor. - PR [#6445]: Fixed
ModuleNotFoundErrorfor the optionalresampyinformat_wav_scp.py. - PR [#6528], [#6527], [#6542]:
MiniOmniE2EModel— ignoreddeviceargument, gapped and truncated audio output, generation settings not configurable. - PR [#6535], [#6534], [#6536], [#6538]:
espnet2/sds—sds1/setup.shcopiedlocal/from theslu1template, an unhelpful error whenHF_TOKENwas unset, GPU-only tests reported as passed rather than skipped, and ansdsextra so the module can be installed. - PR [#6555]:
dialog_evalbuilds its scoring models once instead of per utterance. - PR [#6363]: Raise
NotImplementedErrorrather than returning silently, and avoid mutable default arguments.
Contributors
30 contributors, across 134 merged pull requests and 1183 commits since
v.202604.
sw005320, Masao-Someki, amirlankalm, Fhrozen, jctian98, Anai-Guo, jaeyeonkim99, Aniket-Tathe, Mr-Neutr0n, NewGamezzz, Nithish-Sri-Ram, ColebyPearson, G-Thor, HartmannPsi, Kayvan-Zahiri, KuangDW, Pranjulcr7, RishabSA, RuiRuihigh, Shankar-Bharadwaj, Shunsuke32, Ting-Justin-Jiang, deekshaNVIDIA, itoten, nagohachi, vaibhav8a, yushuosun, and the copilot-swe-agent, dependabot and pre-commit-ci bots.
Full changelog:
v.202604...v.202609