This repository provides a set of ROS 2 packages to integrate whisper.cpp into ROS 2 using audio_common 4.0.7. Besides, silero-vad is used to perform VAD (Voice Activity Detection).
| ROS 2 Distro | Branch | Build status | Docker Image | Documentation |
|---|---|---|---|---|
| Humble | main |
|||
| Iron | main |
|||
| Jazzy | main |
|||
| Kilted | main |
|||
| Rolling | main |
- chatbot_ros → This chatbot, integrated into ROS 2, uses whisper_ros, to listen to people speech; and llama_ros, to generate responses. The chatbot is controlled by a state machine created with YASMIN.
To run whisper_ros with CUDA, first, you must install the CUDA Toolkit. To run SileroVAD with ONNX and CUDA, you must install the cuDNN.
cd ~/ros2_ws/src
git clone https://github.com/mgonzs13/audio_common.git
git clone https://github.com/mgonzs13/whisper_ros.git
cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --cmake-args -DGGML_CUDA=ON -DONNX_GPU=ON # To use CUDA on Whisper and on Silero, respectivelyBuild the whisper_ros docker. Additionally, you can choose to build whisper_ros with CUDA (USE_CUDA) and choose the CUDA version (CUDA_VERSION). Remember that you have to use DOCKER_BUILDKIT=0 to compile whisper_ros with CUDA when building the image.
DOCKER_BUILDKIT=0 docker build -t whisper_ros --build-arg USE_CUDA=1 --build-arg CUDA_VERSION=12-6 .Run the docker container. If you want to use CUDA, you have to install the NVIDIA Container Tollkit and add --gpus all.
docker run -it --rm --gpus all whisper_rosRun Silero for VAD and Whisper for STT:
ros2 launch whisper_bringup whisper.launch.pyAdd the parameter silero_vad_use_cuda:=True to use Silero with CUDA.
Send a goal action to listen:
ros2 action send_goal /whisper/listen whisper_msgs/action/STT "{}"Or try the example of a whisper client:
ros2 run whisper_demos whisper_demo_node