The Inner Speech Dataset is an EEG-based open-access dataset for inner speech recognition.
This repository provides scripts to download, preprocess, explore, and analyze the dataset.
- Dataset: OpenNeuro
- Publication: Nieto et al., Scientific Data, 2022
New: Helper scripts for easy downloading:
- Raw EEG data:
Raw_data_download_tutorial.py - Preprocessed derivatives:
Derivatives_download_tutorial.py
Note: A major refactor on 29/11/2025 improved
InnerSpeech_preprocessing.py. Please report any issues if encountered.
Create an environment with all dependencies:
conda env create -f environment.yml
conda activate inner_speechUsing the provided Raw_data_download_tutorial.py, you can partially or fully download the raw .bdf data.
Note: Useful for re-running custom preprocessing
Preprocessing is implemented in Python using MNE. The main script InnerSpeech_preprocessing.py allows flexible adaptation for new processing.
Note: Adjust preprocessing variables at the top of the script.
If you prefer to use a already preprocessed data, you can partially or fully download Derivatives_download_tutorial.py.
The script allows to flexible download only parts of the data, subjects or sessions.
Note: This data was obtained after running the
InnerSpeech_preprocessing.pywith the current settings.
Notebook: Database_exploration_tutorial.ipynb
- Can also run directly in Google Colab (no installation needed).
- Includes examples for:
- Downloading raw or derivatives
- Preprocessing EEG data
- Visualizing EEG signals
- Basic machine learning analysis
Project Folder
└─ ds003626 [Data is expected to be download here]
│ └─ sub-01/
│ │ ├─ ses-01/
│ │ │ └─ eeg/
│ │ │ └─ sub-01_ses-01_task-innerspeech_eeg.bdf
│ │ ├─ ses-02/...
│ │ └─ ses-03/...
│ ├─ sub-02/
│ .....
│ └─ sub-10/
├─ derivatives/
│ └─ sub-01/
│ └─ ses-01/
│ │ ├─ sub-01_ses-01_baseline-epo.fif
│ │ ├─ sub-01_ses-01_eeg-epo.fif
│ │ ├─ sub-01_ses-01_events.dat
│ │ ├─ sub-01_ses-01_exg-epo.fif
│ │ └─ sub-01_ses-01_report.pkl
│ └─ ses-02/...
│ └─ ses-03/...Project Folder
└─ ds003626 [Data]
├─ Inner_Speech_Dataset [This GitHub repository]
│ ├─ Raw_data_download_tutorial.py
│ ├─ Derivatives_download_tutorial.py
│ ├─ Database_exploration_tutorial.ipynb
│ └─ Python_Processing
│ └─ InnerSpeech_preprocessing.py
│ └─ lib [Auxiliar functions]
├─ environment.yml
└─ README.md6. If you are curious about the collection process or want to collect your own data: Stimulation Protocol
The stimulation protocol was used for capturing the data and was developed in Matlab using Psychtoolbox.
The script Stimulation_protocol.m is the main script and uses the other auxiliary functions.
Please cite this work.
@article{nieto2022thinking,
title={Thinking out loud, an open-access EEG-based BCI dataset for inner speech recognition},
author={Nieto, Nicol{\'a}s and Peterson, Victoria and Rufiner, Hugo Leonardo and Kamienkowski, Juan Esteban and Spies, Ruben},
journal={Scientific Data},
volume={9},
number={1},
pages={1--17},
year={2022},
publisher={Nature Publishing Group}
}
@article{nieto2021inner,
title={Inner Speech},
author={Nieto, N and Peterson, V and Rufiner, HL and Kamienkowski, JE and Spies, R},
journal={OpenNeuro},
volume={29},
pages={227--236},
year={2021}
}