dsh-voice-conversation:DSH 免提意英语音对话

前言

在 DSH 里做智能体开发,常见交互仍是键盘输入:切到浏览器、打字、等回复,再决定是否继续追问。若希望「对着麦克风说、停顿后自动提交、听完助手朗读再继续说」,需要客户端侧把采集、停顿检测、提交与会话 UI 串起来;可选地还要本地 STT/TTS,避免把语音明文送到未配置的远端。

下面介绍社区插件 dsh-voice-conversation(维护者 redhunt07):面向 DSH web profile 的客户端插件,支持意/英免提对话、内联对话 dock,以及可选的本地 Whisper/Piper 后端。插件以 MIT 许可发布;Voice Loop 相关代码源自 ZG2017 的 fork 说明见仓库 NOTICE.md。目录页:skillhub.cn/plugins/redhunt07/dsh-voice-conversation;源码:github.com/redhunt07/dsh-voice-conversation。DSH 生态强调「一切皆插件」;社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

这是什么

dsh-voice-conversation 是 npm 包名,当前发布版本 0.1.2。一句话定位:在 DSH 聊天里开启 Voice Mode 后,用户说话、停顿约 1.7 秒即提交 prompt;助手最终口头回复播完后,在同一麦克风流上继续监听。紧凑的 composer dock 保留原生聊天、工具与 DSH 提供的 Think 输出(展示的是 DSH 暴露的推理片段,而非模型私有推理)。

README 写明在 DSH 0.2.0-rc.2、Node.js 22+、Linux web profile 上做过测试;其他 DSH 版本、操作系统与浏览器需自行验证。麦克风需 localhost 或 HTTPS 及浏览器授权;建议戴耳机,减轻外放回声触发「说话打断」。

核心功能

免提对话与 dock

  • 在会话中启用 Voice Mode 并授权麦克风;dock 显示 listening、processing、speaking 等状态。
  • 助手回复仅在 agent 结束后朗读;中间 tool-step 文本会跳过。
  • 可在播放回复时开口打断;审批类请求仍在普通聊天里,可能需要点击确认。
  • 关闭 Voice Mode 释放麦克风。

语言与语音

  • 识别在意语与英语间自动选择;合成语音需在界面选择:paola(意语)或 lessac(英语)。输出语言不会随识别自动切换。
  • 可在插件设置里配置 local/cloud 两个端点槽位;默认均指向 localhost。无隐式远端回退,也不会自动从环境读取 API key。

默认本地端点(需可选后端运行):

  • http://127.0.0.1:8766/v1/audio/transcriptions
  • http://127.0.0.1:8766/v1/audio/speech

STT 接受 multipart file 与 model,返回 JSON {text}。TTS 接受 JSON {model,input,voice,lang_code,response_format:"mp3"},返回 MP3 字节。

可选本地后端

不装后端时,插件仍可在配置了兼容远端 STT/TTS 时使用;仓库提供的 Python 运行时在本机处理音频,绑定 127.0.0.1:8766,DSH 须与本机同机,由 host 代理音频;浏览器源请求会被拒绝。本地进程可无认证访问该端口,需保持端口不对外暴露。

Voice Mode 激活时 Native Think 区块会展开一次;手动折叠会被尊重。更细的活动可在 DSH 全局设置里选 verbose transcript、detailed usage,插件不覆盖这些偏好。

与旧版 Voice Loop 互斥

README 要求:若曾安装旧 Voice Loop bundle,先禁用。两插件占用相同 API 路径,不能同时运行。

安装与启用

插件随 DSH web profile 安装,不自动安装后端、全局 transcript 偏好或后台服务。安装前建议浏览源码与 MIT 许可证;插件在当前 DSH 进程权限下运行。

安装当前 npm 发布版:

dsh plugin --profile web add dsh-voice-conversation

固定已验证版本:

dsh plugin --profile web add dsh-voice-conversation@0.1.2

也可使用 0.1.1 预构建归档(等价安装方式,见 README):

