Music Analysis

🎵 本地音频分析,洞察音乐结构与情绪

基于 librosa 和 ffmpeg 的本地音频分析工具,无需调用外部 API,可提取 BPM、调性、段落边界、响度动态、频谱特征及情绪变化曲线,适用于音乐制作质检、混音对比与结构化分析。

收藏
3.2k
安装
1.1k
版本
1.0.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

本技能提供两套 Python 脚本,均基于纯信号处理(无 AI/ML 模型):

1. Quick Analysis(全局快照)

  • 输出:时长、采样率、BPM、调性估算、能量统计(RMS 均值/标准差/P95)、频谱摘要(质心、滚降点、对比度)、粗略段落边界
  • 适用场景:快速技术质检、元数据提取

2. Temporal Listen(时序深度分析)

  • 采用 4 秒滑动窗口(2 秒步进),生成完整时间线:
  • 相对能量水平
  • 情绪标签(14 种分类,如 submerged、soaring、erupting)
  • 过渡检测(drop、色彩变化、演进)
  • 纹理分解(谐波/打击乐比例、起音密度、粗糙度)
  • 张力模型与叙事弧(mountain、ascending、plateau 等)
  • 峰值/静默时刻定位
  • 适用场景:混音对比、情绪 journey 可视化、制作笔记生成

显著优点

| 维度 | 优势 |
|------|------|
| 隐私 | 100% 本地运行,音频数据不上传 |
| 成本 | 零 API 费用,适合批量处理 |
| 透明度 | 规则化情绪映射,可解释性强 |
| 生态兼容 | 支持 ffmpeg 可解码的任意格式(mp3/wav/flac/ogg/m4a) |
| 扩展性 | 可配合 yt-dlp 下载 YouTube/Spotify 音源;可选 Whisper 本地转录 |

潜在局限

  • 调性检测:基于 chromagram 的统计估算,对无调性音乐、频繁转调曲目准确率下降
  • BPM 计算:依赖 librosa.beat_tempo,对极端速度(<60 或 >200 BPM)或复杂拍号可能偏差
  • 情绪标签:规则映射基于西方流行音乐特征,对非西方调式、实验电子、氛围音乐可能误标
  • 性能:时序分析需逐帧 STFT 计算,长曲目(>10 分钟)处理耗时显著

适合人群

  • 音乐制作人/混音工程师:批量质检、版本对比
  • 音乐学者:结构分析、情绪标注数据集构建
  • 播客/视频创作者:自动化音频元数据提取
  • 隐私敏感用户:拒绝云服务的本地优先工作流

常规风险

| 风险类型 | 说明 | 缓解措施 |
|----------|------|----------|
| 版权音频 | 通过 yt-dlp 下载受版权保护内容可能违法 | 仅分析自有版权或 CC 授权音频 |
| 系统依赖 | ffmpeg/librosa 版本差异可能导致解码失败 | 使用技能提供的 venv 隔离环境 |
| 存储膨胀 | 临时音频文件累积 | 严格使用 `tmp/` 目录(已 gitignore) |
| 误用情绪标签 | 规则标签≠主观听感,直接用于商业推荐可能失真 | 作为辅助参考,关键决策需人工复核 |

Music Analysis 内容

scripts文件夹
手动下载zip · 6.9 kB
analyze_music.pytext/plain
请选择文件