音频地标指纹识别作为 Node Stream 模块
这里使用的 声纹识别 技术是地标算法,如 Shazam 2003 论文 中所述。在
codegen_landmark.js 中的实现受到 D. Ellis "Robust Landmark-Based Audio Fingerprinting" (2009) 的 MATLAB 例程的启发。与 Ellis 的实现的一个显著区别是,本模块可以处理无限的音频流,例如广播,而不仅仅是完整的音频轨道。请注意,在 Python 中还有一个优秀的地标指纹识别器,即 dejavu。
简而言之,- 从音频信号中计算出频谱图 - 在此时频图中选择显著的峰值 - 使用 250ms 的延迟来确定是否没有一个峰值后跟着更大的峰值 - 通过使用
dt
、
f1
和
f2
将峰值连接起来,计算出指纹,准备插入数据库或与其他指纹进行比较。 在背景中,大约 12 秒的音乐内容以频谱图的形式表示(顶部频率约为 10kHz)。 蓝色标记是选择的频谱图峰值。 灰色线是每对峰值都导致一个指纹。
考虑到相同的音频,此图显示了相同的峰值和内部 前向 阈值,这些阈值可防止峰值在时间和频率上过于接近。 后向 阈值选择在这里没有表示。
暂无开放 Issues,或尚未同步最近议题。