视听器
一个MCP服务器,使克劳德能够听音乐。
将Claude指向任何音频文件,它都可以告诉你关键、节奏、动态、音色、打击乐特征、立体场、结构部分,以及音乐如何随时间演变——所有这些都来自原始音频分析,没有图像,没有猜测,在1%的上下文窗口使用率下。
并排比较两条轨迹。检测音乐在结构上的变化——引言、韵文、合唱、桥段——并放大重要的时刻。
这是什么?
LLM可以看到(视觉)和阅读(文本),但他们听不见。该项目通过运行真实的音频分析(与音乐信息检索研究中使用的DSP技术相同)并返回克劳德可以推理的结构化数值数据来弥合这一差距。
这是一个 MCP服务器 它将音频分析作为克劳德可以按需调用的工具。让Claude分析一首歌曲,它将解码音频,运行频谱/谐波/节奏/打击乐分析,并将结果作为压缩文本返回。没有光谱图,没有图像,没有浪费的代币。
对60秒轨迹的完整分析在2秒内完成(包括源分离)。纯锈。没有Python,没有FFmpeg,没有系统依赖关系。
特性
- 音频解码 --mp3、wav、flac、ogg、aac通过Symphonia(纯Rust)
- 光谱分析 --质心(亮度)、带宽(丰富度)、滚降、平坦度(色调)
- 频带能量 --用于混音诊断的7个标准制作人频带(次低音到亮度)的RMS能量
- 光谱对比度 --每个频带的峰值与谷值(dB),显示清晰度与浑浊度
- 动态范围 --峰值系数,响度范围(第95-5百分位),峰值dBFS
- LUFS响度 --EBU R128集成响度(ITU-R BS.1770-4立体声通道求和)、真峰值(dBTP)、响度范围(LRA)、流媒体平台目标。已验证FabFilter Pro-L 2为0.0 dB。
- 立体场分析 --相位相关性(单声道兼容性)、立体声宽度(中/侧比)、L/R平衡、单声道兼容性得分。每帧时间序列,以确定相位问题发生的位置。
- 时间特征 --RMS能量(响度)、过零率(纹理)
- 音色 --13 MFCC(梅尔频率倒谱系数)
- 谐波分析 --色谱图、密钥检测(Krumhansl-Schmuckler算法)、tonnetz
- 节奏分析 --节奏估计、节拍跟踪、开始检测、节奏稳定性
- 打击乐性格 --谐波/冲击源分离(HPSS)、攻击锐度、起始密度
- 断面边界检测 --多特征新颖性分析检测结构变化(能量、光谱、谐波、纹理)。启用摘要→缩放工作流程:获取地图,然后沉浸在有趣的时刻
- A/B比较 --并排分析两首曲目,得到一个紧凑的差异表,突出响度、动态、频谱平衡、立体声场、音调和节奏的差异
- 时间序列数据 --以可选择的分辨率跟踪每个功能随时间的变化
- 代币高效 --经过校准的降采样输出,可舒适地适应上下文窗口
看实际效果
观看新鲜的克劳德一次分析四首曲目 --一首原创的钢琴/铜管乐曲,波希米亚狂想曲的完整结构与部分边界的映射,A/B混音与制作建议的比较,以及雷暴现场录音,将音乐指标分为“无意义”和“物理真实”。所有四种分析都可以放在一个上下文窗口中。
安装
Claude Desktop--一键安装
下载 .mcpb 为您的平台捆绑 然后打开它。Claude Desktop将处理其余部分——没有配置文件,没有终端,没有设置。
| 平台 | 文件 |
|---|---|
| macOS(苹果硅) | audio-analyzer-darwin-arm64.mcpb |
| macOS(英特尔) | audio-analyzer-darwin-x64.mcpb |
| 窗户 | audio-analyzer-win32-x64.mcpb |
| Linux | audio-analyzer-linux-x64.mcpb |
克劳德代码-自制(macOS)
brew tap JuzzyDee/tap
brew install audio-analyzer
claude mcp add --scope user audio-analyzer -- $(which audio-analyzer-mcp)克劳德代码-手册(所有平台)
下载 mcp-server 二进制为您的平台从 那么:
claude mcp add --scope user audio-analyzer -- /path/to/mcp-server从源代码构建
git clone https://github.com/JuzzyDee/audio-analyzer-rs.git
cd audio-analyzer-rs
cargo build --release
claude mcp add --scope user audio-analyzer -- target/release/mcp-server重新启动克劳德桌面。音频分析工具将在您的对话中可用。
备注:这是一个使用stdio传输的本地MCP服务器,因此需要Claude Code或Claude Desktop。它不适用于浏览器或移动应用程序中的claude.ai。
用法
重要:此工具分析本地计算机上的文件。给Claude完整的文件路径(例如。, /Users/you/Music/song.mp3)--不要尝试在聊天中上传或附加文件。Claude将直接从磁盘读取文件。
CLI(独立)
cargo run --bin cli -- /path/to/song.mp3
cargo run --bin cli -- compare /path/to/mix_v1.mp3 /path/to/mix_v2.mp3MCP工具
配置后,Claude可以直接调用这些工具:
| 工具 | 它做什么 |
|---|---|
audio_info | 档案基本信息:持续时间、采样率、采样数 |
spectral_features | 亮度、丰富度、响度、纹理、音色(MFCC)、频带能量、频谱对比度、动态范围、LUFS响度、立体声场 |
harmonic_analysis | 密钥检测、音调类分布、音调 |
rhythm_analysis | 节奏(BPM)、节拍位置、节奏稳定性 |
full_analysis | 以上所有内容都在一次通话中,再加上打击乐角色(HPSS)、立体声场和分段边界。推荐的工作流程:首先无分辨率地调用以获取摘要+剖面图,然后使用 start_time/end_time 高分辨率 |
compare | A/B双轨——分析两者并返回一个紧凑的差异表 |
示例:全分析输出
这是什么 full_analysis 返回60秒爵士三重奏曲目:
═══ Full Audio Analysis ═══
File: /music/jazz_trio.mp3
Duration: 60.62 sec | Sample rate: 48000 Hz | Samples: 2909952
Analysis completed in: 2.02s
── Spectral/Temporal Features ──
Centroid (brightness): 2812 Hz — moderate
Bandwidth (richness): 3933 Hz — complex
Rolloff (energy focus): 6489 Hz
Flatness (tonality): 0.0824 — strongly tonal
RMS Energy (loudness): 0.1160
Zero Crossing Rate: 0.0402 — mixed
MFCCs (timbre): [-141.3, 13.7, 0.9, 7.7, -2.5, 3.1, -1.7, 2.3, -0.9, 1.0, -0.5, 0.9, 0.6]
── Frequency Band Energy ──
Sub bass (20–60 Hz): 0.007803
Bass (60–250 Hz): 0.013043
Low-mid (250–500 Hz): 0.004906
Mid (500–2k Hz): 0.002165
Upper-mid (2k–4k Hz): 0.000203
Presence (4k–6k Hz): 0.000166
Brilliance(6k–20k Hz): 0.000089
── Spectral Contrast (peak–valley dB) ──
Sub bass (20–60 Hz): 10.4
Bass (60–250 Hz): 20.4
Low-mid (250–500 Hz): 26.0
Mid (500–2k Hz): 30.9
Upper-mid (2k–4k Hz): 19.4
Presence (4k–6k Hz): 16.6
Brilliance(6k–20k Hz): 55.2
── Harmonic Content ──
Estimated key: E minor (confidence: 0.538)
Top pitch classes:
1. G 0.627 ███████████████
2. E 0.561 ██████████████
3. C 0.512 ████████████
4. D# 0.495 ████████████
5. F# 0.487 ████████████
6. C# 0.459 ███████████
── Rhythm ──
Tempo: 84.0 BPM (confidence: 0.316)
Beats detected: 69
Mean tempo: 84.3 BPM | Median: 84.0 BPM
Stability: 0.951 (0=free, 1=locked)
── Percussive Character ──
Percussive ratio: 0.277 — harmony-dominated
Onset density: 7.0/sec — very dense
Peak attack sharp: 1.000
── Dynamic Range ──
Peak: -0.44 dBFS
Crest factor: 16.2 dB — very dynamic
Loudness range: 76.4 dB — very dynamic
Quiet sections: -87.5 dBFS | Loud sections: -11.1 dBFS
── Loudness (EBU R128) ──
Integrated: -12.1 LUFS
True peak: 0.0 dBTP
Loudness range: 3.7 LU
Spotify (-14): turned DOWN 1.9 dB | Apple (-16): turned DOWN 3.9 dB | YouTube (-14): turned DOWN 1.9 dB
── Stereo Field ──
Phase correlation: 0.257 avg, -0.822 min — some phase issues
Phase warnings: 20.6% of frames have negative correlation
Stereo width: 0.812 avg, 2.747 max — wide
Balance: -0.095 — slightly left
Mono compatibility: 0.620 avg, 0.117 min — significant mono loss
── Section Boundaries ──
Working BPM: 84 (confidence: 0.32)
Boundaries: 2
0:18.3s energy+spectral+texture (confidence: 0.85)
0:42.1s energy+harmonic (confidence: 0.67)添加时 resolution: "medium",输出还包括一个时间序列表,显示了每个特征在曲目持续时间内的变化情况——让Claude看到介绍构建、动态独奏部分和安静的外跑。
时间序列分辨率
所有分析工具都接受可选 resolution 控制时间序列输出的参数:
| 预设 | 数据点/秒 | 用例 |
|---|---|---|
"low" | ~0.5/sec | 概览,相当于你从光谱图图像中看到的内容 |
"medium" | ~1/sec | 大多数分析任务的良好默认值 |
"high" | ~4/sec | 短段落的详细视图或放大过渡 |
您还可以传递一个数字字符串(例如。, "20")对于自定义费率。
没有 resolution,工具仅返回汇总统计数据(整个轨道的平均值)。通过它,您可以获得一个紧凑的TSV表,显示特征如何随时间演变——质心、RMS、动态范围、色度、起始强度、冲击比、频带能量、光谱对比度等,所有这些都与同一时间轴对齐。
预设值已针对令牌效率进行了校准。3分钟的赛道 "medium" 分辨率产生大约180行数据,足以在不打开上下文窗口的情况下跟踪音乐结构。
建筑
audio file
|
+---> load_audio() -- Symphonia decodes to mono f32 samples
| |
| v
| compute_spectrogram() -- STFT via rustfft, time-frequency matrix
| |
| +---> spectral.rs -- centroid, bandwidth, rolloff, flatness, MFCCs, band energy, contrast
| +---> temporal.rs -- RMS energy, zero crossing rate, dynamic range
| +---> harmonic.rs -- chromagram, key detection, tonnetz
| +---> rhythm.rs -- onset detection, tempo, beat tracking
| +---> percussive.rs -- HPSS (source separation), attack sharpness, onset density
| +---> sections.rs -- section boundary detection (multi-feature novelty)
|
+---> load_audio_stereo() -- preserves L/R channels
|
+---> stereo.rs -- phase correlation, width, balance, mono compatibility
+---> temporal.rs -- LUFS loudness (ITU-R BS.1770-4 stereo channel summing)
|
v
downsample.rs -- bin-average to target resolution, format as TSV两个二进制文件共享同一个分析库:
cli(src/main.rs)--运行所有分析并打印结果mcp-server(src/mcp_server.rs)--通过rmcp在stdio JSON-RPC上公开工具
更新日志
看 更改日志.md 版本历史。
许可证
MIT许可证。看 许可证 了解详情。
