Metadata-Version: 2.4
Name: maestro-loader
Version: 0.1.2
Summary: Loader for the maestro-eeg-dataset (multimodal EEG/gaze/IMU/audio/video AAD dataset on HuggingFace).
Author: Ali Alavi, N. Hasan, D. Williamson
License: Apache-2.0
Project-URL: Homepage, https://huggingface.co/datasets/aspire-osu/maestro-eeg-dataset
Project-URL: Repository, https://github.com/sAliAlavi/maestro-loader
Keywords: eeg,auditory-attention-decoding,aad,multimodal,huggingface,tobii,gaze
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: numpy>=1.24
Requires-Dist: pandas>=2.0
Requires-Dist: pyarrow>=14
Requires-Dist: soundfile>=0.12
Requires-Dist: huggingface_hub>=0.23
Requires-Dist: scipy>=1.10
Provides-Extra: torch
Requires-Dist: torch>=2.0; extra == "torch"
Provides-Extra: mne
Requires-Dist: mne>=1.6; extra == "mne"
Provides-Extra: all
Requires-Dist: torch>=2.0; extra == "all"
Requires-Dist: mne>=1.6; extra == "all"

# maestro-loader

Loader for the [`aspire-osu/maestro-eeg-dataset`](https://huggingface.co/datasets/aspire-osu/maestro-eeg-dataset) — a multimodal auditory-attention-decoding (AAD) dataset with EEG, gaze, IMU, audio, and Tobii Glasses 3 scene video.

## Install

```bash
pip install maestro-loader            # core
pip install maestro-loader[torch]     # + PyTorch return format
pip install maestro-loader[mne]       # + MNE-based bad-channel interpolation
pip install maestro-loader[all]
```

## Quick start

```python
from maestro_loader import load_aad

ds = load_aad(
    subjects=[1, 2, 3],
    trials="main",
    modalities=["eeg", "gaze", "audio"],
    segment_length=2.0,        # seconds
    overlap=0.5,
    normalize="zscore",
    bad_channels="interpolate",
    return_format="torch",
)

for sample in ds:
    eeg = sample["eeg"]                 # (T, 32) torch.Tensor
    gaze = sample["gaze"]               # (T, 21)
    audio = sample["audio"]             # dict[speaker_id → (T_audio,) waveform]
    label = sample["attended_speaker"]  # int in {1..4}
```

See the dataset README on Hugging Face for the full data schema.
