前言¶
DeepSeek Harness(DSH)的插件生态里,语音输入是一个高频场景。但现有的转写结果往往充满口语杂质——语气词、重复字词、停顿造成的碎句号——直接发给模型会降低指令质量。同时,录音时缺少视觉反馈,无法确认麦克风是否正在工作。
dsh-siri-voice 插件为 DSH 的语音输入流程增加两层功能:一是录音时的 Siri 风格流光带,二是转写后的本地规则清理。
插件定位¶
dsh-siri-voice 是一个纯客户端的 DSH 插件,由维护者 saul-dsh 提供。它只做两件事:
- 在语音输入时,在输入框上方绘制一个外圈旋转渐变光、中间三层声波随音量起伏的流光带。
- 在转写文本进入草稿后,用本地正则清理口语杂质,把停顿造成的碎句号改回逗号。
插件不调用任何大模型,不改变录音流程,也不自动发送消息。
核心功能¶
流光可视化¶
点开麦克风开始录音时,输入框上方会浮现一个 Siri 风格的流光带:
- 外圈是一个旋转的渐变光带。
- 中间有三层声波,高度随麦克风音量实时变化。
- 录音结束后,光带瞬间消失,不占布局。
转写过程中,波形消失但光带保留,提示还在处理。
转写清理¶
语音转写会把口语原样落进草稿,插件在转写完成、文本进入草稿之后运行清理规则。所有规则都是本地正则,不调用模型,零延迟零成本。
清理规则¶
| 问题 | 处理方式 | 示例 |
|---|---|---|
| 语气词 | 删行首、标点后、汉字之间的「嗯、呃、额、唔」 | 「嗯,我觉得」→「我觉得」 |
| 口头填充「那个」 | 只删行首且后面紧跟逗号的 | 「那个,我想说」→「我想说」 |
| 重复字 | 同字三连以上合并 | 「我我我觉得」→「我觉得」 |
| 重复词 | 两三个字的词连续重复合并 | 「这个这个方案」→「这个方案」 |
| 停顿碎句 | 整段没有逗号且平均句长很短时,中间句号改逗号 | 「我今天。想去公园。」→「我今天,想去公园。」 |
不动的规则¶
- 叠词:「看看」「刚刚」「试试」是合法用法,不动。
- 指示代词:「那个文件」里的「那个」。
- 语气助词:「好啊」里的「啊」、「对吧」里的「吧」。
- 已经有逗号的正常句子。
- 正常长度的完整句子。
保护机制¶
如果改动超过原长 40%,判定规则失控,直接放弃清理,保留原文。清理结果只写回草稿,不会自动发送,你可以继续修改或手动撤回。
安装与启用¶
插件安装命令如下:
# 本地路径
dsh plugin --profile web add /path/to/dsh-siri-voice
# 从 GitHub
dsh plugin --profile web add https://github.com/saul-dsh/dsh-siri-voice
安装后需要重启宿主(桌面端需完全退出再启动)。启动日志中出现 [siri-voice] 相关的层即可确认插件加载成功。
依赖要求¶
插件依赖 DSH 自带的语音输入 bundle(@deepseek-ai/dsh-experimental-voice-input-bundle)处于启用状态。麦克风按钮、录音与转写都由该 bundle 提供,插件只读取它在录音时挂在容器上的 data-voice-activity 属性,不打断、不接管任何流程。
如果语音输入 bundle 未启用,插件不会显示任何东西,也不影响其他功能。
兼容性¶
| 项目 | 要求 |
|---|---|
| DSH | ≥ 0.2.0(developer preview) |
| Node | ≥ 18 |
| 客户端 | web(桌面端与浏览器) |
| 前置插件 | @deepseek-ai/dsh-experimental-voice-input-bundle 需处于启用状态 |
| 运行时依赖 | 无 |
插件使用原生 canvas 与 Web Audio API,不引入第三方依赖,也不使用 WebGL。
故障排查¶
完全没有流光带¶
- 确认语音输入本身能用:点麦克风能录音、能转写。
- 确认前置 bundle 已启用:
dsh --profile desktop --dump-config | grep voice-input。 - 装完没重启 dsh。客户端模块在启动时加载。
有流光带,但浪高不动¶
- 麦克风权限被拒绝,或系统里有别的应用独占了麦克风。此时退化为缓慢呼吸动画,不报错。
- 部分 Linux 发行版下
getUserMedia拿不到音量,同样退化。
转写出来了,但语气词还在¶
- 清理有 40% 改动上限保护,删太多会判定失控并保留原文。
- 整段被判为「正常句子」(已经有逗号,或者平均句长超过 12 字)时,停顿句号不会合并。
- 控制台有
[dsh-siri-voice] transcript cleaned X -> Y记录,没有这行说明本次没触发清理。
流光带位置偏了¶
- 它按「编辑器 + 语音栏」的最小公共祖先计算矩形,dsh 改动输入栏结构后可能算错。
- 窗口缩放或分屏切换后如果错位,重新触发一次录音即可。
和别的输入框插件冲突¶
插件只读 data-voice-activity 属性,不接管录音流程。如果出现冲突,可以禁用其他插件逐个排查。
适用场景¶
适合需要频繁使用语音输入、希望减少口语杂质、又不想引入额外模型调用的 DSH 用户。插件对性能影响极小,适合在桌面端浏览器环境中使用。
生态背景¶
DSH 理念是「一切皆插件」,插件生态由社区维护。插件目录是独立站点,与 DeepSeek / 幻方无官方从属关系。
结语¶
dsh-siri-voice 为 DSH 的语音输入流程增加了可视反馈和文本清理能力,所有功能都在本地完成,不依赖外部模型。如果你正在用语音输入写提示词或与模型对话,这个插件可以让反馈更直观、文本更干净。
- 插件目录页:https://www.skillhub.cn/plugins/saul-dsh/dsh-siri-voice
- GitHub:https://github.com/saul-dsh/dsh-siri-voice