你好!结合社区回复和官方文档,给你最直接的解决方案:
结论
不需要额外硬件,只需一个 3.5mm 扬声器/耳机 插入 RDK X5 耳机孔即可。官方已提供成熟的 TTS 方案。
推荐方案:使用官方 hobot_tts ROS 2 包
这是地瓜官方提供的文本转语音方案,已适配 RDK X5:
1. 安装依赖
# 配置 ROS 环境
source /opt/tros/humble/setup.bash
# 安装 hobot_tts 包
sudo apt update
sudo apt install tros-humble-hobot-tts
# 下载并解压 TTS 模型
wget http://archive.d-robotics.cc/tts-model/tts_model.tar.gz
sudo tar -xf tts_model.tar.gz -C /opt/tros/humble/lib/hobot_tts/
2. 配置音频设备
# 首次使用需配置音频板
srpi-config
# 检查音频设备是否正常
ls /dev/snd/
# 应看到 pcmC0D1p 等播放设备
3. 启动 TTS 节点
# 启动 hobot_tts(订阅 /tts_text 话题)
ros2 run hobot_tts hobot_tts
# 如果设备不是默认的,指定播放设备
ros2 run hobot_tts hobot_tts --ros-args -p playback_device:="hw:0,0"
4. 发布文本进行播报
# 新开一个终端,发布文本消息
ros2 topic pub --once /tts_text std_msgs/msg/String \
"{data: \"你好,我是地瓜机器人\"}"
集成到你的图生文流程
在你的图生文代码中,添加一个 ROS 2 节点发布文本:
#!/usr/bin/env python3
import rclpy
from rclpy.node import Node
from std_msgs.msg import String
class TTSClient(Node):
def __init__(self):
super().__init__('tts_client')
self.pub = self.create_publisher(String, 'tts_text', 10)
def speak(self, text):
msg = String()
msg.data = text
self.pub.publish(msg)
self.get_logger().info(f'播报:{text}')
# 使用示例
node = TTSClient()
result_text = "你的图生文结果"
node.speak(result_text)
硬件检查清单
| 项目 | 状态 |
|---|---|
| 3.5mm 扬声器/耳机 | |
| RDK X5 板载音频 | |
| 音频驱动配置 | srpi-config 配置 |
| TTS 模型 |
参考文档
- 官方 TTS 教程:https://developer.d-robotics.cc/rdk_doc/Robot_development/quick_demo/hobot_tts
- 音频板配置:RDK X5 音频使用指南
- 社区语音方案:RDK X5 快捷语音方案
注意事项
- 仅支持 中文和英文 文本
- 确保音频设备已正确配置(
srpi-config) - 如果没声音,先用
aplay -D hw:0,0 /usr/share/sounds/alsa/Front_Center.wav测试硬件
按这个流程走,应该能快速实现你的图生文 + 语音播报功能!有问题随时在社区反馈 ![]()