音乐调性分析是音乐制作、学习和研究中的重要环节。传统方法依赖专业乐理知识,而现代技术可通过Python快速实现自动化检测。本文将介绍基于librosa和Essentia库的四种调性分析方法,并通过实际音频测试验证其效果。
一、方法与工具
1. 核心原理
-
Chromagram特征:将音频频谱映射到12平均律音高,反映各音级的能量分布
-
主音检测:寻找能量最高的音级(对应简谱中的1=X)
-
调式判定:通过音阶模板匹配区分大调/小调
2. 工具对比
库 | 优点 | 缺点 |
---|---|---|
librosa | 安装简单,API友好 | 调式检测需手动实现 |
Essentia | 专业算法,直接输出调式 | 依赖复杂,需模型支持 |
二、代码实现与测试
方法1:基础主音检测(librosa)
import librosa import numpy as np def