@zhangbo-cn/dsh-client-ui-voice-input:给 DeepSeek Harness Web 增加 composer 语音输入与回复朗读

前言

DeepSeek Harness 的插件机制允许把客户端能力挂进 Web UI。对于主要在 composer 中写消息的使用者来说,语音转草稿、按住说话、助手回复朗读,会比纯键盘输入多一种交互方式。下面介绍 @zhangbo-cn/dsh-client-ui-voice-input,它由 Zhangbo-cn 维护,以 MIT 许可证发布,主要作用于 DeepSeek Harness Web 的 composer 区域。

这是什么

该插件在 composer 工具行加入一个线性 mic 按钮。它做三件事:把说话内容逐字写入草稿;支持按住 mic 录音并松开发送;在满足条件时朗读助手回复。

识别通过浏览器 Web Speech API 运行,不需要 API key。回复朗读优先走宿主 Edge TTS 的 /api/tts,浏览器 speechSynthesis 作为 fallback。

核心能力

点按监听

1、点按 mic 开始监听,图标进入 DeepSeek 蓝并脉冲。
2、说话后,识别结果逐字写入草稿;mic 在静默期间仍保持监听。
3、可以随时用 composer 的发送按钮发送,也可以继续追加语音。
4、再次点按 mic 停止监听。

静默结束时,识别段会自动重启,用于跨过静默保持监听。资料说明中把每段 continuous: false 描述为有意选择,以避免 continuous: true 在某些浏览器下不返回 onresult 的问题。

与 composer 的关系

语音结果追加到当前草稿,而不是覆盖已有内容。发送后草稿清空;如果继续监听,则在新的 recognizer 上继续,不把旧语音文本回填到输入框。

按住说话

按住 mic 约 250 ms 以上并开始说话,松开后发送。发送后,如果最近 5 分钟内使用过 mic,则下一次助手回复启用朗读;未最近使用 mic 的纯打字发送不触发回复朗读。

可选自动发送

配置 autoSendOnSilenceMs 后,停止说话达到该时长会自动发送消息。默认值为 0,表示关闭。

回复朗读

助手回复在模型生成过程中按完整句子进入朗读队列;最后一句不完整内容在生成结束时朗读。

朗读期间暂停识别,避免扬声器回声;朗读结束后,如果原本处于监听状态,则恢复识别。点按 mic 可以停止朗读。

安装与启用

先执行安装命令:

dsh plugin add @zhangbo-cn/dsh-client-ui-voice-input

该命令按 npm 包名安装插件。刷新 Web UI 后,composer 工具行出现 mic 按钮即可开始使用。

注意需要使用 0.1.1+0.1.0 曾以错误 ModuleLoader id 注册浏览器 bundle,导致 Harness 报出 loaded without registering "@zhangbo-cn/dsh-client-ui-voice-input"。如果停留在 0.1.0,先升级/重装,再硬刷新 Web UI。

从 DeepSeek Harness checkout 挂载

如果是从 DeepSeek Harness checkout 开发,而不是直接安装 npm 包,可以在 web-app browser roster 中挂载该包:

- id: ui-voice-input
  name: '@zhangbo-cn/dsh-client-ui-voice-input'

为了让回复朗读走更可靠的宿主 Edge TTS 路径,同时挂载:

- id: tts-edge
  name: '@deepseek-ai/dsh-tts-edge'

该挂载用于注册 /api/tts。没有它时,回复朗读仍可使用浏览器 speechSynthesis,但资料说明其效果不如宿主 Edge 神经语音。

经过上面的挂载步骤后,使用仓库构建客户端 bundle:

pnpm --filter @zhangbo-cn/dsh-client-ui-voice-input run bundle

典型配置

可在插件配置中设置识别语言、流式中间结果和自动发送静默窗口:

- id: ui-voice-input
  name: '@zhangbo-cn/dsh-client-ui-voice-input'
  config:
    language: 'zh-CN'
    interimResults: true
    autoSendOnSilenceMs: 0

默认值为:languagezh-CNinterimResultstrueautoSendOnSilenceMs0(关闭)。

适用场景与注意

该插件适合需要在 DeepSeek Harness Web composer 中使用语音输入、按住说话发送、或希望助手回复自动朗读的场景。由于它在客户端浏览器中运行识别,依赖浏览器对 Web Speech API 的支持。

Firefox 的 mic input 不受支持,这是浏览器限制,不是插件问题;插件会 feature-detect 并禁用 mic,并给出提示。回复播放仍可通过 /api/ttsspeechSynthesis

已抓取资料中的 package.json 显示部分 peerDependencies,包括 @deepseek-ai/cordis ^4.0.1,以及 @deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime 的 rc 版本要求;资料末尾被截断,完整依赖以仓库 package.json 为准。

安装前建议检查源码与 MIT 许可证。该插件以当前 dsh 进程权限运行,因此安装前应确认来源可信。

相关页面

社区目录:https://www.skillhub.cn/plugins/Zhangbo-cn/dsh-voice-input-plugin
GitHub:https://github.com/Zhangbo-cn/dsh-voice-input-plugin

羽毛球分组比赛记分
小程序二维码

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

小夜