# OpenSpeech trains the recognizer and stops before the checkpoint

> A PyTorch-Lightning and Hydra toolkit for end-to-end speech recognition research, with 20+ model implementations and recipes for three languages. It hands you training code and no checkpoints, no decoding API, and a dependency file that resolves nothing on its own.

**openspeech-team/openspeech** — Open-Source Toolkit for End-to-End Speech Recognition leveraging PyTorch-Lightning and Hydra.

- Repository: https://github.com/openspeech-team/openspeech
- Website: https://openspeech-team.github.io/openspeech/
- Stars: 714 · Forks: 115
- Language: Python
- License: MIT
- Published: 2026-09-17 · Updated: 2026-09-17 · Language: en
- Canonical page: https://hysenlabs.com/projects/openspeech-team-openspeech

## The framework stops at the training run

The README carries a two-bullet section headed Why shouldn't I use OpenSpeech. The first bullet says the framework provides code for training ASR models but does not provide APIs by pretrained models. The second says it does not provides pre-trained models. Neither line is softened anywhere else, and nothing further down offers a checkpoint, a decoder entry point or a hosted endpoint. So the unit of work you get is a training run, not a recognizer. With 58 open issues on the tracker and a What's New list whose newest entry is openspeech 0.4.0 from May 2022, the audience this shape suits is a group that already holds a corpus, a tokenizer plan and a compute budget.

## requirements.txt is two lines that resolve nothing

At the repository root, requirements.txt contains exactly two lines. The first is a comment, the second installs the project in editable mode:

```bash
# self install
-e .
```

That is the whole file. Pointing pip at it pulls nothing from outside the project: no torch, no pytorch-lightning, no sentencepiece. Every third-party package has to sit in the environment before that line means anything, which makes the file close to useless as a bootstrap on a clean machine. The real dependency list lives in setup.py, where install_requires runs torch>=1.6.0, levenshtein, numpy, pandas, astropy, sentencepiece and pytorch-lightning, and stops there. Only torch carries a bound, and its floor is 1.6.0, so the Lightning release a run ends up with is decided by the resolver rather than by the project.

## download_url names v0.4 while the releases stop at v0.4.0

setup.py declares name openspeech-core and version 0.4.0, so the package version lines up with the newest published tag. The same call sets download_url to https://github.com/openspeech-team/openspeech/releases/tag/v0.4.zip. The recorded releases are v0.4.0, v0.3.0 and v0.2.1, so that URL drops the trailing digit and points at a v0.4 tag that none of the three is. The header above the setup() call is an MIT notice crediting Soohwan Kim, Sangchun Ha and Soyoung Cho, and the root directory carries both LICENSE and LICENSE.3rd_party_library, which keeps third-party terms in a separate file from the project's own.

## A changelog that ends in 2022 beside commits dated 2026

What's New is ordered newest first and its top line is May 2022, openspeech 0.4.0 released. Below it sit Aug 2021 Added Smart Batching, Jul 2021 openspeech 0.3.0 released, Jul 2021 transducer beam search logic, Jun 2021 ContextNet, Jun 2021 a language model training pipeline, and Jun 2021 openspeech 0.1.0. Two gaps sit in that picture. The v0.2.1 tag, published on 2021-07-18, two days before v0.3.0, never appears in the list at all. And the newest changelog line is more than three years older than the most recent commit on the default branch, dated 2026-06-21. The repository is not archived and no tag has been published since 2022-05-22, so the lag belongs to the release habit, not to the code.

## A new dataset needs two classes, one spelled without the n

Bringing a new dataset in takes two sentences from the customization list: if you want to use the new dataset, you only need to define a pl.LightingDataModule and Tokenizer classes. The datamodule name deserves a second look. The library OpenSpeech builds on is spelled PyTorch-Lightning throughout the same page, while the class is written LightingDataModule, one n short of the library it is supposed to come from. Anyone copying that identifier literally ends up searching for something the package does not export under that name. The rest of the customization story is hyperparameter work: default hparams ship with each supported model and are meant to be adjusted, and a custom model is assembled from modules already present in the tree.

## Twenty-plus architectures under an implementation disclaimer

