Development
The test suite runs every recipe end to end on a tiny random model, so it needs no download and no GPU and finishes in about a minute. CI runs the linter, the type checker in strict mode and the tests on every pull request; the same three commands run locally.
Rules a change should follow:
- A stage must be safe to run again in a directory that holds the files of an interrupted run: reuse or replace them, never fail on them.
- Anything that decides a stage's result goes into its fingerprint; anything that only says how to run (the tracker, the budget, the output directory) stays out.
- Bump a
versionwhen the code of a method, backbone, head or converter changes what the same inputs produce; the experiments that use it rebuild, every other cache stays. - Documentation is generated from the README files and the code (this site included). Edit those, not the generated pages.
uv run pytest tests/core tests/modeling # runner, progress, validation gate, API, every recipe on a tiny random model (wakeword: a fake front end)
uv run pytest tests/data # data recipes with fake teachers, a fake Piper and a fake Whisper
uv run ruff check . && uv run mypy # what CI runs on every pull request, besides the tests
Licence: MIT. Models and datasets a config names keep their own licences.
Source: README.md. This page is generated; edit the source and run npm run sync.