实用的语音交互应该像对话,而不是必须等录音播放完才能再次开口。本项目构建一个边缘语音终端:它能聆听,通过扬声器回答,并在用户开始讲话打断时立即停止当前回答。
语音识别和语音合成都在边缘设备上运行。根据所选硬件和隐私需求,对话模型可以使用兼容 OpenAI 的云端接口,也可以在本地运行。因此,同一个项目可以用于服务台、展览、自助终端、智能房间终端和机器人语音交互。

这个项目有什么特点?
核心功能是语音打断:扬声器播放回答时,麦克风继续采集处理后的音频。系统检测到新的语音后,会中断播放并开始聆听下一个请求。
这个功能依赖具备硬件声学回声消除(AEC)的麦克风阵列。没有 AEC,扬声器的声音可能经麦克风再次进入系统,被误认为用户的声音。reSpeaker XVF3800 提供经过 AEC 处理的 USB 采集通道,因此是已经验证的默认选择。
本项目也让语音处理尽可能靠近用户:
- 自动语音识别(ASR)在语音主机上运行。
- 文本转语音(TTS)在语音主机上运行。
- 常驻语音代理负责聆听、打断、对话和播放。
- 选择云端 LLM 时,只有对话请求需要离开设备。
- 完全本地的预设可以让语音和对话处理都留在现场。
系统如何工作
麦克风阵列通过 USB 将经过 AEC 处理的音频发送到语音主机。主机检测语音、将其转成文字、把文字发送到所选对话模型,再将回答转成音频,通过连接在 reSpeaker 3.5 mm 输出端口的扬声器播放。

图中展示的是逻辑音频流程。按照本指南的硬件配置,请将扬声器连接到 reSpeaker XVF3800 的 3.5 mm 输出端口。
| 阶段 | 作用 |
|---|---|
| 现场采集 | USB 麦克风阵列采集语音,并通过硬件消除播放回声。 |
| 语音主机 | reComputer 运行 ASR、TTS、语音活动检测和对话代理。 |
| 对话模型 | 兼容 OpenAI 的接口或本地 LLM 生成回答。 |
| 播放 | 连接到 reSpeaker XVF3800 3.5 mm 输出端口的扬声器播放合成语音。 |
| 语音打断 | 用户的新语音中断当前回答,开始新一轮对话。 |
开源实现见 OpenVoiceStream。它提供针对不同设备的语音后端,同时让受支持主机上的对话应用和服务接口保持一致。
选择部署方式
云端或兼容 OpenAI 的 LLM
这是大多数部署最简单的选择。ASR 和 TTS 保留在语音主机上,识别出的文字发送到 Qwen API 或其他兼容 OpenAI 的接口。部署时需要提供接口基础 URL、API 密钥和模型 ID。
如果你希望有广泛的模型选择、不要求所有对话文字都留在现场,或主机资源不足以同时运行语音服务和本地 LLM,可以选择此方式。
完全本地对话
如果音频和对话文字必须保留在设备上,或终端需要在没有持续互联网连接的情况下工作,请选择本地预设。本指南中的完全本地配置使用 reComputer RK3588,搭配 RK1828/RM182X 加速器运行 Qwen3-4B,无需云端 API 密钥。
首次部署仍需联网获取容器镜像和模型文件。缓存这些文件后,本地预设即可离线运行。
选择语音主机
本指南涵盖以下 SenseCraft Solution 选项:
| 对话方式 | 设备 | 对话模型运行位置 |
|---|---|---|
| 云端或兼容 OpenAI 的 LLM | reComputer RK3576 | 云端或其他兼容接口;ASR 和 TTS 保留在 RK3576 上 |
| 云端或兼容 OpenAI 的 LLM | reComputer RK3588 | 云端或其他兼容接口;ASR 和 TTS 保留在 RK3588 上 |
| 完全本地对话 | reComputer RK3588 + RK1828/RM182X | 在本地加速器上运行,与 RK3588 语音服务配合工作 |
请选择所用设备支持的对话语言。语言在部署时设置,应用会选择相应的语音模型。
所需条件
硬件
- 云端方式需要 reComputer RK3576 或 RK3588;完全本地方式需要 RK3588 搭配 RK1828/RM182X 卡。
- 提供经过 AEC 处理的采集通道的 USB 麦克风阵列。reSpeaker XVF3800 是已经验证的默认选择。
- 连接到 reSpeaker XVF3800 3.5 mm 输出端口的扬声器。
网络和服务访问
- 部署计算机能够通过网络访问语音主机。
- 首次部署时能够联网下载镜像和模型文件。
- 使用云端对话模型时,需要持续的互联网和 API 访问。
- 使用自定义兼容 OpenAI 的接口时,需要基础 URL、API 密钥和模型 ID。
连接硬件
- 通过 USB 将 reSpeaker XVF3800 连接到 reComputer。
- 将扬声器插入 reSpeaker 上的 3.5 mm 输出端口。
- 使用完全本地方式时,将 RK1828/RM182X 卡安装到 RK3588 主机中,并连接卡的独立 12 V 电源。
设备要求见参考设计。
运行步骤
1. 安装并打开 SenseCraft Solution
前往 SenseCraft 下载中心,找到 SenseCraft Solution,下载适用于计算机操作系统的安装程序。安装并打开应用。

2. 找到语音 AI 方案
在方案页面向下滚动,找到可打断的对话语音 AI,打开对应卡片。

在方案页面点击开始部署。

3. 选择部署模式和设备
对于 reComputer RK3576 或 RK3588,选择云端或兼容 OpenAI 的 LLM。对于搭配 RK1828/RM182X 卡的 reComputer RK3588,选择完全本地对话。在设备选择器中选择已连接的硬件。

4. 填写连接和对话设置
云端部署需要填写语音主机的主机名或 IP 地址、SSH 用户名和密码以及对话语言,并输入对话模型的 API 密钥。如果使用自定义兼容 OpenAI 的服务,还需检查基础 URL 和模型 ID。点击测试连接检查能否访问主机。

完全本地部署需要填写 RK3588 主机的主机名或 IP 地址、SSH 用户名和密码以及对话语言。本地模型在 RK1828/RM182X 卡上运行,因此无需云端 API 密钥。确认卡已具备独立 12 V 电源、驱动和设备节点,然后选择测试连接。

5. 部署方案
点击立即部署,等待 SenseCraft Solution 自动安装服务并准备语音模型。首次部署会下载容器镜像和模型文件,请保持设备联网,直到部署完成。

6. 打开 Web UI 并测试对话
部署成功后,通过端口 18000 打开语音主机的 Web UI。对于本指南展示的 RK3588 开发套件,使用 http://recomputer-rk3588-devkit.local:18000。如果网络无法解析该主机名,请使用 http://<device-ip>:18000,将设备的 IP 地址填入其中。

对麦克风讲话,并聆听连接在 reSpeaker 上的扬声器播放回答。然后在回答播放时再次讲话,检查终端是否停止回答并聆听新的请求。