DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-music-analyze

M

dsh-music-analyze

Manifest valid

Add a tool to DeepSeek Harness: turn audio into four images plus a set of numbers, so the model can look at the images and numbers and discuss this piece with you.

hasBundlePatchMachine translated

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 以上。

验证过的用例

信号真实拍点密度判定
节拍器 120120117.45 ✅
节拍器 878786.13 ✅
节拍器 626261.52 ✅
强弱交替 124(听感 62)12461.52 ✅
强弱交替 174(听感 87)17486.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。随便改、随便用。

Comments

Loading…

Similar plugins

dsh-soundcheck

by ALittleLov

让文本模型读懂一首歌:本地音乐分析插件,把音频拆成能量、速度、调性、密度,音频不出本机。

Manifest valid

★ 0

MIT

Python

Oct 20, 2026

dsh plugin --profile web add dsh-soundcheck

by xiekai886

这是一个可以让你边对话边听歌的 DeepSeek Harness 插件:折叠/展开两种可自由拖动的悬浮窗口形态,利用 Meting API 等解析源接入网易云音乐,支持歌单导入和按歌名或歌手搜索单曲导入。Chat and listen at the same time.

Just for FunManifest valid

★ 4

MIT

JavaScript

Aug 16, 2026

dsh plugin --profile web add @dsh-external/dsh-music

by jypjypjypjyp

Music composition for DeepSeek Harness: the model writes a score against a bundled composing skill, and a play_score tool renders it as an inline card with a piano roll, Web Audio playback and WAV/JSON export.

Vision & MultimodalUI & ExperienceManifest valid

★ 1

JavaScript

Oct 19, 2026

dsh plugin --profile web add @jypjypjypjyp/dsh-music-studio

by Goothe13-gugu

用于Deepseek Harness的插件,让你的大模型边思考边唱歌。A plugin for Deepseek Harness (DSH) to play music or audio when your LLM is thinking.

Tools & CapabilitiesManifest valid

★ 0

MIT

JavaScript

Sep 23, 2026

dsh plugin --profile web add dsh-audio-cue

DeepSeek Harness Web 本地音乐播放器插件:会话视图「音乐」标签页,flac/mp3 等常见格式,单曲/列表循环,macOS Music 风格 UI

UI & ExperienceManifest valid

★ 2

MIT

JavaScript

dsh plugin --profile web add @heshuren/dsh-music-player

by hey-ruomei

DeepSeek Harness music player plugin: search and stream legal music from Audius in the web UI, controllable by agent tools.

Terminal & ClientsManifest valid

★ 0

MIT

TypeScript

Aug 19, 2026

dsh plugin --profile web add dsh-music-player