EP42

EP42: Chord Recognition — From Chroma Vectors to Viterbi Decoding

从色度向量到Viterbi解码
5:51 Statistics/MLSignal ProcessingAbstract Algebra

概述

你播放一首歌,App 在零点一秒内报出和弦名。这不是凭感觉猜测,也不是查数据库。 背后是一个隐马尔可夫模型(Hidden Markov Model, HMM),和一个格形图上的最短路径算法(Viterbi)。

本集从信号处理(STFT 色度向量)出发,经过模板匹配,建立 HMM 的三要素, 最终用 Viterbi 动态规划在 时间内精确解码最优和弦序列。


前置知识


定义

Definition 42.1 (色度特征向量)

设音频帧的短时傅里叶变换幅度谱为 色度向量 的第 分量()定义为

其中 为第 个频率箱的中心频率, 为参考频率(通常取 C0 = 16.35 Hz)。

色度向量将所有八度的能量折叠 上, 实现八度等价 汇聚了 C4、C5、C6 等所有八度上音名为 的能量。

Definition 42.2 (余弦相似度模板匹配)

设 24 个和弦模板为 (12 个大调 + 12 个小调),每个模板 ,在和弦包含的音名处取 1,其余取 0(大三和弦取 3 个音名,小三和弦取 3 个音名)。

属于和弦 的模板匹配得分定义为

逐帧识别结果为

Definition 42.3 (隐马尔可夫模型(HMM))

一个隐马尔可夫模型 由三部分组成:

  1. 转移矩阵 , 其中 (和弦数),满足

  2. 发射概率 :给定隐状态 ,观测 (色度向量)的概率。 常用 12 维高斯模型:

    其中 为和弦 的理想色度模板。
  3. 初始概率 ,满足 。 实践中常取均匀分布 ,或从语料统计得到。

隐状态序列 对应 帧音频的真实和弦标签, 不可直接观测;观测序列 为色度向量序列。


主要定理

Theorem 42.1 (Viterbi 最优性)

给定 HMM 和观测序列 , 定义 Viterbi 变量

满足递推关系

初始条件

反向指针。 最优和弦序列由回溯得到:

该序列 最大化联合概率 , 时间复杂度为

Proof.

正确性(最优子结构):

是最优序列。对任意 ,子序列 必是到达 的最优路径。 若否,设存在更优路径 到达 ,则将 拼接, 得到比 更优的序列,矛盾。

因此, 确实是到达 的最优路径的概率,递推正确。

复杂度

对每个时刻 和每个状态 ,计算 。 共 个时刻、 个状态,总复杂度

对比暴力枚举所有路径: 条路径,对 , 远超宇宙原子数(),计算不可行。动态规划将复杂度从指数降为多项式。

Theorem 42.2 (对数空间等价性)

(排除零概率情形)。令 ,则

该递推与原始 Viterbi 递推产生完全相同的最优路径:

Proof.

对数函数 是严格单调递增函数,因此

对任何正值函数 成立。

又因 (严格单调性), 原始递推

取对数后恰好变为

乘法变加法,max 保持不变。

实际意义 帧时概率连乘可达 ,超出 float64 下溢阈值(), 对数空间操作完全避免此问题。零概率存储为 (Python float('-inf')), 不影响 操作的正确性。

Prop 42.1 (色度折叠保留音名信息)

色度向量 -等变的:对频谱的整数倍频移(即移调 个半音), 色度向量循环移位 位。形式地,若 是信号 的色度向量, 移调 个半音后的信号,则

Proof.
移调 个半音将频率 映射到 。 于是 pitch-class。 色度折叠将各频率箱按 pitch-class 累加,故移调后每个分量的索引增加 , 等价于向量循环移位 位。

数值示例

暴力搜索的不可行性

,而宇宙可观测粒子数

Viterbi 规模,需要存储 值和同等数量的反向指针, 总空间 ,时间 次运算——实时可行。


音乐联系

音乐联系

音乐语法的数学编码

HMM 转移矩阵 将调性引力(tonal gravity)量化为概率。在 C 大调语境下, ,因为 G 大调(属和弦)是 C 大调最强的功能和声解决, 而 F♯ 大调(三全音关系)在古典和声中极少出现。

通过从巴赫众赞歌或流行歌曲数据集统计 ,模型自动学到和声语法规则。 这正是 EP21 中 Markov 链的直接推广:原 Markov 链建模可观测音符序列, HMM 在此之上增加了"隐层"——和声功能(属、主、下属)不可直接听到, 只能从声音特征(色度向量)推断。

识别局限与乐理边界

HMM 基于大/小三和弦的 24 个模板,无法处理:

  • 异名同音:E♯ 与 F 色度位置相同,但在 B 大调(功能:增八度)和 C 大调(功能:自然四度)中作用不同
  • 副属和弦:如 C 大调中的 D7(属于 G 的属和弦),激活两个模板
  • 爵士变音:Cm(maj9)♯11 等高叠和弦激活 8 个以上音名位置

这些局限来自模型的生成假设:HMM 假定观测条件独立于过去, 而人类和声感知实际上对上下文高度敏感。条件随机场(CRF)的判别框架 可部分缓解此问题,但代价是失去 Viterbi 解码的精确性。


局限性与开放问题

  1. 调内识别 vs 调性识别:本集仅识别逐帧和弦,未处理全局调性(key)。 调性识别需要在更长时间尺度(整首曲子)上建模,Krumhansl-Schmuckler (1990) 用轮廓相关系数定义调性中心,这是 EP43 的主题。

  2. 多声部叠置:交响乐中多个声部同时演奏不同和弦,色度向量叠加, 单和弦 HMM 无法分解。需要多和弦联合 HMM 或源分离(EP41)前处理。

  3. 实时系统延迟:Viterbi 需要完整序列后向回溯。实时系统需改用在线 Viterbi(滑窗回溯)或前向算法(给出边际概率,无需回溯),代价是识别精度下降。

  4. 深度神经网络发射估计:现代系统(如 ACE-Chroma, 2022)用 CNN 估计 , 取代高斯模型,精度显著提升,但丢失了 Viterbi 解码的可解释性。

Conjecture (神经 HMM 的 Viterbi 最优性保持)
若用神经网络估计的发射对数概率 替换高斯 , Viterbi 递推在形式上仍然正确,且仍给出在 下的最优序列。 开放问题:神经估计的 是否满足与真实分布的充分近似条件,使得最优序列与人类标注一致? 目前缺乏理论保证,依赖经验验证。

参考文献

  1. Rabiner, L. R. (1989). A tutorial on hidden Markov models and selected applications in speech recognition. Proceedings of the IEEE, 77(2), 257–286.

  2. Viterbi, A. J. (1967). Error bounds for convolutional codes and an asymptotically optimum decoding algorithm. IEEE Transactions on Information Theory, 13(2), 260–269.

  3. Müller, M. (2015). Fundamentals of Music Processing. Springer. Ch. 5 (Chord Recognition).

  4. Bello, J. P., & Pickens, J. (2005). A robust mid-level representation for harmonic content in music signals. Proceedings of ISMIR, 304–311.

  5. Harte, C., Sandler, M., Abdallah, S., & Gómez, E. (2005). Symbolic representation of musical chords: A proposed syntax for text annotations. Proceedings of ISMIR.

  6. Krumhansl, C. L. (1990). Cognitive Foundations of Musical Pitch. Oxford University Press.

  7. Cho, T., & Bello, J. P. (2014). On the relative importance of individual components of chord recognition systems. IEEE/ACM Transactions on Audio, Speech, and Language Processing, 22(2), 477–492.