The architecture catalogue is the centre of the project, and its opening sentence sets the warranty level: the important concepts of the model have been implemented to match, but the details of the implementation may vary. The count given is 20+ models. The first entry is DeepSpeech2 from Baidu Research, linked to the Deep Speech 2 paper and credited with 34 named authors. The second entry opens with the label RNN-Transduc and the list ends there. Feature handling sits alongside the architectures, with Spectrogram, Mel-Spectrogram, Filter-Bank and MFCC named as available and SpecAugment, Noise Injection and Audio Joining offered as augmentation.

## Three corpora of very different length

Three language recipes come with the toolkit, each named after a corpus rather than a task. English points at LibriSpeech, described as 1,000 hours and the most widely used dataset in ASR tasks. Chinese points at AISHELL-1, a 170 hour Mandarin speech corpus. Korean points at KsponSpeech, 1,000 hours of open-domain dialogue speech. The Mandarin recipe therefore runs on roughly a sixth of the audio of the other two, which matters before anyone budgets a training run. No corpus sits at the repository root, where the entries are .github/, .gitignore, .pre-commit-config.yaml, CONTRIBUTING.md, CONTRIBUTORS.md, LICENSE, LICENSE.3rd_party_library, README.md, docs/, install.sh, openspeech/, openspeech_cli/, requirements.txt, setup.cfg, setup.py and tests/.

## Links that disagree about the owner and the anchor

Documentation drift shows up in the links. The Contents list carries two entries aimed at the same anchor: Why should I use OpenSpeech? and Why shouldn't I use OpenSpeech? both target #why-should-i-use-openspeech. The banner at the top sends you to sooftware/OpenSpeech for CONTRIBUTING.md while every other link in that header uses openspeech-team/OpenSpeech. The body text drops the n from the framework name twice, writing PyTorch-Lighting where the rest of the project says PyTorch-Lightning. The contribution policy is itself split in two: small issues such as bug fixes and documentation improvement can go in directly, while major contributions and new features are expected to be discussed with the collaborators in the matching issue first.

## Conclusion

OpenSpeech makes sense for a group that intends to train an end-to-end recognizer from scratch and wants PyTorch-Lightning and Hydra conventions for the plumbing; it is the wrong tool for anyone who needs a usable checkpoint, a decoding endpoint or a recently tagged release. Before starting, read setup.py yourself rather than trusting requirements.txt, confirm which Lightning version your torch build tolerates, and treat the 20+ model count as a menu of training recipes whose implementations are stated to differ from the papers. If you need to reproduce published word error rates, budget for the training run itself, because nothing here removes that step.

## FAQ

### Does OpenSpeech ship pretrained speech recognition models?

No. Its Why shouldn't I use OpenSpeech section says twice that the framework does not provide APIs by pretrained models and does not provide pretrained models. What the project provides is training code for ASR models.

### What has to be installed before OpenSpeech training works?

The dependency list sits in setup.py, where install_requires names torch>=1.6.0, levenshtein, numpy, pandas, astropy, sentencepiece and pytorch-lightning. requirements.txt holds only -e ., so those packages have to be present in the environment beforehand.

### Which datasets do the OpenSpeech language recipes use?

English uses LibriSpeech at 1,000 hours, Chinese uses AISHELL-1 at 170 hours of Mandarin speech, and Korean uses KsponSpeech at 1,000 hours of open-domain dialogue speech.

### How do I add my own dataset to OpenSpeech?

You define a data module class and a Tokenizer class. The datamodule appears in the README as pl.LightingDataModule while the underlying library is named PyTorch-Lightning, so check the spelling against the installed package before importing it.

### Is there an OpenSpeech release newer than 0.4.0?

No tagged release after v0.4.0, published on 2022-05-22, appears in the release list, which holds v0.4.0, v0.3.0 and v0.2.1. The default branch itself was pushed on 2026-06-21, so commits are landing without new tags.

## Sources

- [License: MIT](https://github.com/openspeech-team/openspeech/blob/main/LICENSE)
- [openspeech-team/openspeech on GitHub](https://github.com/openspeech-team/openspeech)
- [Project website](https://openspeech-team.github.io/openspeech/)
- [README](https://github.com/openspeech-team/openspeech/blob/main/README.md)
- [Releases](https://github.com/openspeech-team/openspeech/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/openspeech-team-openspeech