dsh plugin --profile web add https://raw.githubusercontent.com/redhunt07/dsh-voice-conversation/main/dist/dsh-voice-conversation-0.1.1.tgz

dsh plugin 会选取 bundle。请确认 $DSH_HOME/profiles/web/package.json(通常为 ~/.dsh/profiles/web/package.json)里的 dsh.profile.bundles 中 dsh-voice-conversation 只出现一次;若缺失则手动补上并保留既有条目。完成后重启 DSH,浏览器硬刷新。

卸载:从 bundle 移除条目,执行 dsh plugin --profile web remove dsh-voice-conversation,再重启 DSH;运行时数据与共享模型缓存不会自动删除。

典型用法

1. 仅客户端(远端或后续再配本地端点)

  1. 按上一节安装并重启 DSH。
  2. 打开任意 DSH 聊天,开启 Voice Mode,允许麦克风。
  3. 在识别/合成选项中选择 local 或 cloud(两槽位可在插件设置中改为兼容的远端 URL 与凭据)。
  4. 选择合成音色 paola 或 lessac,开始说话;停顿约 1.7 秒后 prompt 提交。

2. 本地 Whisper / Piper 后端

先解压源码包并进入目录。依赖:python3、uv、PATH 上的 ffmpeg。setup 会创建隔离的 Python 3.12 环境(必要时经 uv 下载解释器),并下载约 3.1 GB 的 pinned Whisper/Piper 模型;安装前请阅读 NOTICE.md。

CPU 示例:

python3 scripts/runtime.py setup --device cpu
python3 scripts/runtime.py start

Linux 上若有兼容 CUDA 12 驱动与足够显存(README 在 16 GB GPU 上测过),可用:

python3 scripts/runtime.py setup --device cuda
python3 scripts/runtime.py start

保持前台进程运行;Ctrl+C 停止。数据目录默认 ~/.local/share/dsh-voice-conversation,可用 --data-dir PATH 覆盖。Whisper 使用标准 Hugging Face 缓存。检查配置与服务:

python3 scripts/runtime.py doctor

0.1.1 起可选 Kokoro TTS(setup 额外下载约 354 MB ONNX 与 voice bank,README 截断处仍指向 --tts kokoro)。Whisper large-v3 在 CPU 上可能较慢。

适用场景与注意

适合:在 DSH web 端做意/英口语式调试、演示或长时间 hands-free 迭代;希望 STT/TTS 明确走本机或自配远端、而非插件隐式联网的场景。

限制与隐私(摘自 README):

  • 随附本地后端在内存中处理音频,不保存录音或 transcript 日志;转写后的 prompt 与回复仍进入 DSH 正常会话历史,并随所选聊天模型的数据处理策略走。显式配置的远端语音端点会收到音频/文本。
  • 停顿与 barge-in 基于音频能量,非语义判停;环境噪声、增益与回声会影响体验。单次录音上限 120 秒;音频请求超时 90 秒;播放有 watchdog,过长回复可能被截断。Voice Mode 下会向模型请求更 concise 的回答。
  • setup 需要网络;模型缓存完成后本地识别/合成可离线。聊天模型仍可使用远端 provider。
  • README 称自动化测试覆盖 VAD、dock、连续回复、tool-step 过滤、TTS 失败等;真实房间麦克风仍须在稳定公开发布前自行验证。0.1.1 为 initial release candidate 表述。

结尾

dsh-voice-conversation 把 DSH web 聊天扩展为可停顿提交的意/英免提循环,并用 dock 保留工具与 Think 可见性;需要完全本地语音链路时,可叠加 127.0.0.1:8766 上的可选 Python 运行时。安装与版本以 npm 0.1.2 与 README 命令为准。

  • 目录页:https://www.skillhub.cn/plugins/redhunt07/dsh-voice-conversation
  • GitHub:https://github.com/redhunt07/dsh-voice-conversation
  • npm:https://www.npmjs.com/package/dsh-voice-conversation
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