Respeaker
Summary
The ReSpeaker Mic Array v2.0 is an upgraded version of the original ReSpeaker Mic Array, designed to enhance voice interaction capabilities. It features four high-performance digital microphones arranged in an array, enabling effective far-field voice capture.
This year, we integrated this device to improve the quality of audio and obtain better inferences when perfroming STT. In addition, other features such as Noise Suppression and Direction of Arrival (DoA) detection extend greately the robot's capabilities.
In addition, the ReSpeaker Mic Array has LED ring support, which can be used to provide visual feedback to users. We use this feature to indicate the robot's status (speaking, listening).
Nodes
AudioCapturer.py
- Purpose: This node captures audio from the ReSpeaker hardware.
- Usage:
- Publishes to:
rawAudioChunk
- Description: This node captures audio from the ReSpeaker hardware and publishes it to the
audio
topic. - relevance: the node accepts a boolean parameter
respeaker
to enable or disable the ReSpeaker hardware. If set to true, the node will expect 6 audio channels when openning the stream and extract the 6th channel, which contains the merged playback.
ReSpeaker.py
- Purpose: This node interfaces with the ReSpeaker hardware.
- Usage:
- Publishes to:
DOA
- Subscribes to:
ReSpeaker/light
- Description: This node interfaces with the ReSpeaker hardware to get the direction of arrival (DOA) of sound and control the LED ring.
Setup
The ReSpeaker.py
file needs some permitions to interact with the ReSpeaker hardware (lights). To do so, you need to add the following udev rule:
echo "SUBSYSTEM=="usb", ATTRS{idVendor}=="2886", MODE="0666"" | sudo tee -a /etc/udev/rules.d/99-usbftdi.rules
After adding the rule, you need to reload the udev rules: