ESPnet3 Recipe Directory Layout
Less than 1 minute
ESPnet3 Recipe Directory Layout
Current recipes under egs3/ typically look like:
egs3/<recipe>/<task>/
run.py
conf/
training.yaml
inference.yaml
metrics.yaml
publication.yaml
dataset/
__init__.py
builder.py
dataset.py
src/
inference.py
tokenizer.py
data/
exp/Where to put what
| Location | You put here | Typical contents |
|---|---|---|
egs3/<recipe>/<task>/conf/ | YAML configs | training, inference, metrics, publication |
egs3/<recipe>/<task>/dataset/ | dataset module | Dataset, DatasetBuilder, recipe-local dataset exports |
egs3/<recipe>/<task>/src/ | custom Python helpers | inference helpers, tokenizer logic, recipe-local system code |
egs3/<recipe>/<task>/run.py | entry script | stage list, config loading, system selection |
Important directories
conf/: stage configsdataset/: recipe-localDatasetandDatasetBuildersrc/: extra recipe code such as output functions or tokenizer helpersdata/: prepared manifests or recipe-local artifactsexp/: checkpoints and experiment outputs
run.py
run.py loads the stage configs, applies naming propagation, instantiates the system, and runs the selected stages.
Current config flags are:
--training_config--inference_config--metrics_config--publication_config
Typical stage lists include:
create_datasetcollect_statstraininfermeasurepack_modelupload_model
Directory structure
More broadly, recipes under egs3/ follow a shared pattern:
egs3/
TEMPLATE/
<task>/
run.py
conf/
<recipe>/
<task>/
run.py
conf/
dataset/
src/
data/
exp/TEMPLATE provides the default config values and stage runner wiring, while each concrete recipe overrides only what it needs.
Creating a new recipe
- Copy
egs3/TEMPLATE/<task>intoegs3/<your_recipe>/<task>. - Add configs under
conf/. - Implement recipe-local dataset code under
dataset/when needed. - Add
src/helpers such asinference.pyor recipe-local system code only when the recipe needs them. - Run stages through
python run.py --stages ....
Notes
The main dataset story is now dataset/, not src/dataset.py as the primary integration point.
