Page 12 - 《软件学报》2026年第5期
P. 12
黄恒焱 等: 融合音乐知识结构化表征的高精度符号音乐理解 1891
性特征与旋律逻辑, 例如在 C 大调中, C 到 G 的频繁转移反映了主音到属音的偏好; NLTM 则依据音符时值的转
移规律建模节奏骨架与律动感, 例如 4 拍乐曲中 1/4 音符的接续频率揭示了稳定的节拍模式. 两者从统计角度构
建了音乐在旋律与节奏维度上的内在结构与倾向, 为模型理解乐曲的理论基础与构造逻辑提供了有力支持.
基于该思考, 为解决传统 Transformer 模型在音乐序列建模中忽略音乐多维结构特征的问题, 本文提出了互补
音乐特征提取模块. 该模块的设计基于以下两个观察: 一方面, 音乐知识特征 (音高转移矩阵与音长转移矩阵) 具
备类似图像的二维空间结构, 包含丰富的局部空间关联模式, 蕴含乐曲中的旋律、节奏及风格等特征; 另一方面,
CNN 在提取局部空间结构和层级特征方面表现优异, 与 Transformer 擅长捕获全局序列依赖关系形成有效互补.
利用 CNN 从音乐知识特征中提取局部结构特征, 并配合 Transformer 编码器捕获序列全局语义信息, 可以构成一
种同时掌握音乐结构与音乐语义的完整理解框架.
构建音乐知识特征时, 首先将打击乐器 (如架子鼓) 轨道排除. 这是由于打击乐器的音高不具备明确的调性意
义, 其节奏模式通常独立于旋律与和声轨道, 因此排除打击乐轨道可以使模型准确地捕获旋律、和声与节奏的核
心结构特征. 音乐知识特征构建算法如算法 1 和算法 2 所示.
算法 1. PCTM 算法.
输入: MIDI 文件 I;
输出: 归一化音高类别转移矩阵 X, 尺寸 12×12.
1. X ← zeros(12,12) // 初始化 12×12 的全 0 矩阵
2. for instrument ∈ I.instruments do
3. if instrument.is_drum then // 跳过打击乐器
4. continue
5. end if
6. C ← ∅ // 存放音高类别序列
7. for note ∈ instrument.notes do
8. c ← note.pitch mod 12 // 映射到音高类别
9. append c to C
10. end for
11. for t = 1 to |C|−1 do // 统计相邻音符对
12. i ← C[t −1]
13. j ← C[t]
14. X[i, j] ← X[i, j]+1
15. end for
16. end for
17. for i = 0 to 11 do // 行归一化
11 ∑
18. s ← X[i, j]
j=0
19. if s , 0 then
20. for j = 0 to 11 do
21. X[i, j] ← X[i, j]/s
22. end for
23. end if
24. end for
25. return X

