4.3 音符的切分
音符切分是将去除了噪声段、无声段和非典型点的声音波形切分为一个个片段,每个片段包含一个独立、完整的音符信息。
由于音乐哼唱信号的特殊性和对音符切分准确性的要求,使得音符切分是音乐信号分析中的一个难点,至今都没有一种通用的准确切分音符的算法。而能否准确切分每个音符,对哼唱检索的准确率有着非常大的影响。如果音符切分的不准确,会再次引进误差,使系统性能下降。
用户哼唱方法的不同也会导致音符切分难度的不同。音符的切分大多采川能量幅度来判别,如果能量幅度小于某一个闭值,则认为是音符的开始或结束。在参考了许多国内外文献之后发现,很多系统要求哼唱者采用“辅音+元音”的唱方式,有的还要求音符的边界振幅下降过程要超过60ms以上。如果采用“DaDaDa...”或“IaLaLa. . . "哼唱,则每个音符之间的间隔比较明显,便于音符的准确切分。但是,如果用户采用歌词进行哼唱,每个音符之间没有明显的间隔,会给音符的切分带来很大的困难。
在实际应用中,为了提高音符切分的准确性,系统要求用户用“辅音+元音”的方式进行哼唱,并且在各个音符的间隔处最好有比较明显的停顿,停顿越明显,查询结果越准确。音符切分结果如下图4.5所示:
图4.5 音符切分结果
4.4 旋律特征序列的构建
有了声音波形的切分信息后,就可以从中计算出旋律特征了。音符的频率就是音高,同一音高的长度就是音长。
在第一章,本文详细介绍了音乐的各种旋律特征。综合考虑到用户的广泛性和不同用户哼唱的习惯和哼唱能力,系统最终采用了(音高差、音长比)的二文特征。具体计算方法如第三章公式3.1和3.2所示。
计算特征参数后,就完成了从用户哼唱音乐片段中提取旋律特征的工作,其输出将用于下一步的匹配检索。
4.5 本章小结
本章就该论文的关键环节对输入音频旋律特征的提取作了详细的介绍。首先对信号的预处理进行了说明,然后介绍了基因提取的具体方法,最后对提取后的基因进行了一系列的后续处理使其能更好的构成特征序列。
5 旋律检索的匹配算法
5.1 匹配算法的分析
旋律特征提取方法不能保证提取100%正确,基于旋律的检索系统应该对用户输入的信息有容错功能;通过音乐库中音乐的主旋律提取以及输入系统音乐旋律的提取得到的旋律特征是以音符为最小单位的音符序列,音符切分的不准确性会大大影响检索结果,有时也会导致检索失败,有很多方法采取了规避;此外,为了更人性化方便用户使用,往往对用户哼唱位置不作限制;这些因素增加了旋律匹配的不确定性,当歌曲库规模较大时搜索匹配的计算量就会相应的增大,搜索时间也会增长。在旋律检索中,基于音高曲线匹配、基于统计模型的匹配算法和字符串的匹配算法是主要的几种匹配算法。
(1)基于音高曲线匹配:先把输入的音频信号短时分帧后,对每一帧作基音周期提取,最后构成音高曲线,与音乐特征库中旋律的音高曲线比较,计算旋律的相似程度,得到检索结果。此算法利用几何相似比较形象具体;这种匹配算法能够容忍旋律的多音、漏音等错误。
(2) 基于统计模型的匹配算法: 此方法根据旋律频谱特征值基于统计上的特性;对音频信号作短时分帧,在频谱提取特征向量,采用Markov统计模型考察这些特征向量序列在统计上的规律;在检索前对每首分别训练建模,然后计算待测歌曲在这些模型上的概率,选出概率最大的作为检索列表提交用户。 基于旋律的音乐检索系统设计与实现(11):http://www.751com.cn/tongxin/lunwen_2379.html