dsh-reminder-sound
v0.1.0
Published
Sound reminders in the dsh WebUI: a tone when a session completes or needs user interaction
Maintainers
Readme
dsh-reminder-sound
English | 中文
这是一个用于 DeepSeek Harness WebUI 的声音提醒插件。会话完成或需要用户介入时,它会播放不同的提示音;你可以在 设置 > 插件 > 插件配置 中开关提醒、调整音量并试听。
安装
dsh plugin --profile web add dsh-reminder-sound首次安装后重启一次 WebUI,让它重新生成浏览器插件列表。之后修改设置或在开发中重新构建,一般不需要再次重启。
工作方式
- 后台会话从运行中变为完成时播放“完成音”;当前正在打开的会话保持安静。
- 任意会话开始等待用户介入时播放“提问音”,当前打开的会话也会响。
- 插件首次读取会话列表时只建立基线,不会为已经发生的旧事件突然响铃。
- 声音由 Web Audio 实时合成,不附带音频文件。
- 受浏览器自动播放政策限制,页面需要先接收到一次点击或按键,才能创建或恢复音频上下文。
修改提示音
两种合成音都定义在 src/client/sound-player.ts。
complete默认是 660 Hz、880 Hz 的上行双音,使用sine(正弦波)。attention默认是 520 Hz、390 Hz 的下行双音,使用triangle(三角波)。- 每个音符的格式是
tone(context, frequency, delay, duration, type, gain)。
例如,下面会生成一个短促的 660 Hz 正弦波音符:
this.tone(ctx, 660, 0, 0.14, 'sine', 0.5)修改后,在 Harness 源码仓库中重新构建这个包,再刷新 WebUI。
换成 MP3 文件
v1 不能直接把 MP3 放进目录替换声音,因为当前播放器使用实时合成音。支持 MP3 时,需要把音频文件加入浏览器 bundle,并用新的文件播放器实现现有的 SoundPlayer 接口。会话检测、设置和界面都可以保持不变。
从源码开发
这个仓库保留了 Harness 单体仓库中的包结构。开发时,把它克隆到 Harness 源码目录的 packages/client/ui-reminder-sound,在 WebUI bundle 和 client TypeScript references 中登记 dsh-reminder-sound,然后运行:
pnpm install
pnpm --filter dsh-reminder-sound bundlenpm 包已经包含预构建的 lib/,普通安装者不需要搭建这套源码构建环境。
对模型的影响
无。插件不会向模型上下文添加内容,不会发起模型请求,也不会影响 KV Cache 前缀。
已知限制
- 声音由 WebUI 所在浏览器播放;浏览器或操作系统可能暂停或静音最小化的标签页。
- v1 只支持 WebUI;TUI 和桌面客户端需要单独增加 Host 侧播放路径。
- 当前处理“任务完成”和“等待用户介入”,暂不处理会话中止或失败。
- 当前不发送浏览器或操作系统通知。
