repositiory นี้มีชุดแพ็คเกจ 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คุณสามารถสร้างอิมเมจนักเทียบท่าเพื่อทดสอบ 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
อุปกรณ์ : ID ของอุปกรณ์อินพุตเสียง ค่า -1 บ่งชี้ว่าควรใช้อุปกรณ์อินพุตเสียงเริ่มต้น ค่าเริ่มต้น: -1
Frame_id : ตัวระบุสำหรับเฟรมเสียง สิ่งนี้มีประโยชน์สำหรับการซิงโครไนซ์ข้อมูลเสียงกับสตรีมข้อมูลอื่น ๆ ค่าเริ่มต้น: ""
audio_common_msgs/msg/AudioStamped โหนดเพื่อเล่นข้อมูลเสียงที่ได้จากหัวข้อ audio
ช่อง : จำนวนช่องสัญญาณเสียงที่จะจับภาพ โดยทั่วไป 1 สำหรับโมโนและ 2 สำหรับสเตอริโอ ค่าเริ่มต้น: 1
อุปกรณ์ : ID ของอุปกรณ์อินพุตเสียง ค่า -1 บ่งชี้ว่าควรใช้อุปกรณ์อินพุตเสียงเริ่มต้น ค่าเริ่มต้น: -1
audio_common_msgs/msg/AudioStamped โหนดเพื่อเล่นเพลงจากไฟล์เสียงในรูปแบบ wav
chunk_time : เวลาเป็นมิลลิวินาทีที่มีเสียงแต่ละอัน ค่าเริ่มต้น: 50
Frame_id : ตัวระบุสำหรับเฟรมเสียง สิ่งนี้มีประโยชน์สำหรับการซิงโครไนซ์ข้อมูลเสียงกับสตรีมข้อมูลอื่น ๆ ค่าเริ่มต้น: ""
audio_common_msgs/msg/AudioStampedโหนดเพื่อสร้างเสียงจากข้อความ (TTS)
ก้อน : ขนาดของแต่ละเฟรมเสียง ค่าเริ่มต้น: 4096
Frame_id : ตัวระบุสำหรับเฟรมเสียง สิ่งนี้มีประโยชน์สำหรับการซิงโครไนซ์ข้อมูลเสียงกับสตรีมข้อมูลอื่น ๆ ค่าเริ่มต้น: ""
เสียง : ผู้เผยแพร่หัวข้อเพื่อส่งข้อมูลเสียงที่สร้างโดย 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'} "