双 MediaPlayer 守护进程($think 思考循环 + $fx 一次性音效)支持音量闪避、情绪感知音效(连续成功/失败/长时间运行自动触发 smooth/struggle/deep_think)、15 种正弦/方波合成内置音、51 个工具分类映射、自定义 WAV/MP3 直替自动转换,以及完整设置页含深色模式修复。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:berserk0501/dsh-soundscape
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DSH 本机音效插件:监听 Agent 状态与工具生命周期,通过常驻
PowerShell 双 System.Windows.Media.MediaPlayer 守护进程
($think 思考循环 + $fx 一次性音效)播放思考、工具、错误和情绪提示音。
当前能力
agent/status进入running时循环思考音,回到idle时停止并播放结束音。- 工具音闪避:工具音播放时思考循环降低至闪避电平(默认 20%), 结束后自动恢复,实现无缝混音而非打断。
- 情绪感知音效:连续成功触发「顺利进展」上行和弦,连续失败触发 「连续困难」下行不协和音,长时间运行触发「深度思考」低频无人机氛围音。 阈值和音效均可在设置页自定义。
- 工具开始、完成和失败音可独立开关;同工具调用有节流保护。
- 15 种零素材内置 PCM WAV(含 3 种情绪音效);用户可在
assets/sounds/放入<工具名>.wav或<工具名>.mp3覆盖。 - MP3 由
mpg123-decoder在 Node 进程内转换并缓存为 WAV。 - DSH 设置页提供开关、音量、思考音、工具映射、试听、重新扫描和打开音效目录。
- 工具映射面板展示全部 51 个 DSH 标准工具,按分类分组并带彩色标签, 支持搜索过滤和逐工具音效自定义;分类采用精确映射表确保准确归类。
- 深色模式下所有下拉菜单(select/option)均有显式背景色和
color-scheme: dark, 确保选项文字可见。 - 配置写入采用临时文件替换,插件卸载时停止定时器并终止播放进程。
- 守护进程采用滑动窗口重启策略(30 秒内最多 3 次),成功启动后计数器重置, 长期会话不会因偶发崩溃而永久放弃重启。
配置与解析顺序
配置保存在 assets/config.json。工具音按以下顺序解析:
assets/sounds/<工具名>.wav- 已扫描转换的
assets/sounds/<工具名>.mp3 config.tools.<工具名>- 工具分类音
config.tools.default
映射值支持 builtin:<名称>、file:<文件名> 和 none。cache: 前缀是
运行时 MP3 转换缓存键,sanitizeEntry 会显式拒绝其写入配置。file: 条目
中的 .. 和路径分隔符同样在校验层被拦截。MP3 转换缓存由
插件管理,不应手工写入配置。
本地 API
静态 hybrid bundle 使用 DSH 已验证的 webServer.register 同源接口:
GET/POST /api/dsh-soundscape/configGET /api/dsh-soundscape/soundsPOST /api/dsh-soundscape/play-testPOST /api/dsh-soundscape/rescanPOST /api/dsh-soundscape/open-sounds-folder
这些接口只由本机 DSH 页面调用。设计草案中的 harness.handle/host.call
属于动态 Cordis runner,不是此静态 bundle 的运行时 API。
验证
npm install --ignore-scripts --legacy-peer-deps
npm run verify
verify 包含全部源码语法检查、Node 单元测试和宿主 mock smoke。
当前已在真实 DSH 中验证:热重载 active、5 条本地 API、设置页完整挂载、
保存立即生效、12 个内置音效清单、MediaPlayer 守护进程 DAEMON READY
及 PLAYED 回执。实际扬声器听感、最终代码完整重启、真实自定义文件命中
和卸载净验证仍需人工验收,不能仅凭日志推断通过。
链接
同类插件
PolinniZhong/dsh-omi-voice★ 75
DeepSeek Harness 对话内朗读:点一下即可朗读、暂停、继续 AI 回复,豆包 TTS 自然音色(BYOK),只读最终回答并过滤代码、表格与图形,本地引擎,插件零 Key。
PensiveFei/dsh-voice-scribe★ 36
面向 Web UI 的语音输入插件:点按 Alt(或 Alt+空格)开始/停止听写,支持浏览器内置 Web Speech(零配置)或 OpenAI 兼容云端 ASR,可选经 DSH 已配置模型润色,带设置页。
1624318455/dsh-plugin-tts★ 25
用免费 Edge TTS 或你自己的 RVC 音色朗读 AI 回复:消息朗读与自动朗读、长文自适应分块渐进播放(无缝衔接)、音色包仓库一键安装、便携 RVC 运行时。
WizisCool/dsh-ears★ 22
面向 DeepSeek Harness (dsh) 的语音输入插件:输入框的麦克风按钮把语音转成草稿文本,支持多种语音识别后端,可选经 dsh 自有 LLM 路由润色,并带原生设置页。
ppy-web/dsh-plugin-xiaomi-mimo-tts★ 18
为 DSH Web 添加 Xiaomi MiMo 语音朗读,支持助手消息朗读、PCM 流式播放、预置与自定义音色、浏览器语音兜底、播放控制和可选 UI 音效。
PerryLink/dsh-talk★ 17
DeepSeek Harness 的语音输入输出:麦克风语音转文字与文字转语音。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。