DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

tommy00748-tech /

tommy00748-tech/dsh-adhd-noise

Verified

ADHD-friendly focus soundscape plugin for DeepSeek Harness: five procedurally synthesised noise colours, live-waveform orb, fade-out timer and liquid-glass popover. No audio assets, no network requests.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@fd585bbe

ADHD 专注白噪音 · DSH 插件

一边用 DeepSeek Harness,一边播放适合 ADHD 专注的固定声景:颜色噪声(棕色 / 粉红 / 白)、雨声和风扇声。 所有声音在浏览器里实时合成,不下载任何音频文件,不占用网络。

安装

dsh plugin --profile desktop add "git+https://github.com/tommy00748-tech/dsh-adhd-noise.git"

也可以本地路径安装:dsh plugin --profile desktop add "link:/path/to/dsh-adhd-noise"。 装好后重启 DSH(或刷新页面)即可在输入框下方看到胶囊。插件只在浏览器里合成声音,不需要 API Key、不读取任何凭据。

使用

安装后在对话输入框下方出现一个小胶囊(conversation.composer.dock,和耗时/用量同一排,26px 高):

[▶] ◍ 粉红噪声  24:12 ⌃
  • ▶/⏸ 一键播放;播放时胶囊里出现一个随声音轻轻呼吸的小光球。
  • ⌃ 在输入框上方右侧浮出一张 400px 宽的"声景"卡片(浮层 shell.overlay,不占布局、不挤压对话、不产生空白, 锚点由输入框顶部 0 高度探针提供,窗口缩放/滚动自动跟随)。卡片下沿与输入框下沿精确对齐: 探针会向右/向上扫描紧邻的同类兄弟节点找到 composer 卡片本身,用它的 bottom 作为对齐基准; 并监听该卡片的尺寸变化(输入框变高时自动跟随)。

卡片的设计语言:

  • 声球(Sound Orb):顶部一枚 132px 的柔和渐变光球,颜色随所选声音变化(棕/粉/白/雨/风扇各有自己的粉彩色), 播放时随音量与节奏轻微呼吸、放大;球内一条白色细线是真实输出波形(AnalyserNode 时域数据),像水面包裹在球里。
  • 衬线标题:标题直接显示当前声音名(粉红噪声 / 雨声…),下面只留一枚圆形播放按钮和剩余时间,不再有第二行小字。
  • 声音选择:五枚粉彩渐变小圆球(参考图里的 chip 语言),选中时放大 10%,标签变主色,而不是描边胶囊。
  • 音量/定时:一根 2px 细滑杆 + 极简文字时间选项,尽量少线条。
  • ×、Esc、点击卡片外侧都能收起。

真实采样感的合成升级:雨声改为"粉红底噪 + 低频 body + 6 kHz 水雾 shimmer + 密度起伏的雨滴(含偶尔的大雨滴)", 风扇加入 55/110/165 Hz 的扇叶谐波与空气噪声;雨声/风扇改成去相关的立体声缓冲区(联合归一化,保持声像), 戴耳机时的宽度明显更好。所有调制频率都取 8 秒循环的整数周期,循环点依旧无爆音。

