Page 13 - 《软件学报》2026年第5期
P. 13

1892                                                       软件学报  2026  年第  37  卷第  5  期



                 算法  2. NLTM  算法.
                 输入: MIDI  文件  I; 时值类别集合   D = {d ,...,d };
                                                0
                                                    11
                 输出: 归一化时值转移矩阵        Y, 尺寸 12×12.
                 1.  τ  ← I.ticks_per_beat // 每拍的 ticks
                   beat
                 2.  τ ← [τ ,...,τ ] // 由  τ   推导的  12  类时值 ticks
                       0    11     beat
                 3.  Y ← zeros(12,12)   // 初始化  12×12  的全  0  矩阵
                 4. for instrument  ∈ I.instruments do
                 5.  if instrument.is_drum then // 跳过打击乐器
                 6.   continue
                 7.  end if
                 8.   Λ ← ∅ // 存放时值类别序列
                 9.  for note  ∈ instrument.notes do
                 10.    ∆ ← note.end − note.start // 时值  (ticks)
                 11.    k ← argmin  |∆−τ | // 匹配最近类别
                                p∈{0,...,11}  p
                             k to  Λ
                 12.   append
                 13.  end for
                 14.  for  t = 1 to  |Λ|−1 do // 统计相邻音符对

                 15.     k ← Λ[t −1]
                 16.     l ← Λ[t]
                 17.       X[k,l] ← X[k,l]+1
                 18.  end for
                 19. end for
                 20. for  k = 0 to  11 do // 行归一化
                         11 ∑
                 21.    s ←  Y[k,l]
                         l=0
                 22.  if  s , 0 then
                 23.   for  l = 0 to  11 do
                 24.     Y[k,l] ← Y[k,l]/s
                 25.   end for
                 26.  end if
                 27. end for

                 28. return   Y
                    通过算法    1  构建音高转移矩阵     (PCTM) 和算法   2  构建音长转移矩阵     (NLTM), 得到两个归一化的      12×12  矩阵,
                 它们共同组成了音乐知识特征. 这两种矩阵不依赖具体序列顺序, 从统计上有效地刻画了乐曲在音高和节奏维度
                 上的内在结构与倾向性. 图        3  直观地展示了同一     MIDI 文件建模得到的      PCTM (图  3(a)) 和  NLTM (图  3(b)) 的可视
                 化示例, 不同的颜色强度代表了不同的转移概率, 从中可以观察到该乐曲在音高和节奏上的特定规律.
                    随后, 将音乐知识特征堆叠形成二维特征图输入到互补音乐特征提取模块. 如图                         4  所示, 模块通过多层的     3×3
                 卷积块操作, 捕捉输入特征中的局部空间特征, 卷积块操作可以表示为:

                                                                       
                                                        ∑ K−1
                                                         K−1 ∑
                                                                        
                                                                         
                                                l          l   l−1  l
                                               F = σ  BN     W m,n  · X i+m,j+n  +b            (1)
                                                                         
                                                i,j
                                                                         
                                                    
                                                         m=0 n=0
   8   9   10   11   12   13   14   15   16   17   18