Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 80 additions & 0 deletions beh_audio_video_recordings/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Behavioral audio/video recordings

This dataset provides a minimal example of behavioral **audio**, **video**, **audiovideo**, and **image** recordings stored in the `beh/` directory.

It is intended to accompany the proposal to add audio/video recordings to behavioral experiments (see [bids-specification PR #2231](https://github.com/bids-standard/bids-specification/pull/2231)).

Note: media files are small placeholder files for example purposes. In a real dataset, these would be actual media files containing the recorded data.

## Dataset description

This dataset contains behavioral audio and video recordings from 2 participants performing various tasks:

### Subject 01

- **Speech task**: audio recording of participant describing a picture (WAV format) with accompanying events/annotations, plus a reference photo of the stimulus image
- **Resting state**: video recording of participant sitting comfortably (MP4 format)
- **Interview task**: combined audiovideo recording of participant being interviewed (MP4 format)

### Subject 02

- **Stroop task**: multiple simultaneous video recordings from different angles (face close-up and room view), plus a combined audiovideo recording with verbal responses, and a setup verification photo
- **Vocalization task**: two runs of audio recordings (FLAC format) with accompanying events/annotations

## Key features demonstrated

1. **Audio file formats**: WAV and FLAC
2. **Video file formats**: MP4
3. **Audiovideo format**: MP4 with combined audio and video streams
4. **Photo format**: JPG still images
5. **Multiple recording angles**: using the `recording` entity to distinguish simultaneous recordings
6. **Multiple runs**: using the `run` entity for repeated tasks
7. **Metadata**: JSON sidecar files with device information and audio/video/image technical specifications
8. **Events files**: annotations for the speech/vocalization tasks with timing information
9. **Timing alignment**: `scans.tsv` files for synchronization across recordings

## Validation

When validated with a schema that includes the PR #2231 rules, this dataset should produce no errors (warnings for recommended metadata keys may remain).

To test:

1. Clone the BIDS specification repository:

```bash
git clone https://github.com/bids-standard/bids-specification.git
cd bids-specification
```

2. Check out the branch that includes the audio/video recording proposal (until merged):

```bash
git checkout audio-video-clean
```

3. Install the BIDS Validator (if not already installed):

```bash
npm install -g bids-validator
```

4. Build the updated schema:

```bash
bst -v export --schema src/schema --output src/schema.json
```

5. Install bids-validator-deno:

```bash
pip install bids-validator-deno
```

5. Run the validator on this dataset with the updated schema:
```bash
bids-validator-deno -s file:///path/to//bids-specification/src/schema.json /path/to/bids-examples/beh_audio_video_recordings
```

## Privacy considerations

When working with real audio and video recordings of human subjects, ensure compliance with applicable privacy regulations (HIPAA, GDPR, etc.) as these files often contain personally identifiable information.
12 changes: 12 additions & 0 deletions beh_audio_video_recordings/dataset_description.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"Name": "Audio and Video Behavioral Recordings Example",
"BIDSVersion": "1.10.0",
"DatasetType": "raw",
"License": "CC0",
"Authors": ["BIDS Example Team", "BIDS Community Contributors"],
"Acknowledgements": "This is an example dataset for demonstrating audio and video recordings in BIDS",
"ReferencesAndLinks": [
"https://github.com/bids-standard/bids-specification/pull/2231"
],
"DatasetDOI": "10.0000/example.audio-video"
}
24 changes: 24 additions & 0 deletions beh_audio_video_recordings/participants.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"participant_id": {
"Description": "Unique participant identifier"
},
"age": {
"Description": "Age of the participant",
"Units": "years"
},
"sex": {
"Description": "Sex of the participant",
"Levels": {
"M": "Male",
"F": "Female"
}
},
"handedness": {
"Description": "Handedness of the participant",
"Levels": {
"left": "Left-handed",
"right": "Right-handed",
"ambidextrous": "Ambidextrous"
}
}
}
3 changes: 3 additions & 0 deletions beh_audio_video_recordings/participants.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
participant_id age sex handedness
sub-01 25 F right
sub-02 30 M left
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"Device": "GoPro HERO10 Black",
"DeviceSerialNumber": "GP10-456789",
"AudioChannelCount": 2,
"AudioSampleRate": 48000,
"AudioBitDepth": 16,
"FrameRate": 30.0,
"CameraPosition": "front",
"Height": 1080,
"Width": 1920,
"Duration": 300.0
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
placeholder audiovideo file
13 changes: 13 additions & 0 deletions beh_audio_video_recordings/sub-01/beh/sub-01_task-rest_video.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"TaskName": "RestingState",
"TaskDescription": "Participant sitting comfortably with eyes open for 10 minutes",
"Device": "Sony FDR-AX53",
"DeviceSerialNumber": "AX53-789012",
"AudioChannelCount": 2,
"AudioSampleRate": 48000,
"FrameRate": 30.0,
"CameraPosition": "front",
"Height": 1080,
"Width": 1920,
"Duration": 600.5
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
placeholder
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"TaskName": "Speech",
"TaskDescription": "Participant was asked to describe a picture for 2 minutes",
"Device": "Zoom H6 Handy Recorder",
"DeviceSerialNumber": "H6-123456",
"AudioChannelCount": 2,
"AudioSampleRate": 44100,
"AudioBitDepth": 16,
"Duration": 120.5
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
placeholder
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"TaskName": "Speech",
"TaskDescription": "Participant was asked to describe a picture for 2 minutes",
"event_type": {
"Description": "Type of event",
"Levels": {
"task": "Overall task period",
"vocalization": "Participant speaking or vocalizing",
"pause": "Pause in speech",
"cough": "Non-speech vocalization"
}
},
"description": {
"Description": "Detailed description of the event"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
onset duration event_type description
0.0 120.5 task speech description task
5.2 2.3 vocalization first utterance begins
10.5 5.6 vocalization description of main scene
18.3 3.2 pause participant pauses to think
22.0 8.1 vocalization description of characters
35.2 4.5 vocalization description of background
45.0 2.0 cough participant coughs
50.3 10.2 vocalization description of actions
65.0 5.5 vocalization emotional content description
75.8 8.9 vocalization final summary
90.0 30.5 vocalization free description continues
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"Device": "Canon EOS R5",
"DeviceSerialNumber": "EOSR5-234567",
"Height": 3000,
"Width": 4000,
"PhotoDescription": "Stimulus image shown to participant during speech task"
}
8 changes: 8 additions & 0 deletions beh_audio_video_recordings/sub-01/sub-01_scans.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"filename": {
"Description": "Path to the data file relative to the subject directory"
},
"acq_time": {
"Description": "Acquisition time of the scan in ISO 8601 format"
}
}
5 changes: 5 additions & 0 deletions beh_audio_video_recordings/sub-01/sub-01_scans.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
filename acq_time
beh/sub-01_task-speech_audio.wav 2025-12-15T10:00:00
beh/sub-01_task-speech_image.jpg 2025-12-15T10:00:00
beh/sub-01_task-rest_video.mp4 2025-12-15T10:30:00
beh/sub-01_task-interview_audiovideo.mp4 2025-12-15T11:00:00
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"TaskName": "Stroop",
"TaskDescription": "Combined audio and video recording of participant performing Stroop task with verbal responses",
"Device": "GoPro HERO10 Black",
"DeviceSerialNumber": "GP10-567890",
"AudioChannelCount": 2,
"AudioSampleRate": 48000,
"AudioBitDepth": 16,
"FrameRate": 60.0,
"CameraPosition": "front",
"Height": 2160,
"Width": 3840,
"Duration": 450.0
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
placeholder audiovideo file
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"Device": "Canon EOS R5",
"DeviceSerialNumber": "EOSR5-345678",
"Height": 3000,
"Width": 4000,
"Description": "Setup verification photo showing participant position and display arrangement"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"TaskName": "Stroop",
"TaskDescription": "Stroop color-word interference task performed while being video recorded from multiple angles",
"Device": "Logitech C920 Webcam",
"DeviceSerialNumber": "C920-456789",
"FrameRate": 30.0,
"CameraPosition": "front",
"Height": 720,
"Width": 1280,
"Duration": 300.0,
"RecordingDescription": "Close-up recording of participant's face during task"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
placeholder
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"TaskName": "Stroop",
"TaskDescription": "Stroop color-word interference task performed while being video recorded from multiple angles",
"Device": "Canon EOS R5",
"DeviceSerialNumber": "EOS-R5-123456",
"AudioChannelCount": 2,
"AudioSampleRate": 48000,
"FrameRate": 30.0,
"CameraPosition": "room-corner",
"Height": 1080,
"Width": 1920,
"Duration": 300.0,
"RecordingDescription": "Wide-angle recording of the entire room during task"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
placeholder
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
placeholder
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"TaskName": "Vocalization",
"TaskDescription": "Participant producing various vocalizations including vowels, consonants, and humming",
"Device": "Blue Yeti Microphone",
"DeviceSerialNumber": "YETI-987654",
"AudioChannelCount": 2,
"AudioSampleRate": 48000,
"AudioBitDepth": 24,
"Duration": 180.0,
"RunDescription": "First run of vocalization task"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"TaskName": "Vocalization",
"TaskDescription": "Participant producing various vocalizations including vowels, consonants, and humming",
"trial_type": {
"Description": "Type of vocalization trial",
"Levels": {
"task": "Overall task period",
"vowel": "Sustained vowel sound",
"consonant": "Repeated consonant sound",
"humming": "Humming",
"breath": "Breath/pause",
"free": "Free vocalization"
}
},
"description": {
"Description": "Human-readable description of the event"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
onset duration trial_type description
0.0 180.0 task vocalization task (run 01)
5.0 3.0 vowel "ah" vowel
12.5 2.5 vowel "ee" vowel
20.0 2.0 vowel "oo" vowel
30.0 5.0 humming humming at comfortable pitch
40.5 1.5 breath breath/pause
45.0 4.0 consonant "sh" consonant
55.0 4.0 consonant "s" consonant
65.0 3.0 consonant "f" consonant
75.0 10.0 free free vocalization
100.0 5.0 humming humming at lower pitch
120.0 2.0 breath breath/pause
130.0 8.0 free free vocalization
160.0 10.0 free final free vocalization
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
placeholder
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"TaskName": "Vocalization",
"TaskDescription": "Participant producing various vocalizations including vowels, consonants, and humming",
"Device": "Blue Yeti Microphone",
"DeviceSerialNumber": "YETI-987654",
"AudioChannelCount": 2,
"AudioSampleRate": 48000,
"AudioBitDepth": 24,
"Duration": 180.0,
"RunDescription": "Second run of vocalization task"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"TaskName": "Vocalization",
"TaskDescription": "Participant producing various vocalizations including vowels, consonants, and humming",
"trial_type": {
"Description": "Type of vocalization trial",
"Levels": {
"task": "Overall task period",
"vowel": "Sustained vowel sound",
"consonant": "Repeated consonant sound",
"humming": "Humming",
"breath": "Breath/pause",
"free": "Free vocalization"
}
},
"description": {
"Description": "Human-readable description of the event"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
onset duration trial_type description
0.0 180.0 task vocalization task (run 02)
3.0 2.5 vowel "ah" vowel
10.0 2.5 vowel "ee" vowel
17.0 2.0 vowel "oo" vowel
25.0 4.0 consonant "sh" consonant
35.0 4.0 consonant "s" consonant
45.0 6.0 humming humming at comfortable pitch
60.0 2.0 breath breath/pause
65.0 10.0 free free vocalization
90.0 5.0 humming humming at higher pitch
110.0 2.0 breath breath/pause
120.0 12.0 free free vocalization
150.0 8.0 free final free vocalization
8 changes: 8 additions & 0 deletions beh_audio_video_recordings/sub-02/sub-02_scans.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"filename": {
"Description": "Path to the data file relative to the subject directory"
},
"acq_time": {
"Description": "Acquisition time of the scan in ISO 8601 format"
}
}
Loading
Loading