2026-01-27 20:53:43 +08:00
2026-01-27 20:53:43 +08:00
2026-01-27 20:53:43 +08:00
2026-01-05 09:53:18 +08:00
2026-01-27 20:53:43 +08:00
2026-01-27 20:53:43 +08:00
2026-01-27 20:53:43 +08:00
2026-01-27 20:53:43 +08:00
2025-09-29 10:59:27 +08:00
2026-01-27 20:53:43 +08:00
2026-01-27 20:53:43 +08:00
2026-01-27 20:53:43 +08:00
2026-01-05 09:53:18 +08:00
2026-01-27 20:53:43 +08:00

ROS 语音包 (robot_speaker)

注册阿里云百炼获取api_key

https://bailian.console.aliyun.com/?tab=model#/api-key ->密钥管理 放到config/voice.yaml

安装依赖

  1. 系统依赖
sudo apt-get update
sudo apt-get install -y python3-pyaudio portaudio19-dev alsa-utils ffmpeg swig meson ninja-build build-essential pkg-config libwebrtc-audio-processing-dev
  1. Python依赖
cd ~/ros_learn/hivecore_robot_voice
# 在 Python 3.10 环境下,需要单独安装 aec-audio-processing 以跳过版本检查
pip3 install aec-audio-processing --no-binary :all: --ignore-requires-python --break-system-packages
pip3 install -r requirements.txt --break-system-packages

编译启动

  1. 注册声纹
  • 启动节点后可以说er gou我现在正在注册声纹这是一段很长的测试语音请把我的声音录进去。

  • 正确的注册姿势包含唤醒词二狗不要停顿的尽量说完3秒

  • 现在的逻辑只要识别到二狗就注册,然后退出节点,识别不到二狗继续等待

  • 多注册几段,换方向距离注册,可以提高识别相似度,注册方向对声纹相似性影响很大

cd ~/ros_learn/hivecore_robot_voice
colcon build
source install/setup.bash
ros2 run robot_speaker register_speaker_node
  1. 主节点
  • 启动节点后每句交互包含唤醒词,唤醒词和语句之间不要有停顿
  • 二狗拍照看看开启图文交互
  • 支持已注册声纹用户打断
cd ~/ros_learn/hivecore_robot_voice
colcon build
source install/setup.bash
ros2 launch robot_speaker voice.launch.py
  1. ASR节点
ros2 run robot_speaker asr_audio_node
  1. TTS节点
# 终端1: 启动TTS节点
ros2 run robot_speaker tts_audio_node

# 终端2: 启动播放
source install/setup.bash
ros2 service call /tts/synthesize robot_speaker/srv/TTSSynthesize \
  "{command: 'synthesize', text: '这是一段很长的测试文本用于测试TTS中断功能。我需要说很多很多内容这样你才有足够的时间来测试中断命令。让我继续说下去这是一段很长的测试文本用于测试TTS中断功能。我需要说很多很多内容这样你才有足够的时间来测试中断命令。让我继续说下去这是一段很长的测试文本用于测试TTS中断功能。我需要说很多很多内容这样你才有足够的时间来测试中断命令。', voice: ''}"

# 终端3: 立即执行中断
source install/setup.bash
ros2 service call /tts/synthesize robot_speaker/srv/TTSSynthesize \
  "{command: 'interrupt', text: '', voice: ''}"

用到的命令

  1. 音频设备
# 1. 查看所有音频设备
cat /proc/asound/cards
# 2. 查看 card(1)的流信息(设备参数)
cat /proc/asound/card1/stream0
  1. 相机设备
# 1. 查看相机所有基础信息(型号、固件版本、序列号等)
rs-enumerate-devices -c 
  1. 模型下载
modelscope download --model iic/speech_campplus_sv_zh-cn_16k-common --local_dir [指定路径]
Description
No description provided
Readme Apache-2.0 737 KiB
Languages
Python 100%