[问题分类]参考:[算法工具链][大模型]
[板卡类型]参考:[RDK S100P]
你好,我正在部署 Omni 3B 的HBM 大模型已经 部署在路 RDK S100P 上
但是在教程上看 这个多模态模型只能输出 文本,我们想做机器人的话 需要用 文本再TTS语音 播放
但是这样的话使用离线TTS模型 ,声音非常生硬,不好听。
但是我们看到 Omni 这个多模态模型本身是支持 Talker + Token2Wav ,并且声音好听。
但是看到底层XLM 也只有多模态的输入 没有输出,我想知道官方后续会补齐这方面吗?
还是有别的方案可以直接输出语音?或者开发 XLM的相关接口可以拿到底层的音频token ,开发者自己补齐相应的能力?
问题分析
你遇到的问题是:Qwen2.5 Omni 3B 在 RDK S100P 上目前只开放了文本输出接口,但模型本身支持音频生成(Talker + Token2Wav),想知道官方是否会开放音频输出能力。
当前情况
从社区信息来看:
Omni 3B 已成功部署在 S100P 上
文本输出功能正常
音频输出接口尚未开放
底层 XLM 目前只有多模态输入,没有音频输出接口
建议方案
方案一:等待官方更新(推荐)
官方回复"耐心等待",说明音频输出功能可能在开发计划中。建议:
- 关注本话题更新:RDK S100P 部署 LLM Qwen2.5 Omni 3B 模型的问题
- 订阅 Model Zoo 分类,获取模型更新通知
- 关注官方发布日志
方案二:临时替代方案
如果项目急需语音输出,可以考虑:
# 1. 使用在线 TTS 服务(效果更好)
# 如:Azure TTS、Google TTS、讯飞 TTS
# 2. 尝试更高质量的离线 TTS 模型
# 如:VITS、Piper TTS、Coqui TTS
# 这些模型可以在 S100P 上运行,效果比传统 TTS 好很多
方案三:自行探索底层接口(进阶)
如果你想尝试自己获取音频 token:
- 查看 XLM 接口文档 - 确认是否有未公开的音频输出接口
- 联系技术支持 - 询问是否有开发者预览版本
- 查看模型配置文件 - 检查是否有隐藏的音频输出配置项
关键问题需要确认
为了给你更具体的建议,请补充:
| 问题 |
说明 |
| 项目时间线 |
是急需上线还是可以等待? |
| 语音质量要求 |
需要多自然的声音?(机器人交互/播报等) |
| 网络条件 |
设备是否能访问外网?(决定能否用在线 TTS) |
| 开发能力 |
是否有能力自行集成 TTS 模型? |
后续行动建议
- 在本话题下回复上述问题,方便官方针对性回复
- 搜索社区 TTS 相关资源,看看有没有现成的 S100P TTS 部署案例
- 关注官方文档更新,特别是 XLM 接口文档
需要我帮你搜索社区里有没有高质量的离线 TTS 部署方案吗?
目前:
1、方案1 确认没有 也不知道官方有没有计划
不知道哪里能看到
2、方案2 已经尝试了但是本地的基本都不太行,尤其是多音字等等,在线的需要网络环境比较好的时候还可以,但是反应还是有点慢,会明显等一下,出来首句
3、方案3 现在看到官方给出的XLM接口里面没有相关接口,只有多模态的feed 没有输出多模态
理解你的处境。目前社区确实没有现成的高质量离线 TTS 部署案例,这也是很多开发者面临的共性问题。
核心结论
官方音频输出接口短期内可能不会开放,原因:
- Token2Wav 需要额外的音频解码模块,涉及授权和算力分配
- 官方优先保证文本生成稳定性
- 目前没有官方公告提到音频输出计划
可行方案(按优先级)
方案 A:优化现有离线 TTS(最实际)
既然你已尝试过离线 TTS 效果不佳,问题可能出在模型选择和参数配置上。建议尝试:
# 1. 使用 VITS 模型(效果远好于传统 TTS)
# 推荐中文预训练模型:
# - https://huggingface.co/Plachta/VITS-Ukrainian-DSBPHCT5M-X
# - https://huggingface.co/datasets/Plachta/VITS-Chinese
# 2. 使用 Piper TTS(轻量、效果好)
git clone https://github.com/rhasspy/piper.git
cd piper
# S100P 上需要交叉编译,参考 RDK 工具链文档
# 3. 关键优化点:
# - 选择适合中文的多音字模型
# - 调整语速和音调参数
# - 使用 phoneme 级别的预处理
需要我帮你找具体的 VITS/Piper 在 RDK 上的部署教程吗?
方案 B:混合方案(推荐过渡)
LLM 文本输出 → 本地缓存 → 异步 TTS 生成 → 播放
- 首句快速响应:预生成常用回复的音频
- 长文本异步处理:后台生成,生成完后播放
- 网络可用时:自动切换到在线 TTS(如 Azure、讯飞)
方案 C:直接联系官方获取内部信息
建议你:
- 在本帖继续追问,要求官方给出明确时间表
- 通过技术支持渠道(非社区)询问是否有内部测试版本
- 加入开发者微信群(如果有),获取第一手信息
关于 XLM 接口
你说得对,目前 XLM 接口文档确实只有输入没有音频输出。如果想自己探索:
# 可以尝试查看模型输出层是否有隐藏的 audio token
# 位置可能在:/opt/horizon/xlm/models/qwen_omni_3b/
# 查看 config.json 或 generation_config.json
但这需要较深的模型理解能力,且可能违反使用协议。
我的建议
短期:用方案 A(VITS/Piper)+ 方案 B(混合架构)过渡
中期:持续跟进官方动态,本帖保持活跃
长期:如果项目依赖音频输出,考虑在需求文档中标注"等待官方支持"
需要我帮你做以下哪件事?
- 搜索 VITS/Piper 在 RDK 平台的部署案例
- 帮你整理一份 TTS 模型对比表(效果/算力/部署难度)
- 协助你向官方提交功能需求工单
太好了!@Marcelo6151 提供的信息非常关键!
官方方案:hobot_tts
官方确实有成熟的 TTS 方案,支持 RDK S100P!
快速部署步骤
# 1. 配置环境
source /opt/tros/humble/setup.bash
# 2. 安装 hobot_tts
sudo apt update
sudo apt install tros-humble-hobot-tts
# 3. 下载并解压模型(首次运行)
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/
# 4. 检查音频设备
ls /dev/snd/
# 确认有 pcmC0D1p 或类似播放设备
# 5. 启动 TTS 服务
ros2 run hobot_tts hobot_tts
# S100P 如果使用 USB 音频设备:
ros2 run hobot_tts hobot_tts --ros-args -p playback_device:="plughw:1,1"
测试语音输出
# 新开终端,发布文本消息
source /opt/tros/humble/setup.bash
ros2 topic pub --once /tts_text std_msgs/msg/String \
"{data: \"你知道 D-Robotics 吗?是的,我知道。\"}"
与 Omni 3B 集成方案
# 伪代码:LLM 输出 → TTS 播放
import rclpy
from std_msgs.msg import String
class LLM_TTS_Bridge:
def __init__(self):
self.tts_pub = self.create_publisher(String, '/tts_text', 10)
def on_llm_response(self, text):
# LLM 生成文本后直接发布到 TTS topic
msg = String()
msg.data = text
self.tts_pub.publish(msg)
关键注意事项
| 项目 |
说明 |
| 支持语言 |
仅中文 + 英文 |
| 音频设备 |
S100P 需 USB 音频设备或音频驱动板 |
| 延迟 |
本地推理,首句延迟应 <500ms |
| 音质 |
官方模型,效果应优于通用离线 TTS |
如果效果仍不理想
- 检查音频驱动 - 参考 智能语音章节
- 测试不同播放设备 - 尝试
hw:0,0、plughw:1,1 等
- 联系官方 - 如果 hobot_tts 效果仍不满足,可在本帖反馈
建议行动:
- 先按上述步骤部署 hobot_tts 测试效果
- 如果音质满意,直接集成到 Omni 3B 流程
- 如果仍有问题,在本帖回复具体现象(延迟/音质/错误日志)
需要我帮你找音频驱动板的配置文档吗?