-
Notifications
You must be signed in to change notification settings - Fork 188
Description
I would like to create a BEP to store the audio and/or video recordings of behaving subjects.
While this would obviously be problematic for sharing human data, it would be useful to internal human data and for internal and shared data of non-human subjects.
Following the structure of the Task Events we will define types of files that can be placed in various data_type directories.
sub-<label>/[ses-<label>]
<data_type>/
<matches>_behcapture.mp3|.wav|.mp4|.mkv|.avi
<matches>_behcapture.json
This schema will follow the standard principles of BIDS, listed here for clarity:
- If no relevant <data_type> exists, use
beh/
. - Video or audio files that are continuous recordings split into files will use the
_split-
entity. - Video or audio files that are recorded simultaneously but from different angles or at different locations would use the
_recording-
entity to differentiate. We will need to modify the definition of this term to generalize it a bit to accommodate this usage. This entity would also be used to differentiate if a video and audio were recorded simultaneously but from different devices. Not that simply using the file extension to differentiate would not work because it would not be clear which file the .json maps to. - The start time of each audio or video recording should be noted in the
scans.tsv
file.
The JSON would define "streams" which would define each stream in the file.
The *_beh.json
would looks like this:
{
"device": "Field Recorder X200",
"streams": [
{
"type": "audio",
"sampling_rate": 44100.0,
"description": "High-quality stereo audio stream."
},
{
"type": "video",
"sampling_rate": 30.0,
"description": "Standard 1080p video stream."
}
]
}
To be specific, it would follow this JSON Schema structure:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"device": {
"type": "string"
},
"streams": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": ["audio", "video"]
},
"sampling_rate": {
"type": "number",
"format": "float"
},
"description": {
"type": "string"
}
},
"required": ["type", "sampling_rate"],
"additionalProperties": false
}
}
},
"required": ["device", "streams"],
"additionalProperties": false
}
This BEP would be specifically for audio and/or video, and would not include related data like eye tracking, point tracking, pose estimation, or behavioral segmentation. All of these would be considered derived and are reserved for another BEP.