前言¶
在 DeepSeek Harness(DSH)里和智能体对话,输入框仍是主要入口。官方实验性的 Voice Input 套件可以把语音转文字,但习惯上往往是「录一段再识别」,输入节奏和口述不完全同步。若你希望像对讲机一样按住键说话、草稿区里字句跟着声音刷新,又不愿额外下载模型或把音频发到公网,社区插件 dsh-voice-ptt 针对的就是这一条路径:复用 Voice Input 已准备好的本地 SenseVoice,在 composer 里做 Push-to-talk(PTT)听写。
下面按定位、能力、安装、用法与配置说明该插件;事实以仓库 README 与 npm 包 dsh-voice-ptt(当前版本 0.3.1)为准。
这是什么¶
dsh-voice-ptt 由维护者 zmq6931 发布,在 SkillHub 目录中归类为「模型推理」。它本身不捆绑、也不下载 ASR 模型,而是把浏览器端的录音与热键逻辑接到 DSH 的 ctx.speechToText 服务上——该服务来自官方 Voice Input 实验套件。按住 Right Ctrl 开始口述,松开键时用最终识别结果替换过程中的 interim 文本;也可点击 composer 中的麦克风按钮切换录音。
与系统级全局听写不同,热键作用范围在 DSH 窗口内;与占用 Windows 右侧 Alt 的部分桌面助手相比,默认使用 Right Ctrl,便于与 Kimi 等工具并存,按键可在配置中更换。
核心功能¶
-
Push-to-talk 与点击录音:按住 Right Ctrl 至少约 0.2 秒开始听写;松开结束并以完整识别覆盖 interim 稿。composer 内麦克风按钮可点击开/关。
-
边说边刷新(分块重识别):当前语句大约每 0.7 秒重新转写一次并原地更新草稿,并非逐字流式;松键后的全文再识别通常更准确。长口述约每 15 秒提交一段,以控制单块推理延迟。
-
本地默认识别:复用 Voice Input 已下载的 SenseVoice,模型目录为
$DSH_HOME/speech-to-text/sensevoice,无需本插件再下模型、无需 API Key;本地模式下音频不离开本机。 -
组合键兼容:Right Ctrl 后 220 ms 内再按其他键视为
Ctrl+C、Ctrl+V等组合键,不进入录音。 -
可选云端 ASR:可配置 OpenAI 兼容的
POST {baseUrl}/audio/transcriptions端点;失败时可按配置回退本地(fallbackLocal)。 -
状态提示:右下角状态条显示聆听、识别、已写入或错误信息。切换到其他窗口时录音自动结束。
若未启用或未准备好 Voice Input,插件 host 侧会保持 pending,热键显示错误而非开始录音。
环境与依赖¶
- DSH 0.2.x(README 注明在
0.2.2-rc.1desktop 上测试;Web GUI 预期行为一致)。 - 已启用官方实验性 Voice Input 套件,并在 DSH 中完成 Plugins → Voice Input → Download and prepare。
- 本插件依赖实验性
ctx.speechToTextAPI,后续 DSH 版本若变更该接口可能导致不兼容。
安装与启用¶
推荐从 npm 安装(desktop 配置档):
dsh plugin --profile desktop add dsh-voice-ptt
Web 配置档:
dsh plugin --profile web add dsh-voice-ptt
亦可从 GitHub 或本地路径添加(与 README 一致):
dsh plugin --profile desktop add github:zmq6931/dsh-voice-ptt
dsh plugin --profile desktop add link:/absolute/path/to/dsh-voice-ptt
DSH Plugins 面板可使用相同规格。安装后需 重启 DSH 或刷新 GUI,麦克风按钮与热键才会出现。
插件在 DSH 进程权限下运行,安装前请自行查阅 GitHub 仓库 源码与 MIT 许可证;本文不替代安全审计。
典型用法¶
| 操作 | 效果 |
|---|---|
| 按住 Right Ctrl(≥ 0.2 s) | 开始听写,文本写入 composer 草稿 |
| 松开 Right Ctrl | 最终转写替换 interim 草稿 |
| 220 ms 内 Right Ctrl + 其他键 | 按普通修饰键组合处理,不录音 |
| 点击 composer 麦克风 | 开始/停止听写 |
| 录音时切到其他窗口 | 自动结束录音 |
听写过程中可有约 0.5–1.5 秒主观延迟;小模型在 homophone、专名、嘈杂环境下会有常见误识别。README 建议:麦克风近且安静、短句口述、显式设置 language(粤语可用 yue),或改用云端 ASR。
配置¶
主配置文件路径:$DSH_HOME/voice-ptt.json,UTF-8 无 BOM。浏览器侧在插件挂载时读取,修改后需刷新或重启 DSH。
默认示例:
{
"language": "auto",
"hotkey": "ControlRight"
}
| 键 | 可选值 | 默认 | 含义 |
|---|---|---|---|
language |
auto / zh / yue / en / ja / ko |
auto |
识别语言提示,yue 为粤语 |
hotkey |
见下表内置 code | ControlRight |
PTT 按键 |
asr |
local / cloud |
local |
识别后端 |
fallbackLocal |
true / false |
true |
云端失败时是否回退本地 |
内置 hotkey code:ControlRight、ControlLeft、AltRight、AltLeft、ShiftRight、MetaRight。
按来源的即时覆盖(优先于文件):
localStorage["dsh-voice-ptt:language"] = "yue";
localStorage["dsh-voice-ptt:hotkey"] = "AltRight";
云端模式示例(音频会上传到你所配置的端点):
{
"asr": "cloud",
"language": "auto",
"fallbackLocal": true,
"cloud": {
"baseUrl": "https://api.siliconflow.cn/v1",
"apiKey": "sk-...",
"model": "FunAudioLLM/SenseVoiceSmall",
"language": "auto",
"timeoutMs": 60000
}
}
API Key 留在 host 进程;/voice-ptt/config 仅返回脱敏信息(如 hasKey)。云端模式下说话期间约每 0.7 秒重发当前片段,请求次数与口述时长相关。
隐私(README 摘要):本地模式在浏览器转 16 kHz 单声道 WAV,经插件 loopback host 路由交给本地 SenseVoice;云端模式仅上传配置端点所需的 WAV 段;路由限制在 loopback/受信主机与同源请求。
适用场景与注意¶
适合:已在 DSH desktop 或 Web 中使用 Voice Input 本地模型、希望 composer 内 PTT 听写、且希望默认不离机识别的工作流。
不适合或需注意:需要系统级全局热键、声纹选择、唤醒词或自动发送消息;依赖实验性 speech-to-text 接口的长期稳定承诺。Right Ctrl 本身是修饰键:按住超过 220 ms grace 后才按快捷键会先进入听写,需松键结束。无说话人选择;仅听写,不代替发送逻辑。
DSH 生态奉行「一切皆插件」;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-voice-ptt 在不大改官方 Voice Input 资产的前提下,把「按住 Right Ctrl → 草稿随说更新 → 松键定稿」落到 composer 上,并保留可选云端 ASR 与组合键容错。若你正在 DSH 0.2.x 上调试语音输入,可优先完成 Voice Input 模型准备,再执行 dsh plugin --profile desktop add dsh-voice-ptt 验证热键与麦克风按钮。