Este repositiory proporciona un conjunto de paquetes ROS 2 para audio. Proporciona una versión C ++ para capturar y reproducir datos de audio utilizando 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 buildPuede crear una imagen Docker para probar audio_common. Use el siguiente común dentro del directorio de audio_common.
$ docker build -t audio_common .Después de crear la imagen, ejecute un contenedor Docker con el siguiente comando.
$ docker run -it --device /dev/snd audio_commonPara usar un atajo, puede usar el siguiente comando:
$ make docker_run Nodo para obtener datos de audio de un micrófono y publicarlos en el tema audio .
Formato : especifica el formato de audio que se utilizará para capturar. Los valores comunes son paInt16 (formato de 16 bits) u otros formatos compatibles con Portaudio. Valor predeterminado: paInt16
Canales : el número de canales de audio para capturar. Típicamente, 1 para mono y 2 para estéreo. Valor predeterminado: 1
Tasa : La frecuencia de muestreo es cuántas muestras por segundo deben capturarse. Valor predeterminado: 16000
Fragmento : el tamaño de cada marcos de audio. Valor predeterminado: 4096
Dispositivo : la ID del dispositivo de entrada de audio. Un valor de -1 indica que se debe usar el dispositivo de entrada de audio predeterminado. Valor predeterminado: -1
Frame_id : un identificador para el marco de audio. Esto puede ser útil para sincronizar los datos de audio con otros flujos de datos. Por defecto: ""
audio_common_msgs/msg/AudioStamped Nodo para reproducir los datos de audio obtenidos del tema audio .
Canales : el número de canales de audio para capturar. Típicamente, 1 para mono y 2 para estéreo. Valor predeterminado: 1
Dispositivo : la ID del dispositivo de entrada de audio. Un valor de -1 indica que se debe usar el dispositivo de entrada de audio predeterminado. Valor predeterminado: -1
audio_common_msgs/msg/AudioStamped Nodo para reproducir la música desde un archivo de audio en formato wav .
Chunk_time : Tiempo, en milisegundos, que duran cada fragmento de audio. Valor predeterminado: 50
Frame_id : un identificador para el marco de audio. Esto puede ser útil para sincronizar los datos de audio con otros flujos de datos. Por defecto: ""
audio_common_msgs/msg/AudioStampedNodo para generar audio a partir de un texto (TTS).
Fragmento : el tamaño de cada marcos de audio. Valor predeterminado: 4096
Frame_id : un identificador para el marco de audio. Esto puede ser útil para sincronizar los datos de audio con otros flujos de datos. Por defecto: ""
Audio : editor de temas para enviar los datos de audio generados por el TTS. Tipo: audio_common_msgs/msg/AudioStamped
Diga : Acción para generar datos de audio a partir de un texto. Tipo: 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'} "