../_images/tiagopro-icon.png ../_images/tiago-head-icon.png ../_images/tiago-icon.png ../_images/ari-icon.png

Microphone array and audio recording#

Microphone hardware specifications#

TIAGo Pro, TIAGo Pro Head and ARI have a ReSpeaker Mic Array V2.0 consisting of 4 microphones, positioned in the head (TIAGo Pro) or in the torso, just below the touch-screen (ARI).

../_images/respeaker.png

On robots equipped with a reSpeaker microphone, the microphone is connected via USB to the main PC. The PC then outputs audio through the robot’s two speakers, located at each lateral side of the torso (ARI) or under the cheeks (TIAGo Pro).

reSpeaker Mic array v2.0 main specifications#

Dimensions

70mm x70mm x13.3mm

Weight

G.W 70g

Sensitivity

-26 dBFS (Omnidirectional)

Acoustic overload point

120 dBSPL

SNR

61 dB

Power Supply

5V DC from Micro USB or expansion header

Power consumption

5V, 180mA with led on and 170mA with led off

Max Sample Rate

16Khz

Display

12 programmable RGB LED indicators

Note

By default, the microphone LEDs are configured to turn blue when the microphone hears something. In addition, a light blue LED indicates the current sound source direction.

The parameter enable_leds can be set to False in the respeaker_ros launch file to disable this behaviour.

The ReSpeaker microphone also implements several audio processing directly on the hardware:

  • far-field Voice Activity Detection (up to 5m away);

  • Direction of Arrival (DoA) estimation;

  • Beamforming (BF) to focus on sound coming from a specific source;

  • noise suppression;

  • de-reverberation;

  • acoustic echo cancellation, enabling the robot to ignore its own voice.

ROS API#

The main ROS topic for audio, available on all robots, is /audio_in/raw. The raw audio frames are published on this topic.

Advanced API for the reSpeaker microphone#

PAL relies on an heavily modified version of the open-source respeaker_ros driver.

It exposes the following topics:

Recording audio with ROS#

To directly record an audio topic to a wav file, run:

ros2 launch audio_play play.launch.py audio_topic:=/audio_in/raw format:=wave dst:=my_audio.wav

Audio can also be recorded as a rosbag, for later processing or replay:

ros2 bag record -o audio_sample.bag /audio_in/raw

See also#