Este repositório fornece um conjunto de pacotes ROS 2 para áudio. Ele fornece uma versão C ++ para capturar e reproduzir dados de áudio usando o 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 buildVocê pode criar uma imagem do Docker para testar Audio_Common. Use o seguinte comum dentro do diretório de Audio_Common.
$ docker build -t audio_common .Depois que a imagem for criada, execute um contêiner do Docker com o seguinte comando.
$ docker run -it --device /dev/snd audio_commonPara usar um atalho, você pode usar o seguinte comando:
$ make docker_run Nó para obter dados de áudio de um microfone e publicá -los no tópico audio .
Formato : Especifica o formato de áudio a ser usado para capturar. Os valores comuns são paInt16 (formato de 16 bits) ou outros formatos suportados por Portaudio. Padrão: paInt16
Canais : o número de canais de áudio para capturar. Normalmente, 1 para mono e 2 para estéreo. Padrão: 1
Taxa : A taxa de amostragem é quantas amostras por segundo devem ser capturadas. Padrão: 16000
Chunk : o tamanho de cada quadros de áudio. Padrão: 4096
Dispositivo : o ID do dispositivo de entrada de áudio. Um valor de -1 indica que o dispositivo de entrada de áudio padrão deve ser usado. Padrão: -1
frame_id : um identificador para o quadro de áudio. Isso pode ser útil para sincronizar dados de áudio com outros fluxos de dados. Padrão: ""
audio_common_msgs/msg/AudioStamped Nó para reproduzir os dados de áudio obtidos no tópico audio .
Canais : o número de canais de áudio para capturar. Normalmente, 1 para mono e 2 para estéreo. Padrão: 1
Dispositivo : o ID do dispositivo de entrada de áudio. Um valor de -1 indica que o dispositivo de entrada de áudio padrão deve ser usado. Padrão: -1
audio_common_msgs/msg/AudioStamped Nó para tocar a música de um arquivo de áudio no formato wav .
Chunk_time : tempo, em milissegundos, que duram cada pedaço de áudio. Padrão: 50
frame_id : um identificador para o quadro de áudio. Isso pode ser útil para sincronizar dados de áudio com outros fluxos de dados. Padrão: ""
audio_common_msgs/msg/AudioStampedNó para gerar áudio a partir de um texto (TTS).
Chunk : o tamanho de cada quadros de áudio. Padrão: 4096
frame_id : um identificador para o quadro de áudio. Isso pode ser útil para sincronizar dados de áudio com outros fluxos de dados. Padrão: ""
Áudio : editor de tópicos para enviar os dados de áudio gerados pelo TTS. Tipo: audio_common_msgs/msg/AudioStamped
Digamos : Ação para gerar dados de áudio a partir de um 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'} "