← 返回列表
未验证
DeepSeek HarnessDSHWeb 客户端语音对话插件:麦克风 → 语音识别STT → 自动发送 →…
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/24 · 已提供中文文档
DeepSeek Harness(DSH)Web 客户端的语音对话插件:麦克风 → 语音识别(STT)→ 自动发送 → 助手回复 → 语音合成(TTS)朗读。零成本,默认无需 API 密钥。
综合分
30.5
GitHub 分
30.5
用户评分
—
★ Stars
4
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add MonkeyChenLun/dsh-voice-plugin-NKM该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/17(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-voice-plugin-NKM DeepSeek Harness(DSH)Web 客户端语音对话插件:麦克风 → 语音识别(STT) → 自动发送 → 助手回复 → 语音合成(TTS) 朗读。 功能 - 🎤 语音输入:点击输入行麦克风按钮开始录音,识别文字自动写入 composer 并发送(与打字同一路径)。 - 🔊 语音朗读:助手回复完成后自动朗读(仅「语音模式」下朗读,打字输入不朗读)。 - ⚙️ 语音设置面板(齿轮按钮打开;右键麦克风打开快捷菜单): - TTS 引擎选择:浏览器语音(默认)/ 本地语音模型(预留)/ 自定义 API; - 声音、语速、音调、音量;自动朗读开关;打断模式(点击麦克风时 / 检测到新录音时);测试声音。 - 🛑 打断(Barge-in):TTS 朗读中点击麦克风或开始说话立即停止朗读。 - 🧹 TTS 文本过滤:朗读前去除 Emoji 与 Markdown 标记,保留自然语言、数字与普通符号。 运行成本与约束(重要) 本插件本体零成本、零 API Key、默认不调用任何外部服务: | 引擎 | 成本 | 说明 | |---|---|---| | 浏览器语音(STT/TTS,默认) | 免费 | 使用浏览器内置 SpeechRecognition / SpeechSynthesis,无需任何配置或 Key | | 本地语音模型(GPT-SoVITS / CosyVoice 等,预留) | 免费(自部署) | 接口已预留,模型加载尚未实现,需用户自行部署、本地运行 | | 自定义 API | 由用户自担 | 用户自行填写地址/Key/模型;支持 4 种协议:JSON-base64(自建/通用)、OpenAI 兼容、ElevenLabs、Azure Speech。允许配置付费服务,但由此产生的一切费用、合规与安全风险由用户自行承担,与本插件无关 | ⚠️ 免责声明:本插件不捆绑、不默认接入任何付费服务;若用户在「自定义 API」中配置了付费或第三方服务,请自行确认其费用与合规性,后果自负。 架构 - TTS 采用 Provider 架构(src/client/tts/): - types.ts:TtsProvider 接口(speak/cancel/isSpeaking/listVoices/onVoicesChanged); - engine.ts:TtsEngine 门面——文本预处理、读取设置、选择 Provider,不含任何引擎逻辑; - providers/BrowserTTSProvider.ts:免费浏览器引擎(默认); - providers/LocalTTSProvider.ts:本地模型占位(预留); - providers/ApiTTSProvider.ts:自定义 API(多协议:JSON-base64 / OpenAI 兼容 / ElevenLabs / Azure Speech)。 - STT 使用浏览器原生 SpeechRecognition(src/client/speech/recognition.ts)。 - 回复捕获基于会话快照(useSession 标准 prop 的 chat.nodes),带基线水位防历史误读(assistant-stream.ts)。 - UI 注册于 conversation.input.left 插槽;设置存于 localStorage(键 dsh-voice-settings)。 目录 dsh-voice-plugin-NKM/ ├── package.json # dsh.client 声明 + dsh.bundle(插入 voice-plugin 行) ├── cordis.patch.yml # bundle patch:插入插件行 ├── build.ps1 # esbuild 构建脚本(node half + 浏览器 half) ├── tsconfig.json └── src/ ├── index.ts # node/host 半边(空 apply) └── client/ ├── index.ts # 浏览器半边:注册 conversation.input.left 插槽 ├── VoiceButton.tsx # 麦克风按钮 + 打断 + 快捷菜单 + 设置接线 ├── VoiceSettings.tsx # 语音设置面板 ├── assistant-stream.ts # 助手回复快照 diff(纯函数) ├── icons.tsx # SVG 图标 ├── speech/ # STT + 设置 + 文本预处理 │ ├── recognition.ts # 浏览器 SpeechRecognition 封装 │ ├── settings.ts # 设置模型 + localStorage │ └── preprocess.ts # TTS 文本过滤 └── tts/ # TTS Provider 架构 ├── types.ts ├── engine.ts └── providers/ ├── BrowserTTSProvider.ts ├── LocalTTSProvider.ts └── ApiTTSProvider.ts 加载方式(DSH 集成) 与部署内其他第三方插件同款(bundle + link:): 1. 构建:pwsh -File build.ps1(产出 lib/index.js 与 lib/client.js); 2. 在 profile 的 package.json 里加依赖 "@deepseek-ai/dsh-voice-plugin-nkm": "link:", 并把包名加入 dsh.profile.bundles; 3. 在 profile 的 node_modules 中建立指向本目录的链接(或 pnpm install); 4. 重启 dsh --profile web。插件行由 cordis.patch.yml 自动插入, 浏览器半边经 dsh.client 声明自动进入 window.__DSH_BOOT__。 构建与验证 - 安装依赖:npm install - 构建:npm run build(跨平台,产出 lib/index.js 与 lib/client.js);Windows 本机也可 pwsh -File build.ps1 - 类型检查:npm run typecheck(tsc --noEmit) - 测试要点:硬刷新后点 🎤 说话 → [dsh-voice] final/submitted → 回复后 speak 并朗读; 打字输入不朗读;右键/齿轮打开设置;打断、过滤、引擎切换按面板提示验证。 说明:包名使用 @deepseek-ai/ 前缀仅用于与本机 DSH 集成命名一致,本插件非 DeepSeek 官方包。
扫码进群