Repositorior ini menyediakan satu set paket ROS 2 untuk audio. Ini menyediakan versi C ++ untuk menangkap dan memutar data audio menggunakan 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 buildAnda dapat membuat gambar Docker untuk menguji audio_common. Gunakan hal -hal umum berikut di dalam direktori audio_common.
$ docker build -t audio_common .Setelah gambar dibuat, jalankan wadah Docker dengan perintah berikut.
$ docker run -it --device /dev/snd audio_commonUntuk menggunakan jalan pintas, Anda dapat menggunakan perintah berikut:
$ make docker_run Node untuk mendapatkan data audio dari mikrofon dan menerbitkannya ke topik audio .
Format : Menentukan format audio yang akan digunakan untuk menangkap. Nilai umum adalah paInt16 (format 16-bit) atau format lain yang didukung oleh PortAudio. Default: paInt16
Saluran : Jumlah saluran audio yang akan ditangkap. Biasanya, 1 untuk mono dan 2 untuk stereo. Default: 1
Tingkat : Tingkat sampel yang adalah berapa banyak sampel per detik yang harus ditangkap. Default: 16000
Chunk : Ukuran setiap bingkai audio. Default: 4096
Perangkat : ID perangkat input audio. Nilai -1 menunjukkan bahwa perangkat input audio default harus digunakan. Default: -1
frame_id : Pengidentifikasi untuk bingkai audio. Ini dapat berguna untuk menyinkronkan data audio dengan aliran data lainnya. Bawaan: ""
audio_common_msgs/msg/AudioStamped Node untuk memutar data audio yang diperoleh dari topik audio .
Saluran : Jumlah saluran audio yang akan ditangkap. Biasanya, 1 untuk mono dan 2 untuk stereo. Default: 1
Perangkat : ID perangkat input audio. Nilai -1 menunjukkan bahwa perangkat input audio default harus digunakan. Default: -1
audio_common_msgs/msg/AudioStamped Node untuk memutar musik dari file audio dalam format wav .
chunk_time : Waktu, dalam milidetik, yang bertahan setiap chunk audio. Default: 50
frame_id : Pengidentifikasi untuk bingkai audio. Ini dapat berguna untuk menyinkronkan data audio dengan aliran data lainnya. Bawaan: ""
audio_common_msgs/msg/AudioStampedNode untuk menghasilkan audio dari teks (TTS).
Chunk : Ukuran setiap bingkai audio. Default: 4096
frame_id : Pengidentifikasi untuk bingkai audio. Ini dapat berguna untuk menyinkronkan data audio dengan aliran data lainnya. Bawaan: ""
Audio : Penerbit Topik untuk mengirim data audio yang dihasilkan oleh TTS. Jenis: audio_common_msgs/msg/AudioStamped
Katakanlah : Tindakan untuk menghasilkan data audio dari teks. Jenis: 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'} "