The Sound Source Localization for Robots (SSLR) Dataset is a collection of real robot audio recordings for the development and evaluation of sound source localization methods. Its features are:
If you use the data for your reasearch or publication, please cite the following paper (bib file, fulltext):
He, Weipeng, Petr Motlicek, and Jean-Marc Odobez. “Deep Neural Networks for Multiple Speaker Detection and Localization.” In 2018 IEEE International Conference on Robotics and Automation (ICRA), 2018.
We used the microphones on Pepper [2] for the recordings. There are four microphones on the top of the robot head, all of them are directional (cardioid, look direction front). The microphone array geometry is specified in the file misc/array_geo, where each row indicates the 3D coordinate of a microphone.
In the dataset for both mircophone and source locations, we use then in the mircophone array frame. It's origin is the microphone array center. The unit is meter. The X, Y and Z axes indicate front, left and up, respectively.
The loudspeaker recordings include 25 hours of re-recorded AMI corpus [3]. The clean speech from the AMI corpus were played from loudspeakers and recorded by Pepper. Source locations were fixed during each segment. There were up to two simultaneous sources.
The following directories include the data:
├── lsp_train_106
├── lsp_train_301
├── lsp_test_106
├── lsp_test_libraryThe directory names indicate they are used for training or test, and the room where the data were recorded. The rooms are:
106: | a large conference room |
|---|---|
301: | a small conference room |
library: | a small room with shelves |
In each of the directory, there are three sub-directories:
├── lsp_<*>
│ ├── audio
│ ├── gt_file
│ └── gt_frameThe audio directory include the audio wav files, with the file names "RECORD_ID.wav".
The gt_file directory include the file-level ground truth labels, with the file names "RECORD_ID.gt.pkl". Each ground truth file is a Python tuple stored by pickle. The tuple consists of:
The gt_frame directory include the frame-level ground truth labels, with the file names "RECORD_ID.wWIN_SIZEoHOP_SIZE.gtf.pkl". The WIN_SIZE is the number of samples in a frame, and HOP_SIZE is the number of samples between consecutive frames. We only provide the frame-level ground truth with WIN_SIZE = 8192 and HOP_SIZE = 4096. You can generate ground truth with other specifications using the provided tools.
The files are also stored by Python pickle. Each file consist of list of tuples, and each tuple consists of:
The human talker recordings includes around 4 minutes recording of human subjects speaking to Pepper in controlled HRI scenarios. The data are in:
├── human
│ ├── audio
│ ├── audio_gt
│ ├── gt_frame
│ └── video_gtThe audio and gt_frame directories are the same as the loudspeaker recordings.
The audio_gt directory includes the voice activity ground truth. The files "RECORD_ID.txt", are manually labeled and exported from Audacity [4].
In each row, it stores the start timestamp, end timestamp, and speaker of a voice segment. The timestamp is the time with respect to the original ROS bag file, not the wav file in the audio directory. The segments with speaker id "start" and "end" indicate the timestamp of the first and last sample in the wav file, respectively.
The video_gt directory includes the video data and source location ground truth. Each recordings has a sub-directory with RECORD_ID, containing the following files:
r%06d.png: | the original images recorded by the Pepper's front camera. The number indicates camera frame ID. |
|---|---|
p%06d.png: | the images overlaid with the nose positions of the tracked persons. We used the convolutional pose machine (CPM) [5] for the detection of faces and color-based tracker [6] for the tracking. The nose positions are used as the ground truth source locations of talkers. |
g%06d.pkl: | the ground truth positions, a map from tracked person ID to the 3D location of the sound source. |
stamps: | the timestamp of each frame. |
id2name: | the mapping from the tracked person ID to speaker ID (used in the audio annotations). |
NOTE
Although we included the camera images of all recordings, only some of the subjects agreed to allow their recorded data being used as illustration in scientific publications or displayed during public presentation. The recordings that are allowed for display are: s2_15, s2_16, s2_18, s3_23, s3_24, s3_25, s3_26, s3_29, s3_30.
The noise recordings are the fan noise recordings of Pepper in a quite office. The file are in the noise directory.
We included scripts to generate frame-level ground truth with different frame specifications. The scripts are:
scripts/
├── gen_human_gt_frame.py
└── gen_lsp_gt_frame.pyYou can check the usage by running the scripts with option '-h'.
https://doc.aldebaran.com/2-5/family/pepper_technical/microphone_pep.html |
https://manual.audacityteam.org/man/importing_and_exporting_labels.html |
Cao, Zhe, Tomas Simon, Shih-En Wei, and Yaser Sheikh. “Realtime Multi-Person 2D Pose Estimation Using Part Affinity Fields.” ArXiv:1611.08050 [Cs], November 23, 2016. https://arxiv.org/abs/1611.08050. |
Khalidov, Vasil, and Jean-Marc Odobez. “Real-Time Multiple Head Tracking Using Texture and Colour Cues.” Idiap, 2017. |