前言¶
在 DeepSeek Harness(DSH)里做智能体对话,常见做法是键盘输入或外挂第三方语音识别服务。前者在长对话、移动场景下不够顺手;后者往往要单独申请 API Key、把音频或文本送到云端,成本和隐私边界也要自己管。若希望在同一会话界面里完成「边说边出字 → 编辑或自动发送 → 回复按句朗读并可开口打断」,且识别在宿主端本地推理、不必为 ASR 再配密钥,社区维护的客户端插件 dsh-voice-mode 就是针对这条链路做的集成。下面按安装、操作和配置说明其能力与边界。
这是什么¶
dsh-voice-mode(仓库 qishuilalala/dsh-voice-mode)是 DSH 的全双工语音插件:流式语音识别写入可编辑草稿,文本合成按句朗读并带实时字幕,朗读过程中可发声打断;可选唤醒词待机。维护者为 qishuilalala,在 SkillHub 等社区目录中归类为客户端插件。识别使用宿主端 zipformer2 流式 + SenseVoice 定稿(含 ITN 等),无需额外语音 API Key;朗读默认走 Edge 云端(访问微软在线服务),也可选本地 VITS(偏中文)或 Kokoro(中英混读),合成在宿主端完成。宿主 LLM 的密钥、网络与费用仍由 DSH 自身配置决定。
插件以 npm 包 dsh-voice-mode 发布(资料中当前版本 0.7.34,MIT 许可证);package.json 声明宿主兼容范围为 dsh >=0.1.1-rc.2 <0.3.0-0,Node >=18。README 注明已对 dsh 0.2.1-rc.5 做过兼容复核,但不等于所有设备上的麦克风闭环或跨平台均已验收。
核心功能¶
语音输入与发送¶
进入语音模式后,麦克风采集经客户端 VAD 分段,partial 结果约 0.9s 级别流式出字并可在字幕浮层展示;定稿在宿主端完成。默认行为(可调):停顿约 1500ms 断句进草稿,再静音约 1.2s(合计约 2.7s)自动发送;按住 Ctrl 可强制立即发送。
朗读、字幕与打断¶
模型回复经句子切分进入 TTS 队列,按句朗读,字幕跟随。AI 朗读时用户开口可打断(效果受设备、回声消除与噪声影响;不可靠时可改用「按住说话」)。设置中的 让位语义(backchannelYield,默认开)可在朗读期对短反馈词(如「嗯」「对」)让位约 1.5s,避免误打断。
交互模式¶
支持持续聆听、按住说话、说完就关(mode: once:一句 → 自动发送 → 读完回复后退出)等;朗读范围可选仅在语音模式朗读、总是朗读(readAloud: always,打字消息也可读,代码块会跳过)或关闭。麦克风按钮可显示聆听/朗读状态条,右键可切换交互模式、朗读范围、字幕、状态条等(详见 README 操作表)。
无障碍与细节¶
字幕字号 captionFontSize、宽度 captionMaxWidth 多档可调;读屏相关优化在版本说明中有单独条目。唤醒词待机、语气词白名单等用于减少误触发。
安装与启用¶
安装命令以 README「快速开始」为准:
dsh plugin --profile web add dsh-voice-mode
# 安装到 web profile 后,按实际部署方式重启宿主
首次使用会下载识别相关模型,耗时取决于网络与硬件。插件声明为 web 客户端注入(dsh.client.platform: web),需在对应 profile 下安装并重启宿主后再试。
典型用法¶
- 进入任一会话,按
Ctrl+Shift+V或点输入区麦克风按钮进入语音模式,状态条显示「聆听中…」(应用内快捷键可在设置中修改)。 - 说一句完整的话(例如「帮我看看今天的天气」)→ 实时字幕出现,停顿后进草稿、静音片刻后自动发送。
- AI 开始按句朗读时,可尝试发声打断,确认朗读停止及后续转写是否符合预期。
输入框内快捷键:光标在输入框时 Alt+Enter(Mac 为 Option+Enter)进入/退出语音模式且不插入换行,对应设置键 composerShortcut,留空可禁用。
按住麦克风按钮:空闲时按住即录,松手发送;等回复读完(若开启朗读)后自动退出;等待或朗读期间单击麦克风可停止朗读并完全退出。完整手势表见 GitHub README。
配置入口与常用项¶
通用入口:DSH 设置(Settings)→ 语音模式(Voice Mode)。
| dsh 版本 | 次要入口 | 设置存放 |
|---|---|---|
| ≤ 0.1.5 | 设置 → Plugins → 插件配置 → 语音模式 | dsh 官方设置存储 |
| 0.1.6-alpha 及以后 | 左侧 Plugins → 已安装的 dsh-voice-mode → 详情页「语音模式」卡片 |
0.1.6:官方设置存储;0.1.7+(含 0.2.0):~/.dsh/voice-mode.settings.json($DSH_HOME 下),优先级高于 profile 中同名键 |
设置生效分即时、下次识别、下一段话、下次进入语音模式等档位;卡片顶部会列出「已保存但未生效」项。常用键示例:
| 用途 | 键 | 默认 |
|---|---|---|
| 数字/日期/货币规范化 | senseITN |
true |
| 静音断句时长 | silenceMs |
1500 |
| 让位语义 | backchannelYield |
true |
| 字幕字号 / 宽度 | captionFontSize / captionMaxWidth |
0 / 1 |
| Edge 语速 / 空闲退出 | rate / idleTimeoutMinutes |
1.1 / 5 |
完整设置项(README 称共 29 项)见仓库内 使用说明。
适用场景与注意¶
适合:希望在 DSH Web 会话里用语音完成整轮对话、减少单独 ASR 服务配置、需要按句朗读与字幕、并能在朗读中打断的开发者或日常用户。
务必知晓:
- 插件在当前 dsh 进程权限下运行;安装前应查看源码与 MIT 许可证,自行评估信任边界。
- 默认 Edge 朗读依赖微软在线服务;离线或隐私敏感场景应改用本地 VITS/Kokoro,并接受首次模型下载与硬件性能差异。
- README 明确区分「CI/兼容声明」与「真实听感、麦克风闭环、跨平台」——不存在「所有设备都能精准打断」或「后续所有宿主版本自动兼容」的承诺;升级宿主或插件前可看 CHANGELOG 与 兼容契约。
- DSH 生态强调「一切皆插件」;SkillHub 目录页 为社区收录,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-voice-mode 把本地流式识别、草稿编辑、按句 TTS 与打断收进 DSH 会话,默认安装命令为 dsh plugin --profile web add dsh-voice-mode。进一步说明、架构图与 Demo 见 GitHub 仓库 与 SkillHub 插件页。