可打断对话式语音 AI — 部署指南

在 GitHub 上查看源码
套餐

云端或 OpenAI 兼容模型

语音在设备本地运行,对话回复由 Qwen API 或你填写的 OpenAI 兼容接口生成。默认是阿里云百炼北京地域、模型 qwen3.5-flash,换供应商时替换接口地址、Key 和模型 ID。

  • 麦克风: 需要 reSpeaker XVF3800 USB 麦克风阵列(普通 USB 麦克风会回声、误打断)。
  • 网络: 每轮对话都要联网。
  • API Key: 部署时填写 API Key 和模型 ID,模型需支持流式 Chat Completions。

可选唤醒词: 在部署表单选择“唤醒词后响应”,输入简短的中文或英文唤醒词,识别成功后会播放一声提示音;默认是“持续监听”。

1

部署云端对话终端

部署后,可以在设备播放回答时随时开口打断。

部署方式

在 RK3576 上运行语音,连接云端或局域网模型。需要至少 12 GB 可用磁盘。

接线
  1. 接入 reSpeaker XVF3800 和音箱
  2. 填写 SSH 信息和模型接口设置
部署时需要填写(在 SenseCraft Solution 应用里填)
  • 对话语言*默认 zh
    2 项可选
    • · 中文
    • · 英语

    识别与合成回复使用的语言。选项取 RK runtime 的 30 语种口径(openvoicestream 矩阵 language_catalog_source),是可用列表中较窄的一侧——Qwen3-ASR 上游标称 52 语种,Whisper 为 99 语种。RK3576 仅支持中文与英文:该板 TTS 为 Matcha icefall zh-en,多语 Kokoro 在该板只有 TTS-only profile,尚无与 ASR 组合的配置。部署时会先把(语言,设备)解析成唯一语音配置,该设备不支持所选语言时直接报错停止,不会启动服务。

  • 设备 IP*
  • SSH 用户名*默认 cat
  • SSH 密码*
  • OpenAI 兼容接口地址*默认 https://dashscope.aliyuncs.com/compatible-mode/v1
  • API Key*
  • 模型 ID*默认 qwen3.5-flash
  • 助手人设与回答风格*默认 You are a natural, witty voice assistant. Reply in the user's language. Keep responses conversational and brief—usually one or two sentences. Add light humor and personality when appropriate, but never at the expense of accuracy. Avoid rambling, repetition, lectures, Markdown, headings, and lists. If details are missing, ask one short question. For spoken Chinese, write numbers, dates, times, money, and units as natural spoken Chinese.

    每轮对话都会使用的系统提示词,可按场景修改。

  • RK 性能模式*默认 performance
    2 项可选
    • · 最高性能(默认)
    • · 系统默认 / 均衡

    将 CPU、NPU、DDR 及存在时的 GPU 锁定到设备报告的最高频率,或保持系统原有调频策略。

其余 4 项已有默认值,可不改
  • 对话方式默认 always_on
    2 项可选
    • · 持续监听(默认)
    • · 唤醒词后响应
  • 唤醒词默认 你好小智

    支持自定义简短中文或英文唤醒词,启动时由开放词表 KWS 编译。

  • 唤醒灵敏度默认 0.25
    3 项可选
    • · 严格(0.35)
    • · 平衡(0.25,默认)
    • · 灵敏(0.15)

    阈值越低越灵敏,也可能增加误触发。

  • 说完话多久开始回答默认 0
    4 项可选
    • · 均衡(镜像默认 1.5 秒)
    • · 更灵敏(0.9 秒)
    • · 更宽容(2 秒)
    • · 最宽容(3 秒)

    说完话后等多久开始回答(设备端语音端点判停)。镜像默认 1.5 秒能容忍句中自然停顿;调小反应更快, 但可能把一句话截成两段;调大更宽容(适合边说边想),代价是回答来得更慢。必须大于设备端 VAD 的 静音门限(600 毫秒)。只影响由设备自己判断"说完了"的场景;使用独立麦克风/agent 应用时以它自己的设置优先。

故障排查
现象处理
返回 401确认 API Key 属于接口所在地域
能识别但不说话查看 agent 日志中的大模型请求错误,确认模型支持流式输出
拔插麦克风后没有声音确认运行的是新版 Agent 镜像
部署完成后

提一个问题;回答开始播放后 1 秒内再次开口,当前回答应立即停止。

2

验证对话与打断

在面板里观察 listening、thinking、speaking 和 barged-in 状态。

故障排查
现象处理
状态变化但没有声音检查默认播放设备是否为音箱
房间噪声频繁打断先确认使用的是 reSpeaker XVF3800,再小幅提高客户端 VAD threshold,不要关闭麦克风
部署完成后

连续三轮对话正常,且播放期间说“等一下”能立即停止当前回答,即通过。

3

验证所选语言

确认识别和语音回复使用的是部署时选择的语言。

故障排查
现象处理
回复语言不对检查助手人设提示词
部署没有启动所选语言该板不支持,改选支持的语言
转写语言正确但语音不对上报语言与板卡型号,不要自行修改语音配置
部署完成后

验收清单

  1. curl -fsS http://<设备IP>:8621/health 返回成功。
  2. 提一个问题,几秒内开始播放语音回复。
  3. 回答开始播放后 1 秒内再次开口,当前回答立即停止。
  4. 两到三轮对话的转写和语音回复都是所选语言。
  5. 在设备上执行 docker compose -p conversational_voice_ai -f ~/conversational_voice_ai/assets/docker/docker-compose.<target>.yml logs --since 10m | grep -i error,无输出(<target>rk3576rk3588jetsonrpi5)。