# Glossary of Terms

This glossary provides definitions for key terms and components used in Nkululeko.

## Core Components

1. **Experiment**: Central class orchestrating data loading, feature extraction, and model training (nkululeko/experiment.py)

2. **Dataset**: Base class for loading and managing audio datasets from different sources (nkululeko/data/dataset.py)

3. **Dataset_CSV**: Class handling CSV-based datasets with audio paths and labels (nkululeko/data/dataset_csv.py)

4. **FeatureExtractor**: Orchestrates feature extraction using different extraction methods (nkululeko/feature_extractor.py)

5. **Featureset**: Abstract base class for all feature extraction implementations (nkululeko/feat_extract/featureset.py)

## Feature Extraction Methods

6. **Opensmileset**: Extracts features using OpenSMILE toolkit (nkululeko/feat_extract/feats_opensmile.py)

7. **Wav2vec2**: Extracts embeddings using Facebook's wav2vec2 model (nkululeko/feat_extract/feats_wav2vec2.py)

8. **PraatSet**: Extracts acoustic features using Praat speech analysis software (nkululeko/feat_extract/feats_praat.py)

9. **TRILLset**: Extracts TRILL (Google's Transfer Representation for IL) embeddings (nkululeko/feat_extract/feats_trill.py)

10. **AudmodelSet**: Extracts embeddings from a wav2vec2-based emotion model (nkululeko/feat_extract/feats_audmodel.py)

## Experiment Management

11. **Runmanager**: Manages multiple runs of an experiment, collecting and comparing results (nkululeko/runmanager.py)

12. **Modelrunner**: Manages training and evaluation for a single run with multiple epochs (nkululeko/modelrunner.py)

## Models

13. **Model**: Base class for all machine learning models (nkululeko/models/model.py)

14. **TunedModel**: Fine-tunes pre-trained transformer models like Wav2Vec2 (nkululeko/models/model_tuned.py)

15. **MLPModel**: Multilayer perceptron model for classification tasks (nkululeko/models/model_mlp.py)

16. **SVM_model**: Support Vector Machine model implementation (nkululeko/models/model_svm.py)

17. **XGB_model**: XGBoost model implementation (nkululeko/models/model_xgb.py)

18. **GMM_model**: Gaussian Mixture Model implementation (nkululeko/models/model_gmm.py)

## Reporting and Analysis

19. **Reporter**: Generates evaluation metrics, plots, and reports for experiments (nkululeko/reporting/reporter.py)
   - Supports multiple metrics: UAR (Unweighted Average Recall), EER (Equal Error Rate), MSE, MAE, CCC
   - See [EER Implementation](../EER_IMPLEMENTATION.md) for details on the Equal Error Rate metric

20. **ensemble_predictions**: Function combining predictions from multiple models (nkululeko/ensemble.py)

## Audio Processing

21. **Silero_segmenter**: Segments audio using Silero Voice Activity Detection (nkululeko/segmenting/seg_silero.py)

22. **Resampler**: Handles audio resampling to a specified sample rate (nkululeko/augmenting/resampler.py)

## Prediction and Demonstration

23. **TestPredictor**: Handles prediction and result storage for test datasets (nkululeko/test_predictor.py)

24. **FeatureAnalyser**: Analyzes feature importance using SHAP and other methods (nkululeko/feat_extract/feats_analyser.py)
