VAD 节点
功能说明
VAD(Voice Activity Detection,语音活动检测)节点用于从连续的音频流中检测人声语音片段,输出人声概率以及是否存在人声的判定结果。 该节点可作为语音唤醒(Wake Word)、ASR 前端的辅助模块,用于减少无效音频数据处理,提高系统效率。
核心功能:
- 订阅音频数据(
jobot_interfaces/msg/AudioFrame
) - 利用 Silero VAD 模型(ONNX) 进行实时推理
- 发布语音活动检测结果(
jobot_interfaces/msg/VADResult
)
软硬件环境
- 操作系统:Bianbu ROS
- 硬件推荐:SpacemiT MUSE Pi Pro(内置 NPU 加速,适合边缘推理场景)
- 依赖库:
- ROS 2 Humble 或更高版本
- SpacemiT ONNX Runtime(CPU/NPU 推理)
- PortAudio / ALSA(用于音频输入)
常用测试工具(开发/调试阶段)
rqt_graph
:可视化 ROS 节点和话题连接关系ros2 topic echo
:查看消息内容ros2 topic hz
:检查话题发布频率
依赖安装检查
sudo apt install -y ros-humble-ros-base python3-pyaudio python3-spacemit-ort libfftw3-dev
需要订阅的话题
- 音频输入:
- 默认订阅话题名称:
/audio/raw
- 消息类型:
jobot_interfaces/msg/AudioFrame
- 内容:包含采样率、声道数、采样格式(pcm/float32)和音频数据数组
- 默认订阅话题名称:
启动命令
使用 ros2 launch
启动 VAD 节点:
ros2 launch br_hri vad.launch.py