dsh-voice-notify:DSH 插件:每轮对话收尾时用中文语音播报提醒

前言

DeepSeek Harness (DSH) 提供了插件化架构。在长时间运行或调试时,开发者往往需要明确知道当前 Agent 的对话轮次是否结束。dsh-voice-notify 是一个宿主侧插件,它挂接 DSH 原生的“轮次收尾”扩展点,在对话真正结束时触发中文语音播报。

核心功能

  • 轮次收尾播报:监听 agent/turn-stopping 事件,在对话真正结束时播报中文语音。
  • 内置语音库:内置 20 条“晓晓·温暖”风格的叠词语音(WAV 格式)。
  • 可视化配置:提供设置页,支持总开关、子代理轮次过滤、最小间隔、固定语音选择等。
  • 自定义扩展:支持指定自定义语音目录和脚本。
  • 轮次过滤与间隔:支持子代理轮次过滤,并可通过 minIntervalMs 防止频繁播报。

安装与启用

插件仅支持 Windows 平台。

安装命令

在解压后的目录下运行:

powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1

守护热挂载(推荐)

如需在运行中的 DSH 实例中立即生效(无需重启),可使用守护热挂载模式:

powershell -ExecutionPolicy Bypass -File .\install.ps1 -Hot

工作原理

  • 挂接缝:agent/turn-stopping(宿主 serial 扩展点,一轮真正收尾时派发)。
  • 放音:随机播一条内置 WAV;可选追加自己的语音目录。
  • 非阻塞:spawn 后 unref(),立刻返回,绝不等它放完。
  • 容错:任何异常都吞掉只记日志,绝不影响任务收尾。

配置

配置项位于挂载条目的 config 中:

- id: voice-notify
  name: dsh-voice-notify
  config:
    enabled: true            # 总开关
    includeSubagents: false  # 子代理轮次是否也响
    minIntervalMs: 4000      # 两条提醒的最小间隔
    clip: ''                 # 固定一条,如 'done-3';留空则随机
    clipDir: ''              # 额外语音目录,*.wav 一起进随机池
    voiceScript: ''          # 覆盖放音脚本(默认包内 lib/play.ps1)

注意事项

  • 平台限制:仅支持 Windows 平台。
  • 子代理默认行为:子代理轮次默认不响,需配置 includeSubagents: true。
  • 最小间隔:默认为 4000ms,防止频繁播报。
  • React 依赖:React 为可选依赖。
  • 日志位置:日志文件位于 $DSH_HOME/voice-notify.log。

链接

羽毛球分组比赛记分
小程序二维码

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

小夜