摸摸大肥鱼 Lite(dsh-pet-mic-lite):用麦克风数「今天被摸了几次」

前言

在 DeepSeek Harness(DSH)里做桌面宠物、角色或本地互动时,往往需要一种不联网、不跑模型的轻量输入:用户真的在「摸」设备或麦克风,系统只记次数,别的程序自己去读。常见做法是键盘快捷键或手动点按钮,和「对着麦克风摸几下、停手再结算」的体验对不上。

下面介绍社区插件 dsh-pet-mic-lite(摸摸大肥鱼 Lite):用浏览器麦克风采集电平,在本机判定「摸一摸」段落,把今日次数写入 count.json,供宠物脚本或角色逻辑读取。它不合成语音、不调用模型、不上传音频。

这是什么

dsh-pet-mic-lite 由 yizhuzhu-glitch 维护,在 SkillHub 目录中归类为「记忆」。插件只做一件事:统计今天被「摸摸」结算了几次,以及顺带记录的总下数(strokes),落盘为本地 JSON。README 说明「大肥鱼」是作者桌面宠物的名字,计数逻辑与具体角色无关。

当前 package 版本为 0.1.0,许可证 MIT;非 DeepSeek 官方插件。

核心功能

动作判定与结算

手对着麦克风摸几下,停手 3 秒(默认 sessionIdleMs: 3000),这一段结算为一次「摸摸」,count 加 1。判定在服务端 detector.cjs 完成:维护「未接触时」更新的环境基准(3 秒中位数),电平高出基准 thDb 且持续 enterMs 才算接触,低于门限的 exitRatio 并持续 exitMs 才算离开,因此房间略吵或增益略大时通常不必重调绝对音量阈值。

数据流概览:

麦克风 getUserMedia → 每 10ms 一帧 dB → POST /frame → detector 判定
                                            ↓
                          手停 3 秒 → 这一段结算成一次「摸摸」
                                            ↓
                              count.json 的 count +1

落盘数据

默认目录:~/.dsh-pet-mic-lite/(Windows:C:\Users\<你>\.dsh-pet-mic-lite\)。

count.json 示例:

{
  "note": "大肥鱼读这里:date 是今天,count 是今天被摸摸的次数,strokes 是被摸的总下数。跨天自动从 0 开始。",
  "date": "2026-11-02",
  "count": 12,
  "strokes": 87,
  "updatedAt": 1793615472187
}
字段 含义
date 本地时区今天(YYYY-MM-DD)
count 今天被摸摸的次数(停手 3 秒结算一次)
strokes 今天被摸的总下数
updatedAt 最后一次结算的时间戳(毫秒)

跨天自动归零(覆盖写入);写入采用临时文件加原子改名;每次结算还会在同目录追加 sessions-YYYY-MM-DD.jsonl 便于排查。

HTTP 路由(仅本机)

路由前缀:/plugins/dsh-pet-mic-lite。非 127.0.0.1 / ::1 请求返回 403。

路由 说明
POST /frame 页面推送电平帧 { levels: [[db, t], ...] },返回当前计数
GET /state 今日计数与实时电平状态
POST /reset 今日计数清零(调试 / 演示)

设置面板与隐私

装好后在 DSH 设置 → 摸摸大肥鱼 Lite 打开麦克风并授权一次。面板含麦克风开关、实时电平条、今日次数;上次开关状态记在 localStorage。

音频仅在浏览器内转为 dB 数字;服务端只收到 [[dB, 时间戳], ...]。麦克风走 getUserMedia,需安全上下文——DSH Web 界面在 127.0.0.1 / localhost 下可用;用局域网 IP 访问面板时浏览器可能拒绝开麦。

安装与启用

尚未发布到 npm,请用 GitHub 地址安装(README 注明用包名 dsh plugin add dsh-pet-mic-lite 会 404):

dsh plugin add github:yizhuzhu-glitch/dsh-pet-mic-lite

也可从本地目录或已下载的 tgz 安装:

dsh plugin add /path/to/dsh-pet-mic-lite

package.json 要求 Node >= 22。安装后进入设置页打开麦克风并完成浏览器权限即可开始计数。

配置

在 profile 的 cordis.patch.yml 中按插件 id 覆盖,例如:

- id: dsh-pet-mic-lite
  name: dsh-pet-mic-lite
  config:
    thDb: 9
    logDir: D:/dsh-data/pet-mic-lite
键 默认 说明
enabled true 关闭后不注册路由、不计数
thDb 9 高出环境基准多少 dB 算「手放上去」,可调 3–30
minStrokes 3 一段至少摸几下才算一次
minTouchMs 2000 或累计接触满多少毫秒也算有效互动
sessionIdleMs 3000 手停多久结算一段,可调 500–30000
logDir ~/.dsh-pet-mic-lite 计数与日志目录
noiseFile 空 可选噪声校准 JSON(含 thDb, gateDb),填则替代默认阈值

阈值不合手时优先调 thDb;需要固定校准参数时,可写 { "thDb": 6, "gateDb": -61.7 } 的 JSON 并将路径填入 noiseFile。

典型用法

  1. 按上文命令安装插件,在本机 DSH Web 界面打开 设置 → 摸摸大肥鱼 Lite,点「打开麦克风」并允许权限。
  2. 对着麦克风摸几下,停手约 3 秒,观察面板上的今日次数增加。
  3. 让你的桌面宠物或脚本定期读取 count.json 中的 date、count、strokes,按业务决定是否跨天重置或调用 POST /reset(仅调试)。

开发与自测可在插件目录执行:

npm test

等价于 node test-count.mjs,在不启动完整 DSH 的情况下跑计数链路断言。

适用场景与注意

适合需要本地、离线、低耦合的「摸摸」计数,再由其它 DSH 插件或外部程序读 JSON 驱动表情、对话或统计的场景。不适合需要识别语义、上传音频或远程协作开麦的场景。

DSH 社区目录(如 SkillHub 插件页)独立于 DeepSeek / 幻方,并非官方应用商店。插件以当前 dsh 进程权限运行,安装前建议阅读 GitHub 仓库 源码与 MIT 许可证,确认麦克风与本地文件写入符合你的环境策略。

结尾

dsh-pet-mic-lite 把「摸麦克风 → 停手结算 → 写 count.json」收成一条本机链路,给角色侧留一个稳定的今日计数接口。进一步了解可查看目录页与仓库 README:

  • 目录页:https://www.skillhub.cn/plugins/yizhuzhu-glitch/dsh-pet-mic-lite
  • GitHub:https://github.com/yizhuzhu-glitch/dsh-pet-mic-lite
羽毛球分组比赛记分
小程序二维码

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

Xiaoye