Diese Repository bietet einen Satz von ROS 2 -Paketen für Audio. Es bietet eine C ++ - Version, um Audiodaten mithilfe von Portaudio zu erfassen und abzuspielen.
$ 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 buildSie können ein Docker -Image erstellen, um Audio_Common zu testen. Verwenden Sie das folgende gemeinsame Verzeichnis von audio_common.
$ docker build -t audio_common .Führen Sie nach dem Erstellen des Bildes einen Docker -Container mit dem folgenden Befehl aus.
$ docker run -it --device /dev/snd audio_commonUm eine Verknüpfung zu verwenden, können Sie den folgenden Befehl verwenden:
$ make docker_run Knoten, um Audiodaten aus einem Mikrofon zu erhalten und sie in das audio -Thema zu veröffentlichen.
Format : Gibt das Audio -Format an, das für die Erfassung verwendet werden soll. Gemeinsame Werte sind paInt16 (16-Bit-Format) oder andere von Portaudio unterstützte Formate. Standard: paInt16
Kanäle : Die Anzahl der zu erfassenden Audiokanäle. Typischerweise 1 für Mono und 2 für Stereo. Standard: 1
Rate : Die Stichprobenrate ist, wie viele Proben pro Sekunde erfasst werden sollten. Standard: 16000
Chunk : Die Größe jedes Audiorahmens. Standardeinstellung: 4096
Gerät : Die ID des Audio -Eingangsgeräts. Ein Wert von -1 zeigt an, dass das Standard -Audio -Eingangsgerät verwendet werden sollte. Standard: -1
Frame_ID : Eine Kennung für den Audio -Rahmen. Dies kann nützlich sein, um Audiodaten mit anderen Datenströmen zu synchronisieren. Standard: ""
audio_common_msgs/msg/AudioStamped Knoten zum Abspielen der Audiodaten, die aus dem audio -Thema erhalten wurden.
Kanäle : Die Anzahl der zu erfassenden Audiokanäle. Typischerweise 1 für Mono und 2 für Stereo. Standard: 1
Gerät : Die ID des Audio -Eingangsgeräts. Ein Wert von -1 zeigt an, dass das Standard -Audio -Eingangsgerät verwendet werden sollte. Standard: -1
audio_common_msgs/msg/AudioStamped Knoten, um die Musik aus einer Audio -Datei im wav -Format abzuspielen.
Chunk_time : Zeit, in Millisekunden, die jeden Audio -Chunk dauern. Standard: 50
Frame_ID : Eine Kennung für den Audio -Rahmen. Dies kann nützlich sein, um Audiodaten mit anderen Datenströmen zu synchronisieren. Standard: ""
audio_common_msgs/msg/AudioStampedKnoten, um Audio aus einem Text (TTS) zu generieren.
Chunk : Die Größe jedes Audiorahmens. Standardeinstellung: 4096
Frame_ID : Eine Kennung für den Audio -Rahmen. Dies kann nützlich sein, um Audiodaten mit anderen Datenströmen zu synchronisieren. Standard: ""
Audio : Thema Publisher zum Senden der vom TTS generierten Audiodaten. Typ: audio_common_msgs/msg/AudioStamped
Sagen Sie : Aktion zum Generieren von Audiodaten aus einem Text. Typ: 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'} "