DSH 插件 dsh-push-to-talk:按住说话与单键快捷键

前言

在 DeepSeek Harness(DSH)里用语音填输入框,常见做法是点麦克风开始、再点一次停止。对话节奏快时,多一次点击会打断思路。社区维护者 zl0215 在仓库 zl0215/dsh-vediocontrol 中提供了客户端插件 dsh-push-to-talk(npm 包名 dsh-push-to-talk,版本 0.1.0):在输入框旁提供「按住说话」按钮,并支持单个按键按住录音、松开自动识别并发送。识别仍走本机已有的 speechToText 服务(语音输入实验包里的 SenseVoice 或云端),不另建识别通道、不重复下载模型。

这是什么

dsh-push-to-talk 属于 DSH 客户端类插件,维护者为 zl0215。启用后会停用内置的点击式语音前端 ui-voice-input,改为按住说话按钮与单键快捷键,避免出现两个麦克风。停用或卸载本插件后,内置麦克风会恢复;语音插件里已保存的识别服务与语言偏好继续生效。

目录页:https://www.skillhub.cn/plugins/zl0215/dsh-vediocontrol
源码与说明:https://github.com/zl0215/dsh-vediocontrol

核心功能

按住说话与发送

  • 麦克风按钮:位于输入框右侧、发送按钮之前。按住开始录音,波形与计时显示在输入框下方;松开即识别,并将文字插入按住时记录的光标位置后调用 inputActions.submit() 发送。
  • 快捷键:默认 F2(单个按键)。在页面内任意位置或输入框内按住 F2 说话,松开即识别并发送。
  • 取消:上滑后松开、按 Esc,或在按住快捷键时再按其它字符键,会取消本次录音。
  • 按下不足 350ms 视为误触,不会识别;未识别到语音也不会发送。单次最长录音 120 秒(与语音服务默认上限一致)。

自定义快捷键

路径:设置 → 通用 → 「按住说话快捷键」。

  1. 点「修改」,再按下一个按键完成绑定。
  2. 只接受非字符按键:F1–F12、左/右 Ctrl、左/右 Alt、左/右 Shift,避免与打字冲突。
  3. 「恢复默认」回到 F2。绑定保存在浏览器 localStorage,换页或重启 DSH 后仍生效。

同一页还有 「麦克风常驻」:开启后麦克风保持待命,按下几乎零等待(系统麦克风指示会持续亮);关闭时每次识别成功后热连接约 2 分钟。首次识别成功后会提示「开启零等待」,也可在设置里手动打开。

全局快捷键(Windows)

设置 → 通用 → 「全局快捷键(其它软件中也能用)」 默认开启时,插件会启动本机 PowerShell 辅助进程 hotkey.ps1,安装 Windows 低级键盘钩子,只监听绑定的那一个键,不联网、不记录输入、不拦截按键(其它软件仍收到该键)。

在其它软件中 按住 F2(或你绑定的键)→ 松开,识别结果会发送到 DSH 当前会话。更换快捷键后会重启辅助进程;关闭开关即停止。全局能力目前仅支持 Windows。DSH 窗口不要最小化(可置于其它窗口后),否则浏览器可能节流页面。第一次在 DSH 页面仍需允许麦克风权限。

与内置语音插件的关系

本插件通过 bundle patch 关闭 ui-voice-input,只替换前端交互,Host 侧仍依赖 @deepseek-ai/dsh-experimental-voice-input-bundle 提供的 speech-to-text 等能力。模型未就绪时,输入框下方会提示「下载并准备」,本插件可触发下载并显示进度。

实验功能:回复浮窗(默认关闭)

设置 → 通用 → 「回复浮窗(实验)」,仅 Windows、默认关闭。开启后,用全局快捷键提问时回答可边生成边显示;可配置背景不透明度、字体、字号。不属于主流程,按需开启即可。

安装与启用

前置条件:已启用 @deepseek-ai/dsh-experimental-voice-input-bundle;首次使用需在页面允许麦克风权限。插件以当前 DSH 进程权限运行,安装前建议阅读仓库源码与 MIT 许可证。

从 GitHub 安装(README 给出的当前可用方式):

dsh plugin --profile web add github:zl0215/dsh-vediocontrol

等价写法:

dsh plugin --profile web add git+https://github.com/zl0215/dsh-vediocontrol.git

也可在 DSH 插件 → 安装 页面填入包名或 Git 地址。npm 发布后可使用 dsh plugin --profile web add dsh-push-to-talk(README 注明暂未发布)。安装后 bundle 会停用内置点击式语音前端;在 Windows 上按需启动本机辅助进程监听全局按键。

引擎要求(package.json):dsh >= 0.2.0-rc.1,node >= 20。

典型用法

  1. 完成语音输入 bundle 与模型准备后,安装本插件并打开 DSH 聊天页。
  2. 页面内:按住输入框旁麦克风,或按住 F2,看到「正在聆听」后再说话,松开等待识别并自动发送。
  3. 需要改键时进入 设置 → 通用,修改「按住说话快捷键」;若常在其它软件里口述,保持「全局快捷键」开启,并视延迟情况打开「麦克风常驻」。
  4. 识别完成后若草稿在录音期间被改动,插入可能失败,输入框下方会提供「插入并发送 / 丢弃」。

延迟说明(来自 README):快捷键冷按会有打开麦克风的 0.1–0.4 秒左右延迟(蓝牙耳机可能更长);识别成功后 2 分钟内再按通常很快;「麦克风常驻」可进一步消除等待。松开至文字发出,本机 SenseVoice 常见约 0.2–0.6 秒。

适用场景与注意

适合:希望在 DSH 里用「对讲机式」语音输入、减少点击;Windows 用户需要在浏览器外按住单键把话送进当前会话。

注意:

  • 不提供输入设备与识别语言选择器,使用系统默认麦克风与语音插件已保存的服务/语言(默认自动识别)。
  • 页面内快捷键仅在存在聊天输入框的页面生效;全局快捷键需要 DSH 运行且当前会话有输入框。
  • 页面内按住期间切换会话、页面隐藏或失焦会结束录音;全局录音不受窗口失焦影响。
  • 全局快捷键收不到发往「以管理员运行」窗口的按键;UAC/锁屏期间无事件。
  • 若语音输入 bundle 被停用,按钮会半透明并在输入框下方说明服务不可用。

Host 侧在本机回环注册 JSON 接口(如 GET /push-to-talk/api/status、POST /push-to-talk/api/transcribe 等),仅 127.0.0.1 / ::1 可访问;录音数据仅在单次请求内处理,不写入会话事件。

结尾

dsh-push-to-talk 把 DSH 语音输入改成「按住录、松开发」,并可选 Windows 全局单键,识别链路仍复用实验语音包,不重复造轮子。社区目录页:https://www.skillhub.cn/plugins/zl0215/dsh-vediocontrol;安装命令与细节以 GitHub README 为准:https://github.com/zl0215/dsh-vediocontrol。

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

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

Xiaoye