"SpeechBrain" refers to both the software and recipes here on GitHub, and to a wider ecosystem spanning various platforms (PyPI, readthedocs, HuggingFace, DropBox).
This document hopes to untangle the general structure of the project and its ecosystem, for contributors and regular users.
This is not quite a complete list, but it gives a broad outline.
| Directory | Contents |
|---|---|
| Core (API doc) | |
speechbrain/ |
Source code for the core |
speechbrain/inference/ |
Easy-to-use inference code with HuggingFace integration |
speechbrain/utils/ |
Miscellaneous utilities that don't really fit elsewhere |
| Documentation | |
docs/ |
Documentation pages and configuration |
docs/tutorials/ |
Jupyter Notebook tutorials |
| Recipes | |
recipes/ |
Ready-to-use recipes under the form dataset/task/model/ |
templates/ |
Reference implementation for tasks to (optionally) use for new recipes |
| Testing/linting/meta | |
.github/ |
GitHub issue/PR templates and Actions workflows for testing |
tests/ |
Automated tests, some run under CI, some manually |
tools/ |
One-off complete scripts and tools for specific tasks |
.pre-commit-config.yaml |
Linter configuration (style check, formatting) |
| URL | Contents |
|---|---|
| https://github.com/speechbrain/speechbrain | Official SpeechBrain repository |
| https://speechbrain.github.io/ | Landing page (deployed from here) |
| https://github.com/speechbrain/benchmarks | Standardized benchmarks based on SpeechBrain |
| https://github.com/speechbrain/HyperPyYAML | Official HyperPyYAML repository |
| https://speechbrain.readthedocs.io | Documentation and tutorials (deployed from docs/) |
| https://huggingface.co/speechbrain | Pre-trained models ready for inference |
| DropBox links in repository | Data, training logs and checkpoints |
| Scope | Description |
|---|---|
| CI-automated | Tests that are verified continuously through Actions |
| Linting | Enforcing good practice, formatting, etc., see .pre-commit-config.yaml |
| Consistency | Enforcing rules on YAMLs, presence of tests, among others |
| Doctests | Testing simple usecases at class/function level, and providing examples |
| Unit tests | Tests for specific components. Deeper testing than doctests |
| Integration tests | Testing for regressions at a larger scale (e.g. mini-recipes) |
| Semi-manual | Tests that are manually run by you or the Core Team at a varying frequency |
| URL checks | Checking for dead links in documentation, code and tutorials |
| Recipe tests | Test model training for all recipe .csv on sample data |
| HuggingFace checks | Check if known models on HF seem to execute fine |