Эта репозитивность предоставляет набор пакетов ROS 2 для аудио. Он предоставляет версию C ++ для сбора и воспроизведения аудиодантеров с использованием Portaudio.
$ cd ~ /ros2_ws/src
$ git clone https://github.com/mgonzs13/audio_common.git
$ cd ~ /ros2_ws
$ rosdep install --from-paths src --ignore-src -r -y
$ pip3 install -r audio_common/requirements.txt
$ colcon buildВы можете создать изображение Docker для тестирования audio_common. Используйте следующее общее внутри каталога Audio_common.
$ docker build -t audio_common .После создания изображения запустите контейнер Docker со следующей командой.
$ docker run -it --device /dev/snd audio_commonЧтобы использовать ярлык, вы можете использовать следующую команду:
$ make docker_run Узел для получения аудиодатчиков из микрофона и опубликовать их в тему audio .
Формат : указывает аудио -формат, который будет использоваться для захвата. Общие значения- paInt16 (16-битный формат) или другие форматы, поддерживаемые Portaudio. По умолчанию: paInt16
Каналы : количество аудиоканалов для захвата. Как правило, 1 для моно и 2 для стерео. По умолчанию: 1
Скорость : скорость дискретизации состоит в том, сколько выборок в секунду следует запечатлеть. По умолчанию: 16000
Чанк : размер каждой аудиокадры. По умолчанию: 4096
Устройство : идентификатор устройства аудио ввода. Значение -1 указывает на то, что аудио входное устройство по умолчанию следует использовать. По умолчанию: -1
Frame_id : идентификатор для аудио кадра. Это может быть полезно для синхронизации аудиоданных с другими потоками данных. По умолчанию: ""
audio_common_msgs/msg/AudioStamped Узел, чтобы воспроизводить аудиодатики, полученные из audio темы.
Каналы : количество аудиоканалов для захвата. Как правило, 1 для моно и 2 для стерео. По умолчанию: 1
Устройство : идентификатор устройства аудио ввода. Значение -1 указывает на то, что аудио входное устройство по умолчанию следует использовать. По умолчанию: -1
audio_common_msgs/msg/AudioStamped Узел, чтобы воспроизводить музыку из аудиофайла в формате wav .
chunk_time : время, в миллисекундах, которое длится каждый аудио -кусок. По умолчанию: 50
Frame_id : идентификатор для аудио кадра. Это может быть полезно для синхронизации аудиоданных с другими потоками данных. По умолчанию: ""
audio_common_msgs/msg/AudioStampedУзел для генерации звука из текста (TTS).
Чанк : размер каждой аудиокадры. По умолчанию: 4096
Frame_id : идентификатор для аудио кадра. Это может быть полезно для синхронизации аудиоданных с другими потоками данных. По умолчанию: ""
Audio : Tope Publisher для отправки аудиодатчиков, сгенерированных TTS. Тип: audio_common_msgs/msg/AudioStamped
Скажите : действие для генерации аудиодатчиков из текста. Тип: audio_common_msgs/action/TTS
$ ros2 run audio_common audio_capturer_node$ ros2 run audio_common audio_player_node$ ros2 run audio_common tts_node$ ros2 run audio_common audio_player_node$ ros2 action send_goal /say audio_common_msgs/action/TTS " {'text': 'Hello World'} "$ ros2 run audio_common music_node$ ros2 run audio_common audio_player_node$ ros2 service call /music_play audio_common_msgs/srv/MusicPlay " {audio: 'elevator'} "