核心用法
Music Analysis 是一套纯本地运行的音频分析系统,通过 Python 脚本对音乐文件进行多维度解析。核心入口为 listen.py,支持一次性完成完整分析链:节拍检测 → 歌词转录 → 时序情绪映射 → 综合合成报告。支持 mp3/wav/flac/ogg/m4a 等格式,可通过 yt-dlp 获取在线音频。
三大分析模式
Full Listen(推荐):整合快照分析、时序聆听与歌词对齐,输出包含 Groove 感知、段落结构、和声张力、情绪旅程、歌词情感覆盖的综合报告。
Snapshot Analysis:独立运行快速分析,输出节拍稳定性、调性清晰度、音色描述、段落标签等核心指标。
Temporal Listen:滑动窗口时序分析(4秒窗/2秒步进),追踪能量轮廓、情绪标签、和声张力变化及叙事弧线。
歌词处理机制
采用 Whisper 本地模型(ggml-large-v3-turbo)进行语音识别,自动过滤 [MUSIC] 等伪标签。关键特性:当歌词情感置信度高且与编曲情绪明显偏离时(更黑暗/温暖/强烈),歌词层可覆盖纯音频分析结果,实现"词曲矛盾"的感知修正。
显著优点
- 完全本地化:零外部 API 依赖,保护版权音频隐私,离线可用
- 制作人视角:输出结构模仿专业音频工程师报告(pocket/groove、和声张力、动态范围)
- 时序叙事性:能量/情绪/张力三轨时序可视化,识别 peak/drop/transition 时刻
- 智能歌词融合:并非简单叠加,而是建立"音频情绪 vs 歌词情感"的仲裁机制
- 可解释性设计:所有情绪结论附带推导依据(节拍稳定性+音色+和声张力),非黑箱
潜在局限
- 依赖本地模型:Whisper 转录质量受音频质量与发音清晰度影响,无歌词场景下 lyric-override 机制失效
- Swing proxy 为估算值:非鼓手级微时间分析,对复杂切分感知有限
- 结构标签为相似性聚类:A/B/C 标签不承诺对应传统曲式(主歌/副歌),需人工校验
- 情绪维度固定:基于预设声学特征映射,对文化特异性情绪表达(如布鲁斯忧郁 vs J-Pop 忧伤)区分度未经验证
- 计算资源需求:large-v3-turbo 模型需充足内存,长音频处理耗时显著
适合人群
- 音乐制作人/混音工程师:对比不同版本混音,验证能量分布
- 音乐研究者:批量分析曲式结构、和声进行模式
- 内容创作者:为视频配乐快速匹配情绪弧线
- 版权审核员:检测重复段落(采样/抄袭初筛)
- 播放列表策展人:基于声学特征与情感维度自动分类
常规风险
| 风险类型 | 说明 |
|---------|------|
| 版权音频本地处理 | 虽不上传云端,但本地存储处理仍需确保使用合规 |
| Whisper 误识别 | 嘈杂/效果化人声可能导致错误歌词覆盖正确情绪判断 |
| 过度解读结构标签 | 相似性聚类结果需结合音乐知识验证,不可直接作为曲式学术结论 |
| 情绪映射文化偏差 | 训练数据隐含西方流行/电子音乐偏见,对非西方传统音乐可能失真 |
| 依赖版本锁定 | ffmpeg/librosa/whisper 版本差异可能导致结果不可复现 |