把音频转成波形频谱图与节拍指标,供模型解读
31.4/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/22 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add MukiyoU/dsh-music-analyze该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · other
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 14 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 5 处,展示前 5 条)
- 读取本地文件index.js:46
return existsSync(p) - 执行外部命令来自配置/变量index.js:75
execFile( - 执行外部命令来自配置/变量index.js:102
execFile( - 读取本地文件index.js:211
if (!existsSync(abs)) throw new Error(`文件不存在:${abs}`) - 读取本地文件index.js:212
if (!existsSync(SCRIPT)) throw new Error(`插件自带的分析脚本缺失:${SCRIPT}`)
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
给 DeepSeek Harness 加一个工具:把音频变成四张图 + 一组数字,模型看图看数字,就能和你讨论这首曲子。
README
由 DeepSeek 最新模型翻译生成dsh-music-analyze —— 让模型「看见」音乐
给 DeepSeek Harness 加一个工具:把音频变成四张图 + 一组数字,模型看图看数字,就能和你讨论这首曲子。
它做了什么
一个 music_analyze 工具,输入音频/视频路径,输出:
四联图(music_report.png)
| 面板 | 看什么 |
| 波形 | 节奏、强弱、哪段安静哪段爆发 |
| 梅尔频谱 | 频率分布——贝斯在底下、人声在中间、镲片在上面 |
| 色度图 | 12 个音高类别 → 调性和和弦走向(讨论音乐最关键的一张) |
| 段落能量 | 每秒 RMS,前奏/主歌/副歌的分界 |
文字指标(同时返回在 report 字段里)
- 时长、BPM、主调
- 频段能量占比(低/中低/中高/高/超高频)
- 动态范围(dB)
- 最响的 5 个时刻、最安静的 3 个时刻
它做不到什么
图能告诉你「音乐长什么样」,不能告诉你「好不好听」。
- ✅ 「A 小调、87 BPM、副歌在 1:12 进来、贝斯偏重」
- ❌ 「这段旋律很动人」
形态可以测量,感受得靠听的人说给模型听。
BPM 是怎么定的(v0.2.0)
单一算法的 BPM 经常翻倍。
展开完整文档(README 剩余 1 节)
dsh-music-analyze —— 让模型「看见」音乐 给 DeepSeek Harness 加一个工具:把音频变成四张图 + 一组数字,模型看图看数字,就能和你讨论这首曲子。 它做了什么 一个 music_analyze 工具,输入音频/视频路径,输出: 四联图(music_report.png) | 面板 | 看什么 | | 波形 | 节奏、强弱、哪段安静哪段爆发 | | 梅尔频谱 | 频率分布——贝斯在底下、人声在中间、镲片在上面 | | 色度图 | 12 个音高类别 → 调性和和弦走向(讨论音乐最关键的一张) | | 段落能量 | 每秒 RMS,前奏/主歌/副歌的分界 | 文字指标(同时返回在 report 字段里) - 时长、BPM、主调 - 频段能量占比(低/中低/中高/高/超高频) - 动态范围(dB) - 最响的 5 个时刻、最安静的 3 个时刻 它做不到什么 图能告诉你「音乐长什么样」,不能告诉你「好不好听」。 - ✅ 「A 小调、87 BPM、副歌在 1:12 进来、贝斯偏重」 - ❌ 「这段旋律很动人」 形态可以测量,感受得靠听的人说给模型听。 BPM 是怎么定的(v0.2.0) 单一算法的 BPM 经常翻倍。 librosa 的 beat_track 在无鼓的指弹/钢琴独奏上会把八分音符当拍点——一首舒缓的曲子能算出 123 BPM。 所以这个插件用三个独立估计器 + 一个裁决判据: | 估计器 | 原理 | | 动态规划节拍跟踪 | 找让 onset 强度路径总和最大的那条 | | onset 自相关 | 看起音强度的周期性,峰值对应拍速 | | 循环节拍图 | 频域看拍速的周期结构 | 裁决:奇偶拍强度比 拿 DP 吐出的真实拍点,按奇偶分组,比两组的中位强度。 比值 ≥ 1.35 → 判定真实速度是共识的一半(重音每两拍一次) 为什么用 RMS 而不是 onset 强度:实测发现 onset 强度对振幅太钝——合成信号里振幅差 3.3 倍,onset 比值只有 1.19,而 RMS 比值能到 1.4 以上。 验证过的用例 | 信号 | 真实拍点密度 | 判定 | | 节拍器 120 | 120 | 117.45 ✅ | | 节拍器 87 | 87 | 86.13 ✅ | | 节拍器 62 | 62 | 61.52 ✅ | | 强弱交替 124(听感 62) | 124 | 61.52 ✅ | | 强弱交替 174(听感 87) | 174 | 86.13 ✅ | 报告里会把候选和依据一起写出来: 速度 : 123 BPM 判定依据:三估计器一致(DP + acf/tempogram)三估计器:动态规划 123.0 / 自相关 123.0 / 节拍图 123.0 候选:半速 61.5,原值 123.0,倍速 246.1 不成立就不改数。 三个方法都说 123、又没有强弱交替,那就是 123——不硬凑成 62。 安装 1. 装 Python 依赖 python -m pip install -i https://mirrors.aliyun.com/pypi/simple/ librosa soundfile matplotlib 国内建议用阿里云镜像,PyPI 官方源下 scipy/numba 这种大包会非常慢。 2. 装 ffmpeg(三选一) - 系统里已有 ffmpeg 在 PATH 上 → 什么都不用做 - 设环境变量 FFMPEG_BIN 指向 ffmpeg.exe - pip install imageio-ffmpeg(会自动带一份) 3. 装插件 在 DeepSeek Harness 里: plugin_manager install_bundle <这个目录的绝对路径> 或者放到 profile 的 bundles 里。 用法 模型侧直接调用: music_analyze(path="D:\\Music\\song.mp3") music_analyze(path="...", start=60, end=120) # 只分析 1:00–2:00 music_analyze(path="...", label="くじら") # 图标题带名字 想换输出目录:outDir="..."。 模型拿到结果后应该用 read_image 打开返回的 imagePath 自己看一遍,再结合 report 讨论——只看数字不看图,等于没看懂。 配置(可选) 插件 Config: pythonPath: 'C:\\path\\to\\venv\\Scripts\\python.exe' # 指定解释器 timeoutMs: 600000 # 分析超时 不配也行:插件会依次尝试 python / python3 / py,并对每个跑一次 import librosa 做体检。 踩过的坑(这一段比代码有用) 1. 无鼓的独奏曲,BPM 会翻倍或检测不到 librosa 的节拍检测依赖打击点。纯钢琴/指弹独奏里,它会把八分音符当成拍点——一首抒情的曲子会被算成 123 BPM,实际大概 61。工具会标 bpmReliable: false,别硬信这个数。 2. 主调(key)对特殊调弦不准 指弹常用降 D、开放 C# 之类。色度分析能看出「调性中心在 C/C# 附近」,但分不清是大调小调、还是调弦造成的偏移。看色度图比看那个字母靠谱。 3. 频谱图比波形图信息量大得多 波形只能看出「响不响」,频谱能看出「什么东西在响」。看一首歌的编曲,直接看频谱。 4. matplotlib 的中文字体 默认字体不含中文,图标题会变成方块。脚本里已按 Microsoft YaHei → SimHei → PingFang SC → Noto Sans CJK 依次尝试;你的系统一个都没有的话,标题会是英文/方块——不影响数据。 5. MPLCONFIGDIR 权限 matplotlib 默认把字体缓存写到 ~/.matplotlib,某些受限环境会报 Permission denied。脚本已经把它指到插件目录下的 _mplcache/。 6. 抽取音频统一转 22050Hz 单声道 不为音质,为了和 librosa 的分析参数对齐。要做高精度音高分析可以自己改采样率。 7. 音乐/唱歌视频做语音转写要关 VAD 如果你顺手拿它分析 MV,注意:faster-whisper 的 VAD 会把「演唱」当成「音乐」滤掉,转写出来 0 段。加 --no-vad。 许可 MIT。随便改、随便用。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
MukiyoU/dsh-music-analyze
把音频转成波形频谱图与节拍指标,供模型解读
相关插件 · 其他
模型破甲清洗HunYiSage/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,993已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,269已汉化DSH
70.8
这是你的仓库?认领条目