DeepSeek Harness 界面音效插件 (dsh-ui-sound)

前言

DeepSeek Harness (DSH) 的理念是「一切皆插件」,目前默认几乎没有声音反馈。任务跑完了?失败了?按钮点中了没有?只能靠眼睛确认。dsh-ui-sound 插件把「界面交互」和「任务状态更新」都变成可听见的语义反馈,每一类反馈都能在设置页里单独挑音效、单独开关。

插件简介

该插件由林冠宇 (SOH4C4759) 维护,采用 MIT 许可证。它通过实时合成音效(不依赖任何音频文件)提供交互和任务状态反馈,并支持偏好持久化。

核心功能

插件主要提供两类音效:

  1. 界面交互音效:对按钮按下进行语义分类发声,包括普通、主要、开关、发送、关闭、危险、链接等类型,键盘 Enter、Space 激活同样发声。
  2. 任务状态音效:在当前会话开始运行、运行成功结束、运行失败结束,以及出现需要处理的交互(授权请求 / 提问 / 计划复核)时发声。

安装与启用

在终端中执行以下命令安装插件:

dsh plugin --profile <你的 profile> add github:SOH4C4759/dsh-ui-sound

安装完成后重启 DSH,在 设置 → 音效 里配置即可。

配置与用法

在设置页的「音效」选项卡中,你可以配置总开关、音量、音色包以及各类音效的开关。

默认音量设置为 55%,音色包默认为 zen(纸、木、风铃风格)。插件内置了 12 个音色包:minimal、soft、glass、arcade、mechanical、organic、dreamy、scifi、rubber、cinematic、studio、zen。

配置偏好会持久化存储,文件路径为:

%USERPROFILE%\.dsh\ui-sound\config.json

例如,一个典型的配置文件如下:

{
  "enabled": true,
  "volume": 0.55,
  "pack": "zen",
  "taskSounds": true,
  "clickSounds": true,
  "attentionSounds": true,
  "mapping": { "task.success": "complete", "click.send": "send" }
}

给其它插件用的 API

浏览器端通过 ctx.reflect.provide("uiSound", service) 暴露服务,宿主插件或其它组件可以调用以下方法:

ctx.uiSound.play("task.success")   // 按情景触发(受总开关与对应开关约束)
ctx.uiSound.playCue("achievement") // 直接播一个 cue
ctx.uiSound.preview("success")     // 试听功能
ctx.uiSound.getPrefs()             // 获取当前偏好

注意事项

  1. 浏览器自动播放策略:浏览器不允许网页在没有用户手势前启动 AudioContext。因此,页面加载后第一次点击之前不会有声音。插件会在第一次 pointerdown 时预热并恢复 AudioContext,若仍无声,请先点击页面任意位置。
  2. 不支持导入自定义音频文件:音效引擎由 Web Audio 实时合成,不支持导入自定义音频文件。
  3. 不包含 hover 音:悬停发声在长时间使用中会变成噪声,因此未包含此功能。
  4. 不包含工具调用级音效:工具调用频率高,单独发声会淹没真正重要的状态变化。
  5. 社区移植版:这是社区移植版,基于上游 dsh-plugin-uisfx 适配 DSH 0.2.0,并非上游官方延续。
羽毛球分组比赛记分
小程序二维码

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

小夜