玻璃透镜折射:卡片背面除了 backdrop-filter: blur(),还叠了一层 SVG feTurbulence + feDisplacementMap 的 url(#adn-noise-refraction),让玻璃边缘真的"弯折"背后的内容;不支持该写法或开了"减少透明度"时自动退回纯模糊。

窄窗口翻转:会测量输入框卡片的矩形。如果 400px 的卡片会压住输入框,就优先挪到输入框左侧/右侧的空白里; 两侧都不够时改为悬浮在输入框上方,绝不让设置面板盖住发送按钮。

默认值可配置:Host 端把插件行的 config 注入页面(window.__ADHD_NOISE_DEFAULTS__),localStorage 优先:

- id: adhd-noise
  name: dsh-adhd-noise
  config:
    defaultSound: brown      # brown | pink | white | rain | fan
    defaultVolume: 0.35      # 0–1 或 0–100
    timerMinutes: 25         # 0 | 15 | 25 | 50 | 90

Liquid Glass 材质(参考 Apple 的 Liquid Glass 设计):

  • 半透明材质:backdrop-filter: blur(30px) saturate(180%),卡片后面真实模糊并提饱和,聊天内容会透上来
  • 边缘折射:conic-gradient 渐变 + mask-composite 描出 1px 玻璃边,左上最亮、右下回光,模拟光在玻璃边缘的折射
  • 镜面高光:::after 白色径向高光跟随鼠标位置(--adn-mx/--adn-my),像光斑在玻璃表面移动
  • 声球也加了玻璃高光:顶左一道白色镜面弧、内部柔光,球体像封在玻璃里
  • 按压反馈:按钮/小球 scale(.96~.94) + 160ms 缓动;面板出现时 220ms 轻微上浮缩放
  • 材质随主题自适应:读取 --dsw-alias-bg-base 的亮度给面板打 data-tone(light/dark),分别调整边的白度、阴影深度与高光强度;不支持 backdrop-filter 时自动退回不透明底色
  • prefers-reduced-motion 下关闭呼吸、缩放和入场动画

所有文字/控件仍然使用宿主主题 token(深浅色自动适配),粉彩色只用于"声球 / 声音小球"这类装饰画面。 prefers-reduced-motion 下光球不再呼吸,只做静态渲染。

和其他白噪音插件的区别

  • 零素材、零联网:五种声音全部由 Web Audio 实时合成,仓库里没有任何音频文件,点击即响;不下载、不上传、不请求网络。
  • 为 ADHD 调的默认值:默认粉红噪声、30% 安全音量、1.5 秒淡入 / 2 秒淡出 / 定时到点 8 秒淡出,尊重「减少动态效果 / 减少透明度」。
  • 视觉是功能的一部分:真实输出波形驱动的声球、五枚粉彩声音小球、Liquid Glass 浮层;不是设置页里的一个复选框。
  • 可配置默认值:Host 端把插件行 config 注入页面,团队/个人可以预设默认声音音量与定时。

为什么这样设计

  • 默认粉红噪声:白噪声/粉红噪声是目前唯一有少量对照研究支持的声音(Nigg 等 2024 的元分析,13 项研究、 335 名被试,实验室注意力任务平均约 8–10% 的小幅改善;对非 ADHD 人群反而略有干扰)。效果个体差异很大, 临床样本中约三分之一的人反而更差,所以面板里明确写出"因人而异",一键暂停始终可见。
  • 棕色噪声是选项而非默认:目前没有针对 ADHD 的对照试验,流行更多来自主观体验;按钮的悬停提示会说明这一点。
  • 不做 40 Hz 双耳节拍:现有对照研究未发现对注意力网络有作用,且依赖耳机、容易与音频缓冲产生拍频干扰。
  • 淡入淡出:开始 1.5 秒淡入、暂停 2 秒淡出、切换声音 1.2 秒交叉淡化、定时到点 8 秒淡出, 避免突然的声音触发惊跳(ADHD 常见的感觉敏感)。
  • 音量:默认 30%,参考 WHO 安全听音建议(80 dB 每周不超过 40 小时);面板提示每小时让耳朵休息。

实现要点

  • Web Audio API 合成:白噪声、Paul Kellet 粉红滤波、泄漏积分器棕色噪声;雨声 = 粉红底噪 + 低通"body 层"
    • 稀疏雨滴瞬态;风扇 = 棕色噪声 + 0.25 Hz 缓慢起伏。
  • 8 秒循环缓冲区,首尾 0.4 秒等功率交叉淡化,循环点无爆音。
  • 每个预设做响度校正(以白噪声为 1.0,粉红 0.891、棕色 0.398、雨声 0.708、风扇 0.562),切换声音不会忽大忽小; 棕色噪声强制 50 Hz 高通,避免 1/f² 低频只吃动态余量。
  • 信号链:buffer → 预设 biquad → 响度 trim → 淡入淡出 → 主音量(v^1.8 感知曲线)→ 峰值限制器。
  • 引擎生命周期绑定插件 apply,切换会话继续播放;暂停后挂起 AudioContext 省电。

使用与维护

  • 启用/停用:设置 → 插件(本插件行 dsh-adhd-noise),停用后输入框下方条目消失,声音停止。
  • 本地开发:本仓库目录即包本体,profile 里是符号链接(link: 依赖)。修改 client.js 后需要重启 DSH 或刷新页面以加载新的客户端模块。
  • 卸载:在插件管理中移除 dsh-adhd-noise;本地文件不受影响。

已知限制

  • 需要浏览器 Web Audio API(桌面端 DSH 具备);不支持时面板会显示说明并禁用按钮。
  • 声音由浏览器合成,音色是"接近"而非采样级真实雨声/风扇录音;需要绝对逼真的环境音时应换成采样音频方案。
  • 未做多语言以外的国际化(仅简体中文 / English)。

研究参考

  • Nigg 等 2024,JAACAP 白/粉噪声元分析:https://www.jaacap.org/article/S0890-8567(24)00074-1/abstract
  • BPS Research Digest 摘要(约 8–10% 改善;非 ADHD 略有干扰):https://www.bps.org.uk/research-digest/does-pink-noise-really-help-you-focus
  • 临床 ADHD 样本(无主效应,注意力缺陷型/多动冲动型分化):https://pmc.ncbi.nlm.nih.gov/articles/PMC11585357/
  • ADDA:棕色噪声目前只有轶事证据:https://add.org/brown-noise-adhd/
  • WHO 安全听音:https://www.who.int/news-room/questions-and-answers/item/deafness-and-hearing-loss-safe-listening
  • 40 Hz 双耳节拍对照研究(注意力网络无差异):https://link.springer.com/article/10.1007/s12144-023-04681-3
  • Paul Kellet 粉红噪声滤波器:https://www.musicdsp.org/en/latest/Filters/76-pink-noise-filter.html

开发自检

node tools/verify.cjs      # 用 DSH 自带 node 也行:<runtime>/node/bin/node tools/verify.cjs

离线加载 client.js(mock React / Web Audio / Canvas2D / DOM),检查:三个槽位注册、浮层几何(下沿对齐、窄窗翻转、 再无可退空间时上移)、声球/小球画布尺寸与 dpr、5 个声音 + 5 个定时项、完整文案 key、引擎播放/暂停/换声/定时、 Host 注入的默认值、立体声缓冲(雨声/风扇 2 声道)及 RMS/峰值。 改动 UI 或音频后跑一遍即可发现大部分回归。

还可以做的优化(候选)

按投入产出排序,需要哪个我再做:

  1. 每声音独立音量记忆:切换到雨声时自动用它上次的音量偏好,而不是全局音量。
  2. 快捷键:如果当前版本 client 没有暴露 shortcuts 服务,就做面板内快捷键(空格播放、1–5 切声音)。
  3. 真实采样音色:把雨声/风扇换成小体积采样 + 交叉淡化,听感比合成更真实(会增加包体积与首次加载,约 +300–600KB)。
  4. 定时结束的轻提示:可选的单音提示或系统通知,避免专注结束时毫无反馈。
  5. 更多声景:篝火、咖啡馆等人声/环境采样(受体积限制,适合作为可选下载)。
  6. 深/浅色截图回归:目前无法在会话里截图;如果你愿意手动截两张,我可以据此微调玻璃浓度和高光强度。

收录状态

  • 开放插件市场(dshopen.org):已提交收录申请 #231
  • awesome-dsh-plugin(format-1 索引,dsh-market 与 dshmarket 的数据源):收录 PR #11903(仓库刚建,等待 1 天年龄门槛后转 ready)

许可证

MIT © tommy00748-tech


—/ 5

No ratings yet

Verified DSH bundle

Commit fd585bbe7017

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout