【无标题】

端侧离线语音交互系统:全链路实现与性能实测

本文记录在 RDK S100P 上落地一套全离线语音交互系统的过程和实测结果。设备在不联网的情况下,完成从唤醒、识别、理解到应答、播报的完整语音对话,整条链路用 ROS2 做了工程化封装。


一、为什么做端侧离线

服务机器人、车载、嵌入式设备很多时候工作在弱网甚至无网环境,而云端语音方案一旦断网就完全不可用。把 ASR(识别)、LLM(理解与对话)、TTS(合成)全部放到设备本地离线运行,主要出于三点考虑:

  • 断网也能正常工作,不依赖网络;
  • 本地直接计算,没有网络往返,延迟更低;
  • 语音数据不离开设备,隐私可控。

前提是模型要足够小、足够快,能在端侧 CPU 上实时跑起来------这也是整条链路工程优化的主要目标。


二、系统全貌与实现流程

系统跑在 RDK S100P 上,全部推理在本地完成,不需要独立 GPU、不需要联网。一次完整对话经过五个环节:

复制代码
语音唤醒 + 声源定位  →  ASR 离线识别  →  意图理解(规则 / LLM 双路)
        →  应答生成(控制执行 / LLM 对话)  →  流式 TTS 播报(支持打断)
环节 做什么
唤醒 + 定位 麦克风阵列做全向唤醒词检测,并估计声源方向,使设备朝向说话人
ASR 识别 端点检测后截取有效语音,离线转写为文本
意图理解 明确指令走规则(快、确定);开放对话走端侧 LLM(灵活)
应答生成 控制类直接执行;对话类由端侧 LLM 流式生成
TTS 播报 流式分段合成、边生成边播;播报中可被用户打断

图 1:系统架构 / 数据流示意

![系统架构示意](./assets/architecture.png)


三、ROS2 工程化封装

整条链路用 ROS2 封装成多节点流水线:每个环节是一个独立节点,节点之间通过消息总线通信;识别、大模型、合成这些重计算下沉为常驻服务,节点本身只负责编排和时序。

这样做的好处:

  • 各环节解耦,可以独立开发、独立替换;
  • 单个节点崩溃能独立重启,不影响整条链路;
  • 重推理常驻,模型只加载一次,多轮对话不重复加载;
  • 唤醒、录音、播报、打断(barge-in)的时序由消息机制统一协调。

四、各环节性能实测

4.1 ASR · 语音识别

经过量化和工程优化,ASR 在 S100P 的 CPU 上跑得远快于实时:

指标 实测结果
实时率 RTF ≈ 0.06(1 秒音频约 60ms 算完,约 16× 实时)
单句识别耗时 120 -- 360 ms(随句长波动)
模型体积 压缩约 3.6×(端侧加载快、占用低)
中文识别准确率 量化前后基本无损(量化无明显劣化)

RTF(实时率)= 处理耗时 ÷ 音频时长,小于 1 才跟得上实时。0.06 意味着识别几乎瞬时完成,延迟预算可以基本都留给后面的理解和合成。

4.2 意图理解 · 规则 / LLM 双路

路径 处理对象 准确率 / 延迟
规则匹配 明确控制指令(如前进、停止等) 零延迟、确定性触发
LLM 意图 开放、模糊、自由表达的意图 92%(内部测试集实测)

控制指令需要即时、确定,用规则零延迟处理;规则覆盖不到的开放表达再交给 LLM。

4.3 LLM · 场景化对话回复

LLM 采用地平线 BPU 支持的 7B 量化大模型,端侧本地推理。在目标场景的问答、寒暄、信息查询中:

指标 实测结果
中文场景回复准确率 92%(内部测试集实测)
回复方式 流式生成,边生成边合成播报

一个实测观察:输入清晰时模型回复切题、可用;端到端体验的主要短板其实在识别侧------远场、口音造成 ASR 听错,出现「听错了再答」,而不是 LLM 本身的问题。后续优化重点会放在拾音上。

4.4 TTS · 语音合成

文本长度 合成耗时 音频时长 RTF
短(2 字) 1070 ms 947 ms 1.13
中(11 字) 2451 ms 2480 ms 0.99
长(18 字) 4304 ms 4028 ms 1.07
更长(28 字) 5681 ms 5781 ms 0.98

TTS 的 RTF 在 1.0 附近(0.98 -- 1.13),合成速度约等于实时,长句甚至略快于实时。RTF≈1 看着不快,但配合流式分段(首段只合成开头几个字、不等全文),首字延迟会低很多。

4.5 端到端延迟

指标 非流式 流式优化后
说完话 → 首字出声 ~5 s ~3 s

流式管线的做法是:LLM 边生成、首段尽早切出、立刻送去合成播报。这样首字延迟从约 5 秒降到约 3 秒,对话节奏接近正常交流。


五、成果一览

环节 关键指标 实测
ASR 实时率 RTF ≈ 0.06
ASR 模型压缩 ≈ 3.6×
意图 规则路径 零延迟、确定
意图 LLM 准确率 ≈ 92%
LLM 中文场景回复准确率 ≈ 92%
TTS 合成实时率 RTF ≈ 1.0
端到端 说完话 → 首字 ~3 s

中文交互演示视频

中文语音交互

英文交互演示视频

英文语音交互演示


六、小结

整套系统在 RDK S100P 上完全离线跑通了「唤醒 → 识别 → 理解 → 应答 → 播报」的语音对话闭环:ASR 实时率约 0.06、规则意图零延迟、意图和场景对话准确率约 92%、TTS 接近实时、端到端首字约 3 秒。配合 ROS2 的多节点封装,整个系统在工程上也比较好维护和迭代。

对没有网络的使用场景来说,端侧离线方案的意义在于不依赖云、不怕断网,本地就能完成低延迟、隐私可控的语音交互。

相关推荐
Java研究者1 天前
AI智能体研发 | 什么是OpenAI API协议
人工智能·大模型·openai·api·agent·智能体
小七-七牛开发者1 天前
Coding Agent 规则管理:CLAUDE.md、Skills、Hooks、Subagents 到底怎么选?
ai·大模型·agent·claude·token·loop·mcp·claudecode·ai coding
小七-七牛开发者2 天前
论文解读:DeepSeek DSpark 在真实高并发推理服务中,如何保证 Token 生成又好又快?
ai·大模型·编程·ai coding
刺猬的温驯3 天前
Flow Matching 训练的输入分布问题:从 VAE Latent 统计性质到归一化工程实践——以 VoxFlash-TTS 为例
人工智能·语音合成·tts
fengliaoai4 天前
DeepSeek搞了个DSpark,AI直接进入“秒回时代”,你还在傻等?
大模型
aqi006 天前
15天学会AI应用开发(九)利用Chroma持久化向量数据
人工智能·python·大模型·ai编程·ai应用
刺猬的温驯10 天前
语音克隆模型的难点之一:音素对齐及交叉注意力早期失效问题 (兼论旋转位置编码)——F5-TTS、SupertonicTTS、VoxFlash-TTS 对比
人工智能·语音合成·tts
兵慌码乱11 天前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
aqi0012 天前
15天学会AI应用开发(八)使用向量数据库实现RAG功能
人工智能·python·大模型·ai编程·ai应用