Skip to content

Latest commit

 

History

History
54 lines (45 loc) · 4.02 KB

File metadata and controls

54 lines (45 loc) · 4.02 KB

Project Structure & Ecosystem

"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.

Directory Structure

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)

External Platforms

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

Testing Infrastructure

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