论文部分内容阅读
钢琴音符识别是将音乐音频文件自动转换到数字音乐文件(MIDI)的过程,在钢琴辅助教学、乐谱自动记录等工作中具有重要作用。本课题主要研究钢琴音符识别的问题,即根据钢琴演奏所录制的音频文件,通过特定算法来确定某时段内的声音是由哪些单音符组合而成。根据实际应用需求和音符识别算法自身的限制,本课题将钢琴音符识别任务分为:实时稳健的单音符识别、非实时的多音符识别。对于单音符的识别,本课题侧重于实时性和稳健性两个方面。为此,本文提出采用局部能量的端点检测、多样本字典、多样本字典后处理等算法来提高单音符识别的实时性和稳健性;对于多音符的识别,由于无法通过单音符所采用的时域法,本课题转而采用模式识别法,即以多音符为基本建模单位,建立基于隐马尔可夫过程的多音符模型,进而重新编译HTK中相关模块来搭建多音符识别系统。本课题的主要内容包括以下几个方面:1)提取多音符音频文件的特征。在分析常用音频文件参数化原理的基础上,结合多音符音频的特性,对HTK中已有特征提取模块进行优化;2)判断确定音频中音符端点的位置。在分析常用端点检测的基础上,根据单音符、多音符不同的任务需求,分别为单音符识别系统和多音符识别系统设计或该写端点检测算法;3)研究基于HMM模型的语音识别原理,找出语音识别与多音符识别之间的共性与差异,建立多音符HMM声学模型和多音符间模型;4)根据MIDI文件以及对应的钢琴音频文件,构建训练、测试波形数据以及相应的标注文件。在此基础上,利用重新改写编译后的HTK相关工具对各个多音符隐马尔可夫模型进行初始化和训练,进而构建出完整的多音符识别系统。最后根据实验结果与对应标注文件之间的比对,对多音符系统进行性能评价。本文成功地实现了单音符的实时稳健识别、多音符的HMM建模以及多音符HMM模型识别。对于单音符的识别,与线性模型法相比,正确率提高了3%,达到了98%,且平均识别帧数达到4帧,即稳健性方面提高近2倍;对于多音符的识别,与时频域、统计法等相比,本文所采用得基于HMM的音符识别方法,识别率提高了近5%,提高了钢琴音乐转录实用化的可能性。