音乐文件相似度计算与文本检索自适应算法研究
1. MIDI 文件相似度计算
在处理 MIDI 文件时,为了计算文件之间的相似度,需要进行一系列的预处理和算法操作。
1.1 预处理步骤
- 时间值归一化 :将 MIDI 文件中的时间值进行预处理,使一个节拍(tick)为四分之一音符的 1/120。忽略 MIDI 速度事件,这样不同速度的相同音乐在度量下会表现出相似性。
- 时间量化 :将所有时间量化到最接近的 60 节拍的倍数,即八分音符的持续时间(通常在 150 到 400 毫秒之间),以过滤掉微小且不重要的时间变化。
- 时间差限制 :将时间差上限设为 1920 节拍,对应 4/4 拍的 4 小节(约 8 秒),不记录包含大于此时间差的片段。也可以选择将起始时间上限设为 1920 节拍,但不丢弃任何片段。
- 忽略无关信息 :MIDI 文件中除了音符开启和关闭事件外,还有大量与相似度计算无关的信息,如乐器使用、作品作者和标题、轨道和通道号、速度、音量和音符速度等,都予以忽略。将多轨道 MIDI 文件中的所有轨道合并为一个轨道。
1.2 算法流程
- 指纹提取 :
- 对于每个音高 z,提取 MIDI 文件中该音高的音符事件,将其视为一系列数字(起始时间)。
- 对时间进行归一化,起始时间记录为自上次事
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